2021-06-18 15:39:19 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Policies\Rules;
|
|
|
|
|
|
2021-07-25 19:11:33 +02:00
|
|
|
use App\Enums\Role;
|
2021-06-18 15:39:19 +02:00
|
|
|
use App\Models\User;
|
2021-07-24 14:20:56 +02:00
|
|
|
use Kwaadpepper\CrudPolicies\Policies\Rules\StaticRules;
|
2021-06-18 15:39:19 +02:00
|
|
|
|
|
|
|
|
/**
|
2022-05-31 14:06:07 +02:00
|
|
|
* User Policiy Static Rules
|
2022-03-29 16:57:54 +02:00
|
|
|
* ! Rules has to return boolean value
|
2021-06-18 15:39:19 +02:00
|
|
|
*/
|
|
|
|
|
abstract class UserRoleRules extends StaticRules
|
|
|
|
|
{
|
2022-05-31 14:06:07 +02:00
|
|
|
/**
|
|
|
|
|
* User is admin
|
|
|
|
|
*
|
|
|
|
|
* @param User $user
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
protected static function userIsAdmin(User $user): bool
|
2021-06-18 15:39:19 +02:00
|
|
|
{
|
2021-07-23 11:04:09 +02:00
|
|
|
return $user->isAdmin();
|
2021-06-18 15:39:19 +02:00
|
|
|
}
|
2021-07-24 14:20:56 +02:00
|
|
|
|
2022-05-31 14:06:07 +02:00
|
|
|
/**
|
|
|
|
|
* User Is Dev
|
|
|
|
|
*
|
|
|
|
|
* @param User $user
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
protected static function userIsDev(User $user): bool
|
2021-07-25 19:11:33 +02:00
|
|
|
{
|
|
|
|
|
return $user->role->equals(Role::developper());
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-31 14:06:07 +02:00
|
|
|
/**
|
|
|
|
|
* User Is Client
|
|
|
|
|
*
|
|
|
|
|
* @param User $user
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
protected static function userIsClient(User $user): bool
|
2021-09-29 13:09:35 +02:00
|
|
|
{
|
|
|
|
|
return $user->role->equals(Role::client());
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-31 14:06:07 +02:00
|
|
|
/**
|
|
|
|
|
* Allow every one
|
|
|
|
|
*
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
protected static function allowEveryOne(): bool
|
2021-07-24 14:20:56 +02:00
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-31 14:06:07 +02:00
|
|
|
/**
|
|
|
|
|
* Deny everyone
|
|
|
|
|
*
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
protected static function denyEveryOne(): bool
|
2021-07-24 14:20:56 +02:00
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2021-06-18 15:39:19 +02:00
|
|
|
}
|