Skip to content

Commit

Permalink
Merge pull request #40981 from nextcloud/fix/object-storage-user
Browse files Browse the repository at this point in the history
fix(objectstorage): cleanup HomeObjectStoreStorage
  • Loading branch information
blizzz authored Feb 2, 2024
2 parents 86e57e9 + 30798eb commit 8a4bd3b
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,12 @@
namespace OC\Files\ObjectStore;

class AppdataPreviewObjectStoreStorage extends ObjectStoreStorage {
/** @var string */
private $internalId;
private string $internalId;

/**
* @param array $params
* @throws \Exception
*/
public function __construct($params) {
if (!isset($params['internal-id'])) {
throw new \Exception('missing id in parameters');
Expand All @@ -37,7 +40,7 @@ public function __construct($params) {
parent::__construct($params);
}

public function getId() {
public function getId(): string {
return 'object::appdata::preview:' . $this->internalId;
}
}
31 changes: 15 additions & 16 deletions lib/private/Files/ObjectStore/HomeObjectStoreStorage.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
* @author Jörn Friedrich Dreyer <jfd@butonic.de>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Thomas Citharel <nextcloud@tcit.fr>
*
* @license AGPL-3.0
*
Expand All @@ -25,44 +26,42 @@
*/
namespace OC\Files\ObjectStore;

use OC\User\User;
use Exception;
use OCP\Files\IHomeStorage;
use OCP\IUser;

class HomeObjectStoreStorage extends ObjectStoreStorage implements \OCP\Files\IHomeStorage {
class HomeObjectStoreStorage extends ObjectStoreStorage implements IHomeStorage {
protected IUser $user;

/**
* The home user storage requires a user object to create a unique storage id
*
* @param array $params
* @throws Exception
*/
public function __construct($params) {
if (! isset($params['user']) || ! $params['user'] instanceof User) {
throw new \Exception('missing user object in parameters');
if (! isset($params['user']) || ! $params['user'] instanceof IUser) {
throw new Exception('missing user object in parameters');
}
$this->user = $params['user'];
parent::__construct($params);
}

public function getId() {
public function getId(): string {
return 'object::user:' . $this->user->getUID();
}

/**
* get the owner of a path
*
* @param string $path The path to get the owner
* @return false|string uid
* @return string uid
*/
public function getOwner($path) {
if (is_object($this->user)) {
return $this->user->getUID();
}
return false;
public function getOwner($path): string {
return $this->user->getUID();
}

/**
* @param string $path, optional
* @return \OC\User\User
*/
public function getUser($path = null): IUser {
public function getUser(): IUser {
return $this->user;
}
}
28 changes: 10 additions & 18 deletions lib/private/Files/ObjectStore/ObjectStoreStorage.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,32 +47,24 @@
use OCP\Files\ObjectStore\IObjectStoreMultiPartUpload;
use OCP\Files\Storage\IChunkedFileWrite;
use OCP\Files\Storage\IStorage;
use OCP\ILogger;

class ObjectStoreStorage extends \OC\Files\Storage\Common implements IChunkedFileWrite {
use CopyDirectory;

/**
* @var \OCP\Files\ObjectStore\IObjectStore $objectStore
*/
protected $objectStore;
/**
* @var string $id
*/
protected $id;
/**
* @var \OC\User\User $user
*/
protected $user;

private $objectPrefix = 'urn:oid:';
protected IObjectStore $objectStore;
protected string $id;
private string $objectPrefix = 'urn:oid:';

private $logger;
private ILogger $logger;

private bool $handleCopiesAsOwned;
protected bool $validateWrites = true;

/** @var bool */
protected $validateWrites = true;

/**
* @param array $params
* @throws \Exception
*/
public function __construct($params) {
if (isset($params['objectstore']) && $params['objectstore'] instanceof IObjectStore) {
$this->objectStore = $params['objectstore'];
Expand Down
4 changes: 2 additions & 2 deletions tests/lib/Files/ObjectStore/ObjectStoreStorageOverwrite.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@
* Allow overwriting the object store instance for test purposes
*/
class ObjectStoreStorageOverwrite extends ObjectStoreStorage {
public function setObjectStore(IObjectStore $objectStore) {
public function setObjectStore(IObjectStore $objectStore): void {
$this->objectStore = $objectStore;
}

public function getObjectStore(): IObjectStore {
return $this->objectStore;
}

public function setValidateWrites(bool $validate) {
public function setValidateWrites(bool $validate): void {
$this->validateWrites = $validate;
}
}

0 comments on commit 8a4bd3b

Please sign in to comment.