Tengo el siguiente código:¿Cómo agrego más de uno sobre el método a una ruta mojolicious?
$r->find('user')->via('post')->over(authenticated => 1);
Teniendo en cuenta que la ruta que pueda llegar a la ruta de usuario pasa a través de la comprobación de que es autenticado configuración utilizando Mojolicious :: Plugin :: autenticación.
Quiero agregar otro 'sobre' a esa ruta.
$r->find('user')->via('post')->over(authenticated => 1)->over(access => 1);
Sin embargo, parece anular el autenticado 'over'.
he intentado romper las rutas con nombres como:
my $auth = $r->route('/')->over(authenticated => 1)
->name('Authenticated Route');
$access = $auth->route('/user')->over(access => 1)->name('USER_ACCESS');
que no funcionaron en absoluto sin embargo. Ninguno de los "over" está siendo accedido.
Mis rutas son cosas como/usuario,/elemento, configurado con MojoX :: JSON :: RPC :: Service. Por lo tanto, no tengo cosas como/user /: id para configurar subrutas. (No estoy seguro de que importe) Todas las rutas son como/usuario, enviadas con parámetros.
Tengo una condición como:
$r->add_condition(
access => sub {
# do some stuff
},
);
que es el 'acceso' en $ r-> ruta ('/ user') -> sobre (acceso => 1);
En resumen, las rutas funcionan bien cuando se utiliza:
$r->find('user')->via('post')->over(authenticated => 1);
pero soy incapaz de agregar una segunda ruta.
Entonces, ¿qué me falta al configurar estas rutas con múltiples condiciones? ¿Es posible agregar múltiples condiciones a una sola ruta/route_name?
Me di cuenta de lo mismo cuando estaba implementando RBAC. Quería concesiones de acceso basadas en privilegios para comportarme como un árbol, lo que significaría encadenamientos. No funcionó. Supongo que es por eso que nos dieron puentes. :) – DavidO
Mi problema es que tengo la ruta en un modificador de ruta 'add_condition', como se muestra en mi código anterior. Entonces, no pude unirme a ellos. Supongo que podría mover la condición a un módulo, como una función, y usar un puente. Tal como está, lo coloqué en un gancho antes del envío. – jmcneirney