Skip to content

Commit 4539b61

Browse files
committed
feat: add hasAnyPermissions and hasAnyRoles helper functions
1 parent cd0ef34 commit 4539b61

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

src/HelperRolePermission.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,20 @@ function hasPermissions(string $permissions): bool
2424
}
2525
}
2626

27+
if (! function_exists('hasAnyPermissions')) {
28+
function hasAnyPermissions(string $permissions): bool
29+
{
30+
return auth()->check() && auth()->user()->hasAnyPermissions($permissions);
31+
}
32+
}
33+
34+
if (! function_exists('hasAnyRoles')) {
35+
function hasAnyRoles(string $roles): bool
36+
{
37+
return auth()->check() && auth()->user()->hasAnyRoles($roles);
38+
}
39+
}
40+
2741
if (! function_exists('getPermissions')) {
2842
function getPermissions(): array
2943
{

src/Traits/HasPermissionsTrait.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,28 @@ protected function hasPermission($permission): bool
132132
return true;
133133
}
134134

135+
public function hasAnyPermissions(string|array $permissions): bool
136+
{
137+
$arrayPermissions = CoreUtility::stringArray($permissions);
138+
139+
foreach ($arrayPermissions as $permission) {
140+
if ($this->hasPermissionTo($permission)) {
141+
return true;
142+
}
143+
}
144+
145+
return false;
146+
}
147+
148+
public function hasAnyRoles(string|array $roles): bool
149+
{
150+
$arrayRoles = CoreUtility::stringArray($roles);
151+
152+
$userRoles = $this->roles->pluck('name')->toArray();
153+
154+
return ! empty(array_intersect($arrayRoles, $userRoles));
155+
}
156+
135157
protected function getAllPermissions(array $permissions)
136158
{
137159
$permissionNames = array_map(fn ($permission) => is_object($permission) ? $permission->name : $permission, $permissions);

0 commit comments

Comments
 (0)