Skip to content

Commit 48b009d

Browse files
committed
Fix: if have multiple filament panel
1 parent 00aba66 commit 48b009d

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

src/helpers.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,19 @@ function has_super_admin_role($user): bool
116116
$roleName = inspirecms_permissions()->getSuperAdminRoleName();
117117
$guardName = AuthHelper::guardName();
118118

119-
if (method_exists($user, 'hasRole')) {
120-
return $user->hasRole($roleName, $guardName);
119+
120+
try {
121+
if (in_array('Spatie\Permission\Traits\HasRoles', trait_uses_recursive($user))) {
122+
return $user->hasRole($roleName, $guardName);
121123

122-
} elseif ($user instanceof Model) {
123-
return $user->relationLoaded('roles')
124-
? $user->roles->contains(fn ($role) => $role->name === $roleName && $role->guard_name === $guardName)
125-
: $user->roles()->where('name', $roleName)->where('guard_name', $guardName)->exists();
124+
} elseif ($user instanceof Model) {
125+
return $user->relationLoaded('roles')
126+
? $user->roles->contains(fn ($role) => $role->name === $roleName && $role->guard_name === $guardName)
127+
: $user->roles()->where('name', $roleName)->where('guard_name', $guardName)->exists();
126128

129+
}
130+
} catch (\Throwable $th) {
131+
// Handle the exception if needed
127132
}
128133

129134
return false;

0 commit comments

Comments
 (0)