ldc-supportweb/app/Providers/AuthServiceProvider.php
2023-08-14 09:23:39 +00:00

41 lines
1.1 KiB
PHP

<?php
namespace App\Providers;
use App\Enums\Users\RoleEnum;
use App\Models\User;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
/**
* The model to policy mappings for the application.
*
* @var array<class-string, class-string>
*/
protected $policies = [];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot(): void
{
$this->registerPolicies();
Gate::define('isAdmin', function (User $user) {
return \auth()->check() && ($user->role->equals(RoleEnum::developper) or
$user->role->equals(RoleEnum::admin));
});
Gate::define('isDev', function (User $user) {
return \auth()->check() && $user->role->equals(RoleEnum::developper);
});
Gate::define('isClient', function (User $user) {
return \auth()->check() && $user->role->equals(RoleEnum::client);
});
}
}