#63 - permissions

This commit is contained in:
Adrian Hopek
2022-03-01 14:49:09 +01:00
parent c9a7ec4869
commit b81b0f857c
21 changed files with 419 additions and 181 deletions

View File

@@ -5,17 +5,31 @@ declare(strict_types=1);
namespace Toby\Architecture\Providers;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Toby\Domain\Policies\HolidayPolicy;
use Toby\Eloquent\Models\Holiday;
use Illuminate\Support\Facades\Gate;
use Toby\Domain\Enums\Role;
use Toby\Domain\Policies\VacationRequestPolicy;
use Toby\Eloquent\Models\User;
use Toby\Eloquent\Models\VacationRequest;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
Holiday::class => HolidayPolicy::class
VacationRequest::class => VacationRequestPolicy::class,
];
public function boot(): void
{
$this->registerPolicies();
Gate::before(function (User $user) {
if ($user->role === Role::Administrator) {
return true;
}
});
Gate::define("manageUsers", fn(User $user) => $user->role === Role::AdministrativeApprover);
Gate::define("manageHolidays", fn(User $user) => $user->role === Role::AdministrativeApprover);
Gate::define("manageVacationLimits", fn(User $user) => $user->role === Role::AdministrativeApprover);
Gate::define("generateTimesheet", fn(User $user) => $user->role === Role::AdministrativeApprover);
}
}