Tweaked logic around messaging

This commit is contained in:
snipe
2026-05-13 21:27:25 +01:00
parent 0f595a8854
commit dc1410aa70
2 changed files with 11 additions and 29 deletions
@@ -16,7 +16,7 @@ final class PreserveUnauthorizedPrivilegedPermissionsAction
public static function run(array $requestedPermissions, User $authenticatedUser, array $originalPermissions = [], ?User $targetUser = null): array
{
// Disallow non-admin/superuser users from modifying their own permissions, but allow them to modify other users' permissions (except for admin/superuser keys).
if ($targetUser && !$authenticatedUser->isSuperUser() && $authenticatedUser->id === $targetUser->id) {
if ($targetUser && ! $authenticatedUser->isSuperUser() && $authenticatedUser->id === $targetUser->id) {
return $originalPermissions;
}
+10 -28
View File
@@ -648,48 +648,30 @@
<div class="tab-pane" id="permissions">
<x-form.legend help_text="{{ trans('permissions.use_groups') }}"/>
@if (auth()->user()->isSuperUser())
{{-- Superusers can do everything, including editing their own permissions --}}
<div class="col-md-12">
@include('partials.forms.edit.permissions-base', ['use_inherit' => true, 'groupPermissions' => $userPermissions])
</div>
@elseif (auth()->user()->isAdmin())
{{-- Admins can edit own and others' permissions, but cannot grant superuser --}}
@if (auth()->user()->isAdmin() && !auth()->user()->isSuperUser())
<p class="alert alert-info">
<x-icon type="info"/>
{{ trans('admin/users/general.superadmin_permission_warning') }}
</p>
<div class="col-md-12">
@include('partials.forms.edit.permissions-base', ['use_inherit' => true, 'groupPermissions' => $userPermissions])
</div>
@elseif (auth()->id() === $user->id)
{{-- Non-admin/superuser cannot edit their own permissions --}}
@elseif (!auth()->user()->isAdmin() && !auth()->user()->isSuperUser() && auth()->id() === $user->id)
<p class="alert alert-danger">
<x-icon type="alert"/>
{{ trans('admin/users/general.self_permission_warning') }}
</p>
@else
{{-- Non-admin/superuser editing another user OR creating a new user — cannot grant admin or superuser --}}
<p class="alert alert-info">
<x-icon type="help"/>
@elseif (!auth()->user()->isAdmin() && !auth()->user()->isSuperUser() && auth()->id() !== $user->id)
<p class="alert alert-danger">
<x-icon type="warning"/>
{{ trans('admin/users/general.admin_permission_warning') }}
</p>
@if (!$user->isSuperUser())
<div class="col-md-12">
@include('partials.forms.edit.permissions-base', ['use_inherit' => true, 'groupPermissions' => $userPermissions])
</div>
@endif
@endif
@if (auth()->user()->isSuperUser() || auth()->user()->isAdmin() || (auth()->id() !== $user->id && !$user->isSuperUser()))
<div class="col-md-12">
@include('partials.forms.edit.permissions-base', ['use_inherit' => true, 'groupPermissions' => $userPermissions])
</div>
@endif
</div><!-- /.tab-pane -->
</div><!-- /.tab-content -->