Skip to content

Commit 281b92a

Browse files
committed
#12017 leave only ->whereHas(userUserGroups
1 parent e63520e commit 281b92a

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

classes/security/Validation.php

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,12 @@
2222
use Illuminate\Support\Str;
2323
use PKP\config\Config;
2424
use PKP\core\Core;
25+
use PKP\core\PKPApplication;
2526
use PKP\db\DAORegistry;
2627
use PKP\site\Site;
2728
use PKP\site\SiteDAO;
2829
use PKP\user\User;
2930
use PKP\userGroup\UserGroup;
30-
use PKP\security\Role;
31-
use PKP\core\PKPApplication;
3231

3332
class Validation
3433
{
@@ -417,56 +416,56 @@ public static function canAdminister($administeredUserId, $administratorUserId)
417416
->withRoleIds(Role::ROLE_ID_SITE_ADMIN)
418417
->whereHas('userUserGroups', function ($query) use ($administeredUserId) {
419418
$query->withUserId($administeredUserId)
420-
->withActive();
419+
->withActive();
421420
})
422421
->exists();
423-
422+
424423
if ($isAdministeredUserSiteAdmin) {
425424
return false;
426425
}
427-
426+
428427
// check if administrator user is site admin
429428
$isAdministratorUserSiteAdmin = UserGroup::query()
430429
->withContextIds($siteContextId)
431430
->withRoleIds(Role::ROLE_ID_SITE_ADMIN)
432431
->whereHas('userUserGroups', function ($query) use ($administratorUserId) {
433432
$query->withUserId($administratorUserId)
434-
->withActive();
433+
->withActive();
435434
})
436435
->exists();
437-
436+
438437
if ($isAdministratorUserSiteAdmin) {
439438
return true;
440439
}
441-
440+
442441
// Get contexts where administered user has roles
443442
$administeredUserContexts = UserGroup::query()
444443
->whereHas('userUserGroups', function ($query) use ($administeredUserId) {
445444
$query->withUserId($administeredUserId)
446-
->withActive();
445+
->withActive();
447446
})
448447
->get()
449448
->map(fn ($userGroup) => $userGroup->contextId)
450449
->unique()
451450
->values()
452451
->toArray();
453-
452+
454453
// get contexts where administrator user has manager role
455454
$administratorManagerContexts = UserGroup::query()
456455
->withRoleIds(Role::ROLE_ID_MANAGER)
457456
->whereHas('userUserGroups', function ($query) use ($administratorUserId) {
458457
$query->withUserId($administratorUserId)
459-
->withActive();
458+
->withActive();
460459
})
461460
->get()
462461
->map(fn ($userGroup) => $userGroup->contextId)
463462
->unique()
464463
->values()
465464
->toArray();
466-
465+
467466
// check for conflicting contexts
468467
$conflictingContexts = array_diff($administeredUserContexts, $administratorManagerContexts);
469-
468+
470469
if (!empty($conflictingContexts)) {
471470
// found conflicting contexts: disqualified
472471
return false;
@@ -504,12 +503,11 @@ public static function getAdministrationLevel(
504503

505504
// single query to fetch user groups assigned to either user
506505
$allUserGroups = UserGroup::query()
507-
->whereHas('userUserGroups', fn($q) =>
506+
->whereHas(
507+
'userUserGroups',
508+
fn ($q) =>
508509
$q->withActive()->withUserIds([$administratorUserId, $administeredUserId])
509510
)
510-
->with(['userUserGroups' => fn($q) =>
511-
$q->withActive()->withUserIds([$administratorUserId, $administeredUserId])
512-
])
513511
->get();
514512

515513
$administratorMap = [];

0 commit comments

Comments
 (0)