base commit

This commit is contained in:
Mekan1206
2026-07-30 17:24:40 +05:00
commit a794dacd39
345 changed files with 29597 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
<?php
declare(strict_types=1);
namespace App\Policies\Concerns;
use App\Models\User;
trait ScopedByDepartment
{
protected function userManagesDepartment(User $user, ?int $departmentId): bool
{
if (! $user->hasRole('department_manager')) {
return true;
}
if ($departmentId === null) {
return false;
}
return $user->department_id === $departmentId;
}
protected function userIsViewer(User $user): bool
{
return $user->hasRole('viewer');
}
protected function isSuperAdmin(User $user): bool
{
return $user->hasRole('super_admin');
}
protected function hasFullAccess(User $user): bool
{
return $user->hasRole(['administrator', 'hr_manager']);
}
protected function canForceDelete(User $user): bool
{
return $user->hasRole('administrator');
}
protected function canRead(User $user): bool
{
return $this->hasFullAccess($user)
|| $user->hasRole(['supervisor', 'department_manager'])
|| $this->userIsViewer($user);
}
}