Skip to content

Commit

Permalink
[Community] fixes incomplete user roles list
Browse files Browse the repository at this point in the history
  • Loading branch information
Elorfin committed Jun 6, 2023
1 parent 40f5d96 commit 4bbd8e9
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/main/community/Finder/RoleFinder.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,13 @@ public function configureQueryBuilder(QueryBuilder $qb, array $searches = [], ar
$isAdmin = true;
}

// if not admin doesnt list platform_admin role, for security purpose
// if not admin, don't list platform_admin role, for security purpose
if (!$isAdmin) {
$qb->andWhere('obj.name != :roleAdmin');
$qb->setParameter('roleAdmin', PlatformRoles::ADMIN);
}

$groupJoin = false;
$workspaceJoin = false;

foreach ($searches as $filterName => $filterValue) {
Expand All @@ -74,12 +75,22 @@ public function configureQueryBuilder(QueryBuilder $qb, array $searches = [], ar
case 'user':
case 'users':
$qb->leftJoin('obj.users', 'ru');
$qb->andWhere('ru.uuid IN (:userIds)');
if (!$groupJoin) {
$qb->leftJoin('obj.groups', 'g');
$groupJoin = true;
}
$qb->leftJoin('g.users', 'gu');

$qb->andWhere('(ru.uuid IN (:userIds) OR gu.uuid IN (:userIds))');
$qb->setParameter('userIds', is_array($filterValue) ? $filterValue : [$filterValue]);
break;
case 'group':
case 'groups':
$qb->leftJoin('obj.groups', 'g');
if (!$groupJoin) {
$qb->leftJoin('obj.groups', 'g');
$groupJoin = true;
}

$qb->andWhere('g.uuid IN (:groupIds)');
$qb->setParameter('groupIds', is_array($filterValue) ? $filterValue : [$filterValue]);
break;
Expand Down

0 comments on commit 4bbd8e9

Please sign in to comment.