ldc-supportweb/app/Policies/SitePolicy.php
2026-06-05 17:05:46 +02:00

87 lines
2.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Policies;
use Illuminate\Database\Eloquent\Model;
use Uwil\LaravelBackend\Policies\Rules\UserStaticRules;
use Uwil\LaravelBackend\Support\UserRoleRegistry;
/**
* Handles authorization for Site model actions.
*/
class SitePolicy
{
/**
* Determine whether the user can view any models.
*/
public function viewAny(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('client')->value);
}
/**
* Determine whether the user can view trash models.
*/
public function viewTrash(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('developper')->value);
}
/**
* Determine whether the user can view the model.
*/
public function view(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('client')->value);
}
/**
* Determine whether the user can create models.
*/
public function create(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('developper')->value);
}
/**
* Determine whether the user can update the model.
*/
public function update(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('developper')->value);
}
/**
* Determine whether the user can duplicate the model.
*/
public function duplicate(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('developper')->value);
}
/**
* Determine whether the user can restore the model.
*/
public function restore(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('developper')->value);
}
/**
* Determine whether the user can soft delete the model.
*/
public function delete(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('developper')->value);
}
/**
* Determine whether the user can permanently delete the model.
*/
public function forceDelete(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, UserRoleRegistry::get('developper')->value);
}
}