diff options
Diffstat (limited to 'apps/files/lib/Db')
-rw-r--r-- | apps/files/lib/Db/OpenLocalEditor.php | 43 | ||||
-rw-r--r-- | apps/files/lib/Db/OpenLocalEditorMapper.php | 51 | ||||
-rw-r--r-- | apps/files/lib/Db/TransferOwnership.php | 42 | ||||
-rw-r--r-- | apps/files/lib/Db/TransferOwnershipMapper.php | 33 |
4 files changed, 169 insertions, 0 deletions
diff --git a/apps/files/lib/Db/OpenLocalEditor.php b/apps/files/lib/Db/OpenLocalEditor.php new file mode 100644 index 00000000000..da7f5d13206 --- /dev/null +++ b/apps/files/lib/Db/OpenLocalEditor.php @@ -0,0 +1,43 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace OCA\Files\Db; + +use OCP\AppFramework\Db\Entity; + +/** + * @method void setUserId(string $userId) + * @method string getUserId() + * @method void setPathHash(string $pathHash) + * @method string getPathHash() + * @method void setExpirationTime(int $expirationTime) + * @method int getExpirationTime() + * @method void setToken(string $token) + * @method string getToken() + */ +class OpenLocalEditor extends Entity { + /** @var string */ + protected $userId; + + /** @var string */ + protected $pathHash; + + /** @var int */ + protected $expirationTime; + + /** @var string */ + protected $token; + + public function __construct() { + $this->addType('userId', 'string'); + $this->addType('pathHash', 'string'); + $this->addType('expirationTime', 'integer'); + $this->addType('token', 'string'); + } +} diff --git a/apps/files/lib/Db/OpenLocalEditorMapper.php b/apps/files/lib/Db/OpenLocalEditorMapper.php new file mode 100644 index 00000000000..6ae8b79c258 --- /dev/null +++ b/apps/files/lib/Db/OpenLocalEditorMapper.php @@ -0,0 +1,51 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace OCA\Files\Db; + +use OCP\AppFramework\Db\DoesNotExistException; +use OCP\AppFramework\Db\MultipleObjectsReturnedException; +use OCP\AppFramework\Db\QBMapper; +use OCP\DB\Exception; +use OCP\IDBConnection; + +/** + * @template-extends QBMapper<OpenLocalEditor> + */ +class OpenLocalEditorMapper extends QBMapper { + public function __construct(IDBConnection $db) { + parent::__construct($db, 'open_local_editor', OpenLocalEditor::class); + } + + /** + * @throws DoesNotExistException + * @throws MultipleObjectsReturnedException + * @throws Exception + */ + public function verifyToken(string $userId, string $pathHash, string $token): OpenLocalEditor { + $qb = $this->db->getQueryBuilder(); + + $qb->select('*') + ->from($this->getTableName()) + ->where($qb->expr()->eq('user_id', $qb->createNamedParameter($userId))) + ->andWhere($qb->expr()->eq('path_hash', $qb->createNamedParameter($pathHash))) + ->andWhere($qb->expr()->eq('token', $qb->createNamedParameter($token))); + + return $this->findEntity($qb); + } + + public function deleteExpiredTokens(int $time): void { + $qb = $this->db->getQueryBuilder(); + + $qb->delete($this->getTableName()) + ->where($qb->expr()->lt('expiration_time', $qb->createNamedParameter($time))); + + $qb->executeStatement(); + } +} diff --git a/apps/files/lib/Db/TransferOwnership.php b/apps/files/lib/Db/TransferOwnership.php new file mode 100644 index 00000000000..ae78c19b76d --- /dev/null +++ b/apps/files/lib/Db/TransferOwnership.php @@ -0,0 +1,42 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\Files\Db; + +use OCP\AppFramework\Db\Entity; + +/** + * @method void setSourceUser(string $uid) + * @method string getSourceUser() + * @method void setTargetUser(string $uid) + * @method string getTargetUser() + * @method void setFileId(int $fileId) + * @method int getFileId() + * @method void setNodeName(string $name) + * @method string getNodeName() + */ +class TransferOwnership extends Entity { + /** @var string */ + protected $sourceUser; + + /** @var string */ + protected $targetUser; + + /** @var integer */ + protected $fileId; + + /** @var string */ + protected $nodeName; + + public function __construct() { + $this->addType('sourceUser', 'string'); + $this->addType('targetUser', 'string'); + $this->addType('fileId', 'integer'); + $this->addType('nodeName', 'string'); + } +} diff --git a/apps/files/lib/Db/TransferOwnershipMapper.php b/apps/files/lib/Db/TransferOwnershipMapper.php new file mode 100644 index 00000000000..8b29399f768 --- /dev/null +++ b/apps/files/lib/Db/TransferOwnershipMapper.php @@ -0,0 +1,33 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\Files\Db; + +use OCP\AppFramework\Db\QBMapper; +use OCP\IDBConnection; + +/** + * @template-extends QBMapper<TransferOwnership> + */ +class TransferOwnershipMapper extends QBMapper { + public function __construct(IDBConnection $db) { + parent::__construct($db, 'user_transfer_owner', TransferOwnership::class); + } + + public function getById(int $id): TransferOwnership { + $qb = $this->db->getQueryBuilder(); + + $qb->select('*') + ->from($this->getTableName()) + ->where( + $qb->expr()->eq('id', $qb->createNamedParameter($id)) + ); + + return $this->findEntity($qb); + } +} |