Pathologic
так в ево
Pathologic
то есть речь идет об уровне страницы
Pathologic
а если на уровне частей страницы, то да, придется еще раз проверять
Pathologic
миддлваре же имеет дело только с данными в запросе
Aliaksandr
Ладно, мы все равно про разные вещи. Я тебе про то, что мне надо получить заголовок какой-то левой страницы, но непонятно где проверять права. А ты мне "нахуй тебе вообще тот заголовок")))
Pathologic
оно не может знать, что ты дальше будешь делать с этими данными
Pathologic
если у тебя для получения заголовка левой страницы делается запрос, то в миддваре и проверяешь, может ли пользователь такой запрос делать
Pathologic
но если у тебя например, на странице нужно список документов вывести, то ты что, будешь на каждый документ делать http::get чтобы права проверить?
Andrey
AuthServiceProvider
Gate::define('view-adminpage', function(User $user){
if($user->role == 99){
return true;
}
});
В любом другом месте:
if (Gate::check('view-adminpage'))
В шаблоне:
@can('view-adminpage', Auth::user() )
@endcan
Pathologic
ну как вариант
Aliaksandr
Да не про это речь
Aliaksandr
Бля, че вы такие непонятливые
Andrey
Ну так непонятно)
Aliaksandr
Ну есть у меня допустим страница products.html?id=5, и я получаю для нее инфу по товару номер 5. Но блядь ввел пользователь туда не 5, а 6, а к этому товару у него нет доступа, грубо говоря, это не его товар. И это не ларовский роутинг, а обычный эвовский. Где мне блядь понять, что у него нет доступа, если доступ висит только в миддлваре, а не в вызове контроллера??
Pathologic
в миддлваре у тебя висит авторизован пользователь или нет
Pathologic
можешь там же и проверить страницу
Aliaksandr
В каком миддлваре, это обычная страница эво, где я по айди получаю что-то, как вариант
Pathologic
в ево ты можешь плагин сделать на onwebpageinit и там проверить
Pathologic
а тут ты это сделаешь в миддлваре
Pathologic
айди страницы у тебя есть, айди пользователя есть
Pathologic
если не прокатит, то сделаешь sendErrorPage, иначе выполнятся всякие getDocumentObject и prepareResponse
Andrey
Route::group(['middleware' => ['auth']], function () {
Route::get('/products/?d={id}', 'ProductsController@show')->middleware(['can:view-users']);
});
Gate::define('view-users', function ($user) {
if($user == 'xxxxx'){
return true;
}
});
Andrey
Или я совсем ничего не понял)
Aliaksandr
Я просто не хочу мочь проверять в 10 местах, я хочу в одном месте написать так, чтобы оно везде проверяло одинаково. Видимо это то, с чего я начал - отдельный класс, которым потом что в миддлваре, что в контроллере (если надо) можно проверить права
Andrey
А гейт тоже не получиться в Эво?
Pathologic
да, это уже больше похоже на правду
Aliaksandr
Это все вообще никакого отношения к задаче на эво не имеет 😀
Aliaksandr
Кстати, раз уж у нас беседа по существу, в кои то веки. А в миддлвар вообще можно прокинуть динамический параметр из роута, который вида {id}. По всякому пробовал вроде $id и т.п - не прокидывается
Aliaksandr
Может как-то хитро можно?
Pathologic
https://www.digitalocean.com/community/tutorials/get-laravel-route-parameters-in-middleware
Аляксандр
Pathologic
вот Веббер и выяснит
Аляксандр
На самом деле работает, кто-то тут расписывал как подменять параметры роутов
Aliaksandr
О, вот это мне и надо похоже, скоро и проверю
Aliaksandr
А то руками их выковыривать из реквеста как-то не солидно ))
Andrey
Ишь)
Andrey
Развились, реквесты разбирать не хотим.
Aliaksandr
Это будет фудаментальный труд, по которому первые пару лет можно будет смотреть, как и что можно сделать в пакете, а через 2 года - как и что не нужно делать в пакете 😁😁
Konstantin
Axenia
Lazar2038 (40.67) увеличил карму webber_12 (6313.33)
Konstantin
*Крик души* Теперь, чтобы поставить эво, надо иметь свой сервак на линуксе, ну зашибись )
Aliaksandr
Этакий новый сниппет if, которым сначала можно было сделать всё, а потом стало не нужно делать ничего )))
Andrey
Крик души? У меня щас 5, блять, 5 копий сайта.
Старый на Д7 на локале, новый д9 на локале. Чтобы там тестить всякие миграции контента.
Оба такие же на проде.
И один боевой. Который и надо сделать новым на Д9. Убил бы)
Andrey
Pathologic
вряд ли выйдет, потому что я не знаю, что там можно улучшать
Pathologic
так, чтобы это было заметно
Andrey
Какой-нибудь адовый вебсокет-листер=)
Konstantin
Крик души? У меня щас 5, блять, 5 копий сайта.
Старый на Д7 на локале, новый д9 на локале. Чтобы там тестить всякие миграции контента.
Оба такие же на проде.
И один боевой. Который и надо сделать новым на Д9. Убил бы)
Искал для себя какую-нибудь полезную инфу про то, как корпоративно всё развернуть, ну чтоб красиво, безопасно.
Ну типа гит, прод, какой-нибудь тестовый прод. Контейнеры, понимаешь, вся фигня. Ничё связного не нашёл, приходится по живому резать :)
Konstantin
А крик души заключается в том, что модкс и шаред хостинг больше не совместимы. Пакет Main не поставить и всё тут.
Konstantin
Ребята, как поставить пакет Main без артизана? :(
Andrey
Поставь на локале и потом залей
Aliaksandr
Andrey
Сразу придётся решить пункт с "гит-прод" =)
Andrey
Хотя с бд я так и не нашёл для себя способа. Рученьками всё...
Аляксандр
Andrey
@Lazar2038 надо насобирать бабла Димке на статью красивую про дев-прод с композером и блудницами.
Konstantin
Konstantin
Денег не заработать без этого видео.
Aliaksandr
Через пол года
Не, за полгода там еще мало кто поймёт, что там вообще сделано ))
Аляксандр
Аляксандр
У меня примерно три месяца период когда я понимаю что три месяца назад делал говно 😊
Аляксандр
Aliaksandr
Axenia
webber_12 (6313.33) увеличил карму Pathologic93 (7335.04)
Aliaksandr
ну вот, теперь все заебись. из контроллера получаю то же самое что и из роута идентичной проверкой. но могу ее и отменить, если она не нужна
Aliaksandr
А в пагинаторе можно поменять имя переменной с номером страницы на что-то более человеческое, типа обычногo page?
Pathologic
там когда пишешь paginate, то параметр можно указать
Pathologic
по умолчанию же page
Aliaksandr
Не, по умолчанию у меня какой-то длинный получается listpage чё-то там. Ладно, завтра гляну
Andrey
Гугл не помогает( Может, кто знает браузеры для iOS, у которых любое обновление страницы с очисткой кеша? Инкогнито - капец как неудобно
Александр
Andrey
На телефоне то нет кнопок)
Andrey
В хроме? На телефоне?)
Andrey
Не уточнил про телефоны, моя ошибка
Vitaliy
Sasha
Andrey
На мобилке нет инспектора, к сожалению( но даже на пк не отключает, насколько мне известно