vernova/app/Policies/LetterPolicy.php
2026-07-26 19:58:27 +03:30

56 lines
1.3 KiB
PHP

<?php
namespace App\Policies;
use App\Models\User;
use App\Models\Letter;
use Illuminate\Auth\Access\HandlesAuthorization;
class LetterPolicy
{
use HandlesAuthorization;
/**
* Determine whether the user can view any letters.
*/
public function viewAny(User $user): bool
{
return $user->can('letters.view') || $user->can('letters.update');
}
/**
* Determine whether the user can view the letter.
*/
public function view(User $user, Letter $letter): bool
{
return $user->tenant_id === $letter->tenant_id
&& ($user->can('letters.view') || $user->can('letters.update'));
}
/**
* Determine whether the user can create letters.
*/
public function create(User $user): bool
{
return $user->can('letters.create');
}
/**
* Determine whether the user can update the letter.
*/
public function update(User $user, Letter $letter): bool
{
return $user->tenant_id === $letter->tenant_id
&& $user->can('letters.update');
}
/**
* Determine whether the user can delete the letter.
*/
public function delete(User $user, Letter $letter): bool
{
return $user->tenant_id === $letter->tenant_id
&& $user->can('letters.delete');
}
}