Laravel Gates | Доступы, Роли, Разделение контента

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024

ความคิดเห็น • 30

  • @devpovyshev
    @devpovyshev  3 ปีที่แล้ว +4

    Забыл увеличить масштаб в доке Laravel. Заранее извиняюсь

  • @anatoliiilescu839
    @anatoliiilescu839 3 ปีที่แล้ว +1

    Дмитрий спасибо , мне все понятно!!!
    С меня лайк + подписка + колокольчик!

  • @Изилайф-д2л
    @Изилайф-д2л 3 ปีที่แล้ว

    Очень рад, что нашел твой канал) подписался.

  • @Али-т3ч
    @Али-т3ч 2 ปีที่แล้ว +1

    Читаю комменты и офигиваю, как вам все понятно))) если вы такие же новички и до этого видео никогда не слышали о Gate и все поняли, то вы гении какие-то) я понял смысл Gate где и для чего используется, но реализацию чёто не допер) до тестов вообще все идеально понятно было, начиная с тестов я чёто поплыл) автор видео очень хорошо обьясняет, если прочитаешь мой коммент, можно какой-нибудь совет с тем как можно разобраться с Gate) заранее благодарю.

    • @devpovyshev
      @devpovyshev  2 ปีที่แล้ว +3

      Полезный коммент, я постараюсь ответить. Представь, обычный пользователь заходит в админку и все редачит что хочет. Как это обезопасить? Я вроде уже говорил это в видео, но постараюсь подробнее.
      Сначала приходит мысль ставить условия во всех методах типа (Auth::user()->role_id == 1) ? true : false; и это придется лепить во везде, и если что-то поменялось, добавилась новая роль типа менеджер, который тоже может что-то редактировать, то придется залезать снова во все методы и дополнять условия и будет (Auth::user()->role_id == 1 || Auth::user()->role_id == 3). А если ты где-то пропустишь один метод? Безопасность нарушена или кому-то доступа не дал?
      Gate - некий контейнер, куда ты один раз пишешь это условие, придумываешь этому название, и грубо говоря вставляешь это название где определенное условие на роли должно выполняться и забываешь. Если ты используешь Gate, то в коробке Laravel можешь использовать can в шаблонизаторе, или у тебя spa и для API подходит Auth::user()->can() (Для новичков сложновато, но в будущем будет понятно).
      И представь, у тебя есть редактирование новостей, ты сделал Gate, указал условие, задал имя ему к примеру edit-news. Ну и прошелся по всем методам типа edit, update, потом проставил в шаблонизаторе, чтобы ссылка была видна у кого есть роль edit-news. И вдруг появилась новая роль "менеджер", и надо чтобы менеджеры могли тоже редактировать новости помимо админов. Заходишь в тот Gate, где роль edit-news и просто дополняешь условие. И во всех методах это условие автоматом подхватывает и не нужно бегать и менять везде условие.
      Возможно когда всего 2 метода, то это смотрится немного излишне. Но когда у тебя большое приложение, то это выход. Возможно сейчас не поймешь, но поймешь потом.

    • @Али-т3ч
      @Али-т3ч 2 ปีที่แล้ว

      @@devpovyshev спасибо что потратил время и ответил мне на вопрос, я это всё понял и смысл понял, но пока не могу понять как реализовать, из твоего поста узнал ещё то, что Gate это альтернатива задания ролей для каждого пользователя, как ты уже сказал, наверно потому что это сложно понять для новичка, надо закрепить знания попроще и потом уже вернуться к Gate.

    • @RusIvan2022
      @RusIvan2022 2 ปีที่แล้ว

      @@Али-т3ч привет, вставлю свои 10 копеек. До меня вообще туго доходит иногда. Практика все ставит на свои места. Иногда бывает что то не получается бьешься день два и в итоге получается -> и в этот момент приходит конкретное осознание и умение. А иногда берешь паузу неделю взглянешь свежим взглядом и все становится понятно.

    • @kuznet1941
      @kuznet1941 ปีที่แล้ว

      Не напрягайся, любому человеку его профессия дается с трудом, пусть не гейты, так что-нибудь другое. Кто легко схватывает, у того бэкграунд скорее всего есть, который не с рождения появился.

  • @user-ms5pc2vj8u
    @user-ms5pc2vj8u 3 ปีที่แล้ว

    то что нужно бро!

  • @ПавелЛипаткин-н5ч
    @ПавелЛипаткин-н5ч 3 ปีที่แล้ว

    Люблю когда я главный администратор ^_^

    • @devpovyshev
      @devpovyshev  3 ปีที่แล้ว +1

      И когда id твоего аккаунта - 1)

  • @alexeymaron7515
    @alexeymaron7515 3 ปีที่แล้ว

    о супер, очень интересует

  • @webmobiledev
    @webmobiledev 2 ปีที่แล้ว

    Мне очень не хотелось этого делать, но ролик запилить надо, по этому я накидал кучу говнокода.

    • @devpovyshev
      @devpovyshev  2 ปีที่แล้ว

      Мне очень не хотелось этого делать, но комментарий оставить надо, по этому я накидал говнокоментарий

    • @webmobiledev
      @webmobiledev 2 ปีที่แล้ว

      @@devpovyshev я не хейтер от слова совсем, но когда от блогеров слышу "времени нет, но канал надо развивать, так что приходится снимать хоть что-то" это очень раздражает. Я все понимаю, но ты хотя бы не озвучивай это в ролике))

  • @Альвар-с6р
    @Альвар-с6р 2 ปีที่แล้ว

    Спасибо за видео. А как эти проверки с ролями передавать в компонент vue, а не в шаблон blade?

    • @devpovyshev
      @devpovyshev  2 ปีที่แล้ว

      Обычно для такого вместе с запросом Auth::user() еще делается схема доступов. На бекенде надо сделать еще метод типа permissions. Где будет массив из всех доступов. К примеру у тебя есть страница товаров и страница контактов и в методе permissions делаешь массив типа так
      return [ 'products' => [ 'edit' => Auth::user()->can('edit-products') ], 'contacts' => ['edit' => Auth::user()->can('edit-contacts')] ] Типа такого
      По сути во vue надо вызвать запрос, приходит такая схема что человек может, а что нельзя, сохраняешь у себя в state. И далее в компонентах отталкиваешься от этой схемы. Ну как то-так, не знаю понятно ли объяснил

    • @Альвар-с6р
      @Альвар-с6р 2 ปีที่แล้ว

      @@devpovyshev спасибо. Буду пробовать.

  • @Abdugoffor_Qodirov
    @Abdugoffor_Qodirov 7 หลายเดือนก่อน

    DDD архитектура ?

  • @Сергей-о1п3р
    @Сергей-о1п3р ปีที่แล้ว

    Видео очень крутые, но для новичка очень сложно повторить. Когда говорят "вот накидал", а ты повторить не можешь, а следовательно и сделать сам урок. Например страница "Посты". Как она делается, как id связать с user_id и тд. Если в уроках появляется что-то новое, нужно показывать как это делать, чтобы человек мог уловить суть и прописать вместе с тобой. Ну или хотя бы ссылки на исходники к уроку оставить, чтоб можно было понять как правильно это написать.

    • @devpovyshev
      @devpovyshev  ปีที่แล้ว +1

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

    • @Сергей-о1п3р
      @Сергей-о1п3р ปีที่แล้ว

      @@devpovyshev Видео у тебя шикарные!!! Спасибо за твой труд. Очень много нового узнаю, правда не могу повторить, чтобы потом рассмотреть код и самому в нём поковыряться. Можно в таких случаях просто исходники прикреплять под видео. Мол, кто не понял, то качайте код и потом смотрите видео.

    • @devpovyshev
      @devpovyshev  ปีที่แล้ว +1

      @@Сергей-о1п3р Спасибо. Я сейчас всегда даю исходники на этот случай. А тогда, я об этом не задумывался

  • @pochtaufa
    @pochtaufa 2 ปีที่แล้ว

    зачем у тебя видео с вебкамеры поверх кода? мы же не в клубе экстрасенсов. Предлагаю переносить вебку на левую часть экрана, там где никому не нужная для обозрения часть структуры папок и файлов

    • @devpovyshev
      @devpovyshev  2 ปีที่แล้ว +2

      Да, это был не удачный эксперимент, дальше этого не будет

  • @taras_vulva
    @taras_vulva ปีที่แล้ว

    Не понимаю, зачем в таком формате видео вебка? Смысл мне смотреть на твой фейс? Еще и на пол экрана.

  • @Abdugoffor_Qodirov
    @Abdugoffor_Qodirov 7 หลายเดือนก่อน

    DDD архитектура ?