Читаю комменты и офигиваю, как вам все понятно))) если вы такие же новички и до этого видео никогда не слышали о Gate и все поняли, то вы гении какие-то) я понял смысл Gate где и для чего используется, но реализацию чёто не допер) до тестов вообще все идеально понятно было, начиная с тестов я чёто поплыл) автор видео очень хорошо обьясняет, если прочитаешь мой коммент, можно какой-нибудь совет с тем как можно разобраться с Gate) заранее благодарю.
Полезный коммент, я постараюсь ответить. Представь, обычный пользователь заходит в админку и все редачит что хочет. Как это обезопасить? Я вроде уже говорил это в видео, но постараюсь подробнее. Сначала приходит мысль ставить условия во всех методах типа (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 метода, то это смотрится немного излишне. Но когда у тебя большое приложение, то это выход. Возможно сейчас не поймешь, но поймешь потом.
@@devpovyshev спасибо что потратил время и ответил мне на вопрос, я это всё понял и смысл понял, но пока не могу понять как реализовать, из твоего поста узнал ещё то, что Gate это альтернатива задания ролей для каждого пользователя, как ты уже сказал, наверно потому что это сложно понять для новичка, надо закрепить знания попроще и потом уже вернуться к Gate.
@@Али-т3ч привет, вставлю свои 10 копеек. До меня вообще туго доходит иногда. Практика все ставит на свои места. Иногда бывает что то не получается бьешься день два и в итоге получается -> и в этот момент приходит конкретное осознание и умение. А иногда берешь паузу неделю взглянешь свежим взглядом и все становится понятно.
Не напрягайся, любому человеку его профессия дается с трудом, пусть не гейты, так что-нибудь другое. Кто легко схватывает, у того бэкграунд скорее всего есть, который не с рождения появился.
@@devpovyshev я не хейтер от слова совсем, но когда от блогеров слышу "времени нет, но канал надо развивать, так что приходится снимать хоть что-то" это очень раздражает. Я все понимаю, но ты хотя бы не озвучивай это в ролике))
Обычно для такого вместе с запросом Auth::user() еще делается схема доступов. На бекенде надо сделать еще метод типа permissions. Где будет массив из всех доступов. К примеру у тебя есть страница товаров и страница контактов и в методе permissions делаешь массив типа так return [ 'products' => [ 'edit' => Auth::user()->can('edit-products') ], 'contacts' => ['edit' => Auth::user()->can('edit-contacts')] ] Типа такого По сути во vue надо вызвать запрос, приходит такая схема что человек может, а что нельзя, сохраняешь у себя в state. И далее в компонентах отталкиваешься от этой схемы. Ну как то-так, не знаю понятно ли объяснил
Видео очень крутые, но для новичка очень сложно повторить. Когда говорят "вот накидал", а ты повторить не можешь, а следовательно и сделать сам урок. Например страница "Посты". Как она делается, как id связать с user_id и тд. Если в уроках появляется что-то новое, нужно показывать как это делать, чтобы человек мог уловить суть и прописать вместе с тобой. Ну или хотя бы ссылки на исходники к уроку оставить, чтоб можно было понять как правильно это написать.
Спасибо, люблю такие комментарии, возможно я рассчитывал, что сначала будут просмотрены видео до этого, включая видео про php, поэтому некоторые моменты я упустил
@@devpovyshev Видео у тебя шикарные!!! Спасибо за твой труд. Очень много нового узнаю, правда не могу повторить, чтобы потом рассмотреть код и самому в нём поковыряться. Можно в таких случаях просто исходники прикреплять под видео. Мол, кто не понял, то качайте код и потом смотрите видео.
зачем у тебя видео с вебкамеры поверх кода? мы же не в клубе экстрасенсов. Предлагаю переносить вебку на левую часть экрана, там где никому не нужная для обозрения часть структуры папок и файлов
Забыл увеличить масштаб в доке Laravel. Заранее извиняюсь
Дмитрий спасибо , мне все понятно!!!
С меня лайк + подписка + колокольчик!
Очень рад, что нашел твой канал) подписался.
Читаю комменты и офигиваю, как вам все понятно))) если вы такие же новички и до этого видео никогда не слышали о Gate и все поняли, то вы гении какие-то) я понял смысл Gate где и для чего используется, но реализацию чёто не допер) до тестов вообще все идеально понятно было, начиная с тестов я чёто поплыл) автор видео очень хорошо обьясняет, если прочитаешь мой коммент, можно какой-нибудь совет с тем как можно разобраться с Gate) заранее благодарю.
Полезный коммент, я постараюсь ответить. Представь, обычный пользователь заходит в админку и все редачит что хочет. Как это обезопасить? Я вроде уже говорил это в видео, но постараюсь подробнее.
Сначала приходит мысль ставить условия во всех методах типа (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 метода, то это смотрится немного излишне. Но когда у тебя большое приложение, то это выход. Возможно сейчас не поймешь, но поймешь потом.
@@devpovyshev спасибо что потратил время и ответил мне на вопрос, я это всё понял и смысл понял, но пока не могу понять как реализовать, из твоего поста узнал ещё то, что Gate это альтернатива задания ролей для каждого пользователя, как ты уже сказал, наверно потому что это сложно понять для новичка, надо закрепить знания попроще и потом уже вернуться к Gate.
@@Али-т3ч привет, вставлю свои 10 копеек. До меня вообще туго доходит иногда. Практика все ставит на свои места. Иногда бывает что то не получается бьешься день два и в итоге получается -> и в этот момент приходит конкретное осознание и умение. А иногда берешь паузу неделю взглянешь свежим взглядом и все становится понятно.
Не напрягайся, любому человеку его профессия дается с трудом, пусть не гейты, так что-нибудь другое. Кто легко схватывает, у того бэкграунд скорее всего есть, который не с рождения появился.
то что нужно бро!
Люблю когда я главный администратор ^_^
И когда id твоего аккаунта - 1)
о супер, очень интересует
Мне очень не хотелось этого делать, но ролик запилить надо, по этому я накидал кучу говнокода.
Мне очень не хотелось этого делать, но комментарий оставить надо, по этому я накидал говнокоментарий
@@devpovyshev я не хейтер от слова совсем, но когда от блогеров слышу "времени нет, но канал надо развивать, так что приходится снимать хоть что-то" это очень раздражает. Я все понимаю, но ты хотя бы не озвучивай это в ролике))
Спасибо за видео. А как эти проверки с ролями передавать в компонент vue, а не в шаблон blade?
Обычно для такого вместе с запросом Auth::user() еще делается схема доступов. На бекенде надо сделать еще метод типа permissions. Где будет массив из всех доступов. К примеру у тебя есть страница товаров и страница контактов и в методе permissions делаешь массив типа так
return [ 'products' => [ 'edit' => Auth::user()->can('edit-products') ], 'contacts' => ['edit' => Auth::user()->can('edit-contacts')] ] Типа такого
По сути во vue надо вызвать запрос, приходит такая схема что человек может, а что нельзя, сохраняешь у себя в state. И далее в компонентах отталкиваешься от этой схемы. Ну как то-так, не знаю понятно ли объяснил
@@devpovyshev спасибо. Буду пробовать.
DDD архитектура ?
Видео очень крутые, но для новичка очень сложно повторить. Когда говорят "вот накидал", а ты повторить не можешь, а следовательно и сделать сам урок. Например страница "Посты". Как она делается, как id связать с user_id и тд. Если в уроках появляется что-то новое, нужно показывать как это делать, чтобы человек мог уловить суть и прописать вместе с тобой. Ну или хотя бы ссылки на исходники к уроку оставить, чтоб можно было понять как правильно это написать.
Спасибо, люблю такие комментарии, возможно я рассчитывал, что сначала будут просмотрены видео до этого, включая видео про php, поэтому некоторые моменты я упустил
@@devpovyshev Видео у тебя шикарные!!! Спасибо за твой труд. Очень много нового узнаю, правда не могу повторить, чтобы потом рассмотреть код и самому в нём поковыряться. Можно в таких случаях просто исходники прикреплять под видео. Мол, кто не понял, то качайте код и потом смотрите видео.
@@Сергей-о1п3р Спасибо. Я сейчас всегда даю исходники на этот случай. А тогда, я об этом не задумывался
зачем у тебя видео с вебкамеры поверх кода? мы же не в клубе экстрасенсов. Предлагаю переносить вебку на левую часть экрана, там где никому не нужная для обозрения часть структуры папок и файлов
Да, это был не удачный эксперимент, дальше этого не будет
Не понимаю, зачем в таком формате видео вебка? Смысл мне смотреть на твой фейс? Еще и на пол экрана.
DDD архитектура ?