=== User::ADMINISTRATOR || $user->role === User::OWNER;
}
В StoreUserRequest
public function authorize()
{
return Auth::user()->can('create', User::class);
}
Но в таком случае аминистратор сможет создать юзера с любой ролью, а он НЕ должен уметь создавать юзера с ролью owner. Как сделать проверку? В authorize() нельзя обратиться к $this->validated() и вытащить инпут с ролью, т.к. авторизация происходит первее, и на момент срабатывания authorize валидатора ещё нет. Какие есть варианты?
вариант 1 вынести проверку на создаваемую роль в FormRequest вариант 2 вынести проверку в контроллер такая валидация лучше выглядит именно там, так как ближе к неверным входным данным, нежели к отсутствию прав доступа, имхо
А что мешает вторым аргументом передать роль, например?
Ничего, если проверять в контроллере
Обсуждают сегодня