Роли, Права, Авторизация в Laravel. Необходимые знания для понимания Gates и Policies. Часть 1

Поделиться
HTML-код
  • Опубликовано: 2 авг 2024
  • В сегодняшнем ролике я расскажу про авторизацию и разделение прав пользователей. Создадим простую ролевую модель, а также поработаем с Gates и Policies.
    #авторизация#laravel#cutcode
    ---------------------------------------------------------------------------------
    ❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного - t.me/laravel_chat
    🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - cutcode.ru/chat-bot
    ---------------------------------------------------------------------------------
    ⏰ Таймкоды:
    00:00 Введение и содержание выпуска
    00:35 Что нам потребуется
    01:45 Теория по авторизации. Gates и Policies
    03:30 Создание Gate.
    05:00 Кнопки удалить и редактировать
    09:32 Метод authorize
    12:52 Метод inspect
    13:52 Способ от текущей модели с пользователем
    15:00 Метод before для полного доступа администратору
    Всех поклонников Laravel я приветствую на канале Cutcode! Cегодня в выпуске: авторизация в Laravel: базовые знания разделения прав пользователей - создадим простую ролевую модель, поработаем с Gates и Policies, поговорим о их концептуальных отличиях и когда что применять. Воспользуемся всеми необходимыми методами работы с авторизацией, пройдемся так сказать по основам.
    Что нам потребуется? В основе примера будем использовать админ панель из курса Laravel с нуля. Далее необходимо будет создать простую миграцию с таблицей ролей, где у нас будет просто название ролей: администратор менеджер и так далее. И связующую таблицу для связи belongs to many, админ пользователя и роли. Напомню, что такие таблицы создаются путем конкатенации названия таблиц в единственном числе в алфавитном порядке. В нашем случае это админ user нижнее подчёркивание roll.
    Далее мы создаем в админ user отношения к нашим ролям belongs to many. Кстати id здесь не нужен, times temp здесь не нужен тоже самое как и здесь два метода вот этих using и whisTimeStamps, это у нас пришло с другого урока когда мы работали с апдейтом где я рассказывал о нововведениях touch и как он работает. В нашем случае эти моменты вы можете не использовать.
    Друзья, немного теории обворовал есть два инструмента по работе с авторизацией, по работе с разделением прав: это gates и policies. Когда их стоит применять? ну скажем как и здесь в документации указано у вас есть CRUD система, есть пользователя и некоторым пользователям нужно запретить удалять записи либо редактировать, либо где-то просматривать, не важно: дать какие-либо запреты и тогда на помощь нам приходят либо gateы либо policies.
    Когда что нужно применять и что за что отвечает. То есть по сути это одно и то же, но gateы даже как указано документации это отличный способ понять основы Laravel авторизации, однако при разработке более серьезных приложений на Laravel стоит использовать политики. Но по факту можно использовать смешанный подход, если вдруг вам нужен какой-то небольшой один метод по ограничению, тогда используйте gates, если же у вас политика на всю модель, на базовые eloquent-методы: создания, обновления, удаления и так далее, то конечно же на помощь придет и будет намного лучше использовать policies (политики).
    Еще немного примеров для понимания общей картины: gates у нас даже исходя из названия скажем так ворота, у которых два состояния: либо они закрыты, либо открыты. И пропускают в эти ворота только под определенными условиями: скажем так стоит охрана на входе и проверяет, а вот политики здесь уже более цивилизованный подход: в основе те же самые gates, только правило условия входа объединены в общий устав. Давайте меньше слов перейдем к практике.
    ---------------------------------------------------------------------------------
    📹 делитесь этим видео с друзьями:
    • Роли, Права, Авторизац...
    🔔 подпишитесь на RUclips-канал: / @cutcoderu
    📼 Курс по Laravel с нуля:
    • Курс по Laravel 8 обуч...
    Роли, Права, Авторизация в Laravel. Необходимые знания для понимания Gates и Policies. Часть 1
    ---------------------------------------------------------------------------------
    🔗 наш сайт: cutcode.ru/
    📷 наш instagram: / cutcoderu 📱 Наш telegram-канал: t.me/laravel_cutcode

Комментарии • 24

  • @lightray3764
    @lightray3764 2 года назад +3

    👍🏻отличный урок

  • @eloquent2200
    @eloquent2200 2 года назад +3

    Друже, спасибо! Это пожалуй лучше объяснение о работе Gate! Успехов тебе!

    • @CutCodeRu
      @CutCodeRu  2 года назад +1

      Спасибо за такие слова!

  • @_Qristina_17__
    @_Qristina_17__ Год назад +1

    thanks

  • @dimokdimok8678
    @dimokdimok8678 2 года назад +4

    Спасибо за видео, полезно. Еще пожелание не по теме, но очень хотелось бы узнать, можете записать видео по переносу сайта с локального хостинга на реальный сервер?

    • @CutCodeRu
      @CutCodeRu  2 года назад +1

      Спасибо за просмотр! Ближайшее время такого ролика не планируется, но я сделаю пометку что вы просили

  • @yerbolkabzitov9216
    @yerbolkabzitov9216 8 месяцев назад

    🔥🔥🔥

  • @ador989
    @ador989 11 месяцев назад

    спасибо

  • @user-rz4uf7yp7b
    @user-rz4uf7yp7b 2 года назад +1

    Спасибо!!! ты крут 👏

  • @newstar8808
    @newstar8808 Год назад +1

    ⭐⭐⭐⭐⭐

  • @user-je5kg9lc1n
    @user-je5kg9lc1n 3 месяца назад

    спасибо за урок.
    есть репозитории на гитку?) Можно ссылку?

  • @dobroendless3373
    @dobroendless3373 5 месяцев назад

    спасибо за урок.
    есть репозитории на гитку?)

  • @user-ie2yo1fu6f
    @user-ie2yo1fu6f 2 года назад +2

    Спасибо за урок. А вы планируете продолжение уроков по Инерции с Vue3? По мне так очень полезная тема.

    • @CutCodeRu
      @CutCodeRu  2 года назад +1

      Спасибо за просмотр. Планирую, скоро выйдет

    • @user-ie2yo1fu6f
      @user-ie2yo1fu6f 2 года назад

      @@CutCodeRu жду)

  • @webdevro8919
    @webdevro8919 2 года назад +2

    Как ограничить доступ к полям по по ролям ? 🤔 Есть что-то для этого или нужно написать? 🤔

  • @sani4051992
    @sani4051992 Год назад

    Если бы прилагалась ссылка предыдущего ролика было бы здорово. Не смотря, что показаны миграции - нет уверенности, что таблицы и все модели построены верно, так как Gate не отрабатывают как на видео.
    Еще в репозитории из ссылки на GitHab, что ниже в комментариях - не прописаны чекбоксы.
    Так что если есть ссылка на предыдущий ролик - прикрепите.
    И да появился вопрос ... целеобразно ли было бы забить на гетеры и политики, когда есть мидлвары и гарды из курса laravel с нуля?

  • @user-zc2ws7ix6m
    @user-zc2ws7ix6m 4 месяца назад

    Зачем передать post если он не используется?

  • @sasha3852
    @sasha3852 2 года назад +2

    можно ссылку на github этого проекта?

    • @CutCodeRu
      @CutCodeRu  2 года назад +1

      github.com/CutCodeRu/laravel-beginner-level

  • @altynmagnat
    @altynmagnat 9 месяцев назад

    почему везде непонятно?

    • @CutCodeRu
      @CutCodeRu  8 месяцев назад

      что именно непонятно ?