netgescon-master/app/Policies/StabilePolicy.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');
}
}