mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-10 21:31:06 +03:30
51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Policies;
|
|
|
|
use App\Constants\StatusTypeEnum;
|
|
use App\Models\Item;
|
|
use App\Models\User;
|
|
|
|
class ItemPolicy
|
|
{
|
|
public function showAll(User $user)
|
|
{
|
|
if ($user->hasRole('Admin'))
|
|
return true;
|
|
}
|
|
|
|
public function delete(User $user, Item $Item)
|
|
{
|
|
if ($user->hasRole('Admin')) {
|
|
return true;
|
|
} elseif ($user->hasRole('Supervisor') && $Item->user->medical_center_id == $user->medical_center_id) {
|
|
return true;
|
|
} elseif ($user->hasRole('User') && $Item->user_id == $user->id && $Item->status != StatusTypeEnum::APPROVED) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public function update(User $user, Item $Item)
|
|
{
|
|
if (
|
|
$user->hasRole('Admin') ||
|
|
($user->hasRole('Supervisor') && $Item->user->medical_center_id == $user->medical_center_id) ||
|
|
$Item->user_id == $user->id
|
|
)
|
|
return true;
|
|
}
|
|
|
|
public function changeStatus(User $user)
|
|
{
|
|
if ($user->hasRole('Admin|Supervisor'))
|
|
return true;
|
|
}
|
|
|
|
public function changeRepair(User $user)
|
|
{
|
|
if ($user->hasRole('Admin|Supervisor'))
|
|
return true;
|
|
}
|
|
}
|