mirror of
https://github.com/verdigado/organization_folders.git
synced 2024-12-06 11:22:41 +01:00
continued development of ACL rule management; fixed getting filesystem node of folder resources
This commit is contained in:
parent
5500ded3fb
commit
8d781f5001
6 changed files with 121 additions and 14 deletions
|
@ -28,6 +28,7 @@ class ResourceMember extends Entity implements JsonSerializable, TableSerializab
|
|||
|
||||
public function jsonSerialize(): array {
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'resourceId' => $this->resourceId,
|
||||
'permissionLevel' => $this->permissionLevel,
|
||||
'type' => $this->type,
|
||||
|
@ -39,6 +40,7 @@ class ResourceMember extends Entity implements JsonSerializable, TableSerializab
|
|||
|
||||
public function tableSerialize(?array $params = null): array {
|
||||
return [
|
||||
'Id' => $this->id,
|
||||
'Resource Id' => $this->resourceId,
|
||||
'Permission Level' => MemberPermissionLevel::from($this->permissionLevel)->name,
|
||||
'Type' => MemberType::from($this->type)->name,
|
||||
|
|
|
@ -46,4 +46,17 @@ class ResourceMemberMapper extends QBMapper {
|
|||
|
||||
return $this->findEntities($qb);
|
||||
}
|
||||
|
||||
public function exists(int $resourceId, int $type, string $principal): bool {
|
||||
/* @var $qb IQueryBuilder */
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
|
||||
$qb->select($qb->createFunction('COUNT(1)'))
|
||||
->from(self::RESOURCE_MEMBERS_TABLE)
|
||||
->where($qb->expr()->eq('resource_id', $qb->createNamedParameter($resourceId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('principal', $qb->createNamedParameter($principal)));
|
||||
|
||||
return $qb->executeQuery()->fetch()["COUNT(1)"] === 1;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue