ldc-jeusselin/app/Policies/UserPolicy.php
Jérémy Munsch de4dcfb283
Closes #2 and #4
- Add status checker + admin secure packages + upgrade enum + add sentry + upgrade to sitemap generator + bump to CRMV2
- Set customer role enum and user role enum
- Update customer migration to set roles
- phpcbf
- faker local to fr
- update lang
- composer update
- bump laravel ui
- Redo all user crud
- npm bump
- Create admin command
- rearrange views
- redo all auth system
- redo customer pro bo
2023-08-21 15:43:33 +02:00

104 lines
2.8 KiB
PHP

<?php
namespace App\Policies;
use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Auth\Access\Response;
class UserPolicy
{
use HandlesAuthorization;
/**
* Determine whether the user can view any models.
*
* @param \App\Models\User $user
* @return \Illuminate\Auth\Access\Response|boolean
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.Found
*/
public function viewAny(User $user)
{
// phpcs:enable
return Response::allow();
}
/**
* Determine whether the user can view the model.
*
* @param \App\Models\User $user
* @param \App\Models\User $model
* @return \Illuminate\Auth\Access\Response|boolean
*/
public function view(User $user, User $model)
{
return $user->role->value <= $model->role->value;
}
/**
* Determine whether the user can create models.
*
* @param \App\Models\User $user
* @return \Illuminate\Auth\Access\Response|boolean
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.Found
*/
public function create(User $user)
{
// phpcs:enable
return Response::allow();
}
/**
* Determine whether the user can update the model.
*
* @param \App\Models\User $user
* @param \App\Models\User $model
* @return \Illuminate\Auth\Access\Response|boolean
*/
public function update(User $user, User $model)
{
return $user->role->value <= $model->role->value;
}
/**
* Determine whether the user can delete the model.
*
* @param \App\Models\User $user
* @param \App\Models\User $model
* @return \Illuminate\Auth\Access\Response|boolean
*/
public function delete(User $user, User $model)
{
if ($user->role->value == $model->role->value) {
return Response::deny('Il n\'est pas possible de se supprimer soit même');
}
return $user->role->value <= $model->role->value;
}
/**
* Determine whether the user can restore the model.
*
* @param \App\Models\User $user
* @param \App\Models\User $model
* @return \Illuminate\Auth\Access\Response|boolean
*/
public function restore(User $user, User $model)
{
return $user->role->value <= $model->role->value;
}
/**
* Determine whether the user can permanently delete the model.
*
* @param \App\Models\User $user
* @param \App\Models\User $model
* @return \Illuminate\Auth\Access\Response|boolean
*/
public function forceDelete(User $user, User $model)
{
if ($user->role->value == $model->role->value) {
return Response::deny('Il n\'est pas possible de se supprimer soit même');
}
return $user->role->value <= $model->role->value;
}
}