Политика Laravel voyager на основе роли пользователя

Я не могу понять, как определить роль пользователя в voyager. Я пытаюсь выполнить некоторую проверку политики на основе роли пользователя, например:

public function browse(User $user)
{
  $user->role == 'admin';
}

Но это возвращает false (This action is unauthorized.) даже для пользователя с ролью администратора. Я использую laravel 5.6 и voyager 1.1.3.


person Victordb    schedule 31.07.2018    source источник


Ответы (1)


В таблице пользователей voyager нет роли или имени_роли. Я должен использовать role_id

 public function browse(User $user)
    {
     if (  $user->role_id == 1 ) {
     return true;       
     } else {
     return false;      
     }
    }

Можно ли использовать имя роли?

person Victordb    schedule 31.07.2018
comment
Да, есть! Вы можете использовать: $user-›hasRole('admin'); : возвращает логическое значение; если этот пользователь является администратором; - person Riajul; 22.01.2019