За последние 24 часа нас посетили 17938 программистов и 1571 робот. Сейчас ищут 1387 программистов ...

Оптимизация присвоение роли пользователю

Тема в разделе "Laravel", создана пользователем troelsenon, 13 дек 2017.

  1. troelsenon

    troelsenon Активный пользователь

    С нами с:
    13 ноя 2015
    Сообщения:
    19
    Симпатии:
    2
    Доброго времени суток!
    Возможно, вы сможете мне подсказать как сделать мой код более оптимальным.
    Код (Text):
    1. public function user()
    2.     {
    3.         $userId = (int)request('user_id');
    4.  
    5.         if (!(Auth::user()->hasRole(Role::ROLE_SUPERADMIN) || Auth::user()->hasRole(Role::ROLE_ADMIN))) {
    6.             return Auth::user();
    7.         } elseif ($userId && $user = User::find($userId)) {
    8.             return $user;
    9.         } else {
    10.             return Auth::user();
    11.         }
    12.     }
    Суть метода в том, что если наша роль не админ или суперадмин мы можем редактировать только свои данные. А, если есть get параметр user_id и этот id есть в БД (то есть пользователь существует), то мы можем править данные пользователя с переданным id.
    Сам метод находится в сервисе.
    Спасибо за уделенное время!
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Это вообще не так делается. Если не админ лезет редактировать чужой профиль, ему надо показывать 403-ю ошибку, и посылать в ж...

    А вообще, авторизацию в Laravel принято делать так: https://laravel.com/docs/master/authorization, роли - это уже какая-то ваша надстройка.