mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-14 11:12:16 +01:00
Send permission to client via inertia data
This commit is contained in:
committed by
Constantin Graf
parent
a3196c4964
commit
af447ce2c0
@@ -7,6 +7,8 @@ namespace App\Service;
|
||||
use App\Models\Organization;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Laravel\Jetstream\Jetstream;
|
||||
use Laravel\Jetstream\Role;
|
||||
|
||||
class PermissionStore
|
||||
{
|
||||
@@ -40,4 +42,31 @@ class PermissionStore
|
||||
|
||||
return in_array($permission, $permissions, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string>
|
||||
*/
|
||||
public function getPermissions(Organization $organization): array
|
||||
{
|
||||
/** @var User|null $user */
|
||||
$user = Auth::user();
|
||||
if ($user === null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (! $user->belongsToTeam($organization)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$role = $organization->users
|
||||
->where('id', $user->getKey())
|
||||
->first()
|
||||
?->membership
|
||||
?->role;
|
||||
|
||||
/** @var Role|null $roleObj */
|
||||
$roleObj = Jetstream::findRole($role);
|
||||
|
||||
return $role !== null ? ($roleObj?->permissions ?? []) : [];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user