ldc-groupe/app/Policies/DynamicPagePolicy.php

116 lines
3.3 KiB
PHP
Raw Permalink Normal View History

2025-09-16 16:44:49 +02:00
<?php
namespace App\Policies;
use App\Models\DynamicPage;
use Illuminate\Database\Eloquent\Model;
use Uwil\LaravelBackend\Enums\RoleEnum;
use Uwil\LaravelBackend\Policies\Rules\UserStaticRules;
class DynamicPagePolicy
{
/**
* Determine whether the user can view any models.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @return boolean
*/
public function viewAny(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, RoleEnum::admin);
}
/**
* Determine whether the user can view trash models.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @return boolean
*/
public function viewTrash(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, RoleEnum::admin);
}
2025-09-16 16:44:49 +02:00
/**
* Determine whether the user can view the model.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @return boolean
*/
public function view(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, RoleEnum::admin);
}
/**
* Determine whether the user can create models.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @return boolean
*/
public function create(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, RoleEnum::admin);
}
/**
* Determine whether the user can update the model.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @return boolean
*/
public function update(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, RoleEnum::admin);
}
/**
* Determine whether the user can duplicate the model.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @return boolean
*/
public function duplicate(Model $authModel): bool
{
2025-10-29 10:29:57 +01:00
// TODO: duplicate wysiwyg path image.
return false;
}
/**
* Determine whether the user can restore the model.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @return boolean
*/
public function restore(Model $authModel): bool
{
return UserStaticRules::atLeastRole($authModel, RoleEnum::admin);
}
2025-09-16 16:44:49 +02:00
/**
* Determine whether the user can delete the model.
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @param \App\Models\DynamicPage $dynamicPageModel
* @return boolean
*/
public function delete(Model $authModel, DynamicPage $dynamicPageModel): bool
{
return (!$dynamicPageModel->isLocked && UserStaticRules::atLeastRole($authModel, RoleEnum::admin))
|| UserStaticRules::atLeastRole($authModel, RoleEnum::conceptor);
}
/**
* Determine whether the user can force delete the model.
2025-09-16 16:44:49 +02:00
*
* @param \Illuminate\Database\Eloquent\Model $authModel
* @param \App\Models\DynamicPage $dynamicPageModel
2025-09-16 16:44:49 +02:00
* @return boolean
*/
public function forceDelete(Model $authModel, DynamicPage $dynamicPageModel): bool
2025-09-16 16:44:49 +02:00
{
return (!$dynamicPageModel->isLocked && UserStaticRules::atLeastRole($authModel, RoleEnum::admin))
|| UserStaticRules::atLeastRole($authModel, RoleEnum::conceptor);
2025-09-16 16:44:49 +02:00
}
}