diff options
author | Joas Schilling <coding@schilljs.com> | 2021-09-22 13:37:20 +0300 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2021-10-07 19:18:30 +0300 |
commit | 390ae657a18523bb0b39f6531fa27de9bb075410 (patch) | |
tree | 1782ae950637d44d033e3a3b6f112ff4b529a2e1 /lib/Model | |
parent | a0e1168db04100c153133a5fcb0d1440a2e22644 (diff) |
Introduce different layers for permissions
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/Model')
-rw-r--r-- | lib/Model/Attendee.php | 11 | ||||
-rw-r--r-- | lib/Model/AttendeeMapper.php | 40 |
2 files changed, 26 insertions, 25 deletions
diff --git a/lib/Model/Attendee.php b/lib/Model/Attendee.php index a6c1bcd06..d83345519 100644 --- a/lib/Model/Attendee.php +++ b/lib/Model/Attendee.php @@ -51,8 +51,9 @@ use OCP\AppFramework\Db\Entity; * @method int getLastMentionDirect() * @method void setReadPrivacy(int $readPrivacy) * @method int getReadPrivacy() - * @method void setPublishingPermissions(int $publishingPermissions) - * @method int getPublishingPermissions() + * @method void setPermissions(int $permissions) + * @internal + * @method int getPermissions() * @method void setAccessToken(string $accessToken) * @method null|string getAccessToken() * @method void setRemoteId(string $remoteId) @@ -117,7 +118,7 @@ class Attendee extends Entity { protected $readPrivacy; /** @var int */ - protected $publishingPermissions; + protected $permissions; /** @var string */ protected $accessToken; @@ -139,7 +140,7 @@ class Attendee extends Entity { $this->addType('lastMentionMessage', 'int'); $this->addType('lastMentionDirect', 'int'); $this->addType('readPrivacy', 'int'); - $this->addType('publishingPermissions', 'int'); + $this->addType('permissions', 'int'); $this->addType('accessToken', 'string'); $this->addType('remote_id', 'string'); } @@ -167,7 +168,7 @@ class Attendee extends Entity { 'last_mention_message' => $this->getLastMentionMessage(), 'last_mention_direct' => $this->getLastMentionDirect(), 'read_privacy' => $this->getReadPrivacy(), - 'publishing_permissions' => $this->getPublishingPermissions(), + 'permissions' => $this->getPermissions(), 'access_token' => $this->getAccessToken(), 'remote_id' => $this->getRemoteId(), ]; diff --git a/lib/Model/AttendeeMapper.php b/lib/Model/AttendeeMapper.php index bd8551f46..174ca2d6e 100644 --- a/lib/Model/AttendeeMapper.php +++ b/lib/Model/AttendeeMapper.php @@ -198,7 +198,7 @@ class AttendeeMapper extends QBMapper { return (int) $query->execute(); } - public function modifyPublishingPermissions(int $roomId, string $mode, int $newState, bool $includeModerators): void { + public function modifyPermissions(int $roomId, string $mode, int $newState, bool $includeModerators): void { $query = $this->db->getQueryBuilder(); $query->update($this->getTableName()) ->where($query->expr()->eq('room_id', $query->createNamedParameter($roomId, IQueryBuilder::PARAM_INT))) @@ -216,7 +216,7 @@ class AttendeeMapper extends QBMapper { } if ($mode === Participant::PERMISSIONS_MODIFY_SET) { - $query->set('publishing_permissions', $query->createNamedParameter($newState, IQueryBuilder::PARAM_INT)); + $query->set('permissions', $query->createNamedParameter($newState, IQueryBuilder::PARAM_INT)); $query->executeStatement(); } else { foreach ([ @@ -229,53 +229,53 @@ class AttendeeMapper extends QBMapper { ] as $permission) { if ($permission & $newState) { if ($mode === Participant::PERMISSIONS_MODIFY_ADD) { - $this->addSinglePublishingPermission($query, $permission); + $this->addSinglePermission($query, $permission); } elseif ($mode === Participant::PERMISSIONS_MODIFY_REMOVE) { - $this->removeSinglePublishingPermission($query, $permission); + $this->removeSinglePermission($query, $permission); } } } } } - protected function addSinglePublishingPermission(IQueryBuilder $query, int $publishingPermission): void { - $query->set('publishing_permissions', $query->func()->add( - 'publishing_permissions', - $query->createNamedParameter($publishingPermission, IQueryBuilder::PARAM_INT) + protected function addSinglePermission(IQueryBuilder $query, int $permission): void { + $query->set('permissions', $query->func()->add( + 'permissions', + $query->createNamedParameter($permission, IQueryBuilder::PARAM_INT) )); $query->andWhere( $query->expr()->neq( $query->expr()->castColumn( $query->expr()->bitwiseAnd( - 'publishing_permissions', - $publishingPermission + 'permissions', + $permission ), IQueryBuilder::PARAM_INT ), - $query->createNamedParameter($publishingPermission, IQueryBuilder::PARAM_INT) + $query->createNamedParameter($permission, IQueryBuilder::PARAM_INT) ) ); $query->executeStatement(); } - protected function removeSinglePublishingPermission(IQueryBuilder $query, int $publishingPermission): void { - $query->set('publishing_permissions', $query->func()->subtract( - 'publishing_permissions', - $query->createNamedParameter($publishingPermission, IQueryBuilder::PARAM_INT) + protected function removeSinglePermission(IQueryBuilder $query, int $permission): void { + $query->set('permissions', $query->func()->subtract( + 'permissions', + $query->createNamedParameter($permission, IQueryBuilder::PARAM_INT) )); $query->andWhere( $query->expr()->eq( $query->expr()->castColumn( $query->expr()->bitwiseAnd( - 'publishing_permissions', - $publishingPermission + 'permissions', + $permission ), - IQueryBuilder::PARAM_INT + IQueryBuilder::PARAM_INT ), - $query->createNamedParameter($publishingPermission, IQueryBuilder::PARAM_INT) + $query->createNamedParameter($permission, IQueryBuilder::PARAM_INT) ) ); @@ -298,7 +298,7 @@ class AttendeeMapper extends QBMapper { 'last_mention_message' => (int) $row['last_mention_message'], 'last_mention_direct' => (int) $row['last_mention_direct'], 'read_privacy' => (int) $row['read_privacy'], - 'publishing_permissions' => (int) $row['publishing_permissions'], + 'permissions' => (int) $row['permissions'], 'access_token' => (string) $row['access_token'], 'remote_id' => (string) $row['remote_id'], ]); |