Я хочу создать несколько маршрутов с ограничениями по ролям. Что-то вроде этого:Как я могу получить данные по умолчанию из маршрута в mojolicious?
my $auth = $app->routes->under->to('auth#check');
$auth->get('/list')->to('some#list')->name('list');
$auth->get('/add')->to('some#add', roles => ['user', 'admin'])->name('add');
У меня нет никаких проблем с проверкой roles
в after_dispatch
крючке. Но я не могу получить доступ к этим данным, когда я пытаюсь создать ссылки для этих маршрутов.
Например, я guest
по маршруту /list
и хочу создать меню с доступными ссылками. Итак, я должен проверить roles
с маршрута /add
, чтобы решить показать эту ссылку или нет.
На данный момент я нашел только один способ получить данные по умолчанию от маршрута с именем:
app->routes->lookup('add')->pattern->defaults->{roles}
И это выглядит как взломать. Как я могу сделать это правильно?
Вы уверены, что используете стандартный, а не текущий? –