ldc-nature-eleveurs/app/Policies/Rules/UserStaticRules.php
2024-08-23 08:22:48 +02:00

51 lines
963 B
PHP

<?php
namespace App\Policies\Rules;
use App\Enums\Users\RoleEnum;
use App\Models\User;
/**
* Userlevel Policiy Static Rules
*
* @codeCoverageIgnore
*/
abstract class UserStaticRules
{
/**
* Allow everyone.
*
* @return boolean
*/
public static function everyOne(): bool
{
return true;
}
/**
* Allow no one.
*
* @return boolean
*/
public static function noOne(): bool
{
return false;
}
/**
* At least a minimum role
*
* @param \App\Models\User $user
* @param \App\Enums\Users\RoleEnum|null $minRole
* @return boolean
*/
public static function atLeastRole(User $user, RoleEnum|null $minRole): bool
{
// phpcs:enable
// Condition for creation case when user model is null
if (!$minRole) {
return true;
}
return $user->role->value() <= $minRole->value();
}
}