Я ярлык для регистрации REST маршруты как Mojolicious::Plugin::RESTRoutesКак получить полный маршрут с `find` в Mojolicous?
my $r = $self->routes;
$r->add_shortcut(resource => \&resource);
Также у меня есть некоторые under
маршруты для проверки уровня доступа пользователя:
my $guest = $r->under->to("auth#check_level");
my $user = $r->under->to("auth#check_level", { required_level => 100 });
my $admin = $r->under->to("auth#check_level", { required_level => 200 });
При создании ресурса:
my $uResource = $user->resource('users');
I получить следующие маршруты:
$ myapp.pl routes
/ * # under for guest
/ * # under for user
+/users * users
+/ GET "list_users"
+/create GET "create_user"
+/ POST "store_user"
+/:id GET "show_user"
+/:id/edit GET "edit_user"
+/:id PUT "update_user"
+/:id DELETE "delete_user"
/ * # under for admin
Нет, я хочу, чтобы настроить некоторые из них, чтобы ограничить доступ:
$guest->add_child($user->find('create_user'));
$admin->add_child($user->find('list_users' ));
$admin->add_child($user->find('delete_user'));
Теперь я получаю это маршруты:
$ myapp.pl routes
/ * # under for guest
+/create GET "create_user"
/ * # under for user
+/users * users
+/ POST "store_user"
+/:id GET "show_user"
+/:id/edit GET "edit_user"
+/:id PUT "update_user"
/ * # under for admin
+/ GET "list_users"
+/:id DELETE "delete_user"
Как вы можете видеть только последнюю часть маршрута перемещается из user
в guest
/admin
.
Из-за я использую здесь $user
вместо $uResource
Я ожидаю, что маршрут +/users
также соответствует:
$ myapp.pl routes
/ * # under for guest
+/users * users
+/create GET "create_user"
/ * # under for user
+/users * users
+/ POST "store_user"
+/:id GET "show_user"
+/:id/edit GET "edit_user"
+/:id PUT "update_user"
/ * # under for admin
+/users * users
+/ GET "list_users"
+/:id DELETE "delete_user"
Это точно как:
$guest->any("/users")->add_child($user->find('create_user'));
$admin->any("/users")->add_child($user->find('list_users' ));
$admin->any("/users")->add_child($user->find('delete_user'));
Есть ли способ предварять /users
автоматически?