55 lines
1.5 KiB
PHP
55 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Policies;
|
|
|
|
use App\Models\Stabile;
|
|
use App\Models\User;
|
|
use Illuminate\Auth\Access\Response;
|
|
|
|
class StabilePolicy
|
|
{
|
|
/**
|
|
* Determine whether the user can view the model.
|
|
*/
|
|
public function view(User $user, Stabile $stabile): bool
|
|
{
|
|
// Best Practice Laravel: verifica i permessi invece di relazioni dirette
|
|
return $user->can('view-stabili') ||
|
|
$user->can('manage-stabili') ||
|
|
$user->hasRole('super-admin');
|
|
}
|
|
|
|
/**
|
|
* Determine whether the user can create models.
|
|
*/
|
|
public function create(User $user): bool
|
|
{
|
|
// Qualsiasi utente con il permesso può creare uno stabile.
|
|
return $user->can('create-stabili') ||
|
|
$user->can('manage-stabili') ||
|
|
$user->hasRole('amministratore');
|
|
}
|
|
|
|
/**
|
|
* Determine whether the user can update the model.
|
|
*/
|
|
public function update(User $user, Stabile $stabile): bool
|
|
{
|
|
// L'utente può modificare se ha i permessi appropriati
|
|
return $user->can('edit-stabili') ||
|
|
$user->can('manage-stabili') ||
|
|
$user->hasRole('super-admin');
|
|
}
|
|
|
|
/**
|
|
* Determine whether the user can delete the model.
|
|
*/
|
|
public function delete(User $user, Stabile $stabile): bool
|
|
{
|
|
// L'utente può eliminare se ha i permessi appropriati
|
|
return $user->can('delete-stabili') ||
|
|
$user->can('manage-stabili') ||
|
|
$user->hasRole('super-admin');
|
|
}
|
|
}
|