Ich habe den folgenden Code:Wie füge ich mehr als eine Übermethode zu einer mojolicious Route hinzu?
$r->find('user')->via('post')->over(authenticated => 1);
diesen Weg Da ich an den Benutzer Weg bekommen durch den authentifizierten Check vorbei , dass das Setup Mojolicious Verwendung ist :: Plugin :: Authentifizierung.
Ich möchte ein weiteres "over" zu dieser Route hinzufügen.
$r->find('user')->via('post')->over(authenticated => 1)->over(access => 1);
Das scheint jedoch "über" authentifiziert überschreiben.
Ich habe versucht, die Routen mit Namen wie Zerschlagung:
my $auth = $r->route('/')->over(authenticated => 1)
->name('Authenticated Route');
$access = $auth->route('/user')->over(access => 1)->name('USER_ACCESS');
Das ist nicht überhaupt obwohl nicht funktioniert. Keines der "Over" wird erreicht.
Meine Routen sind Dinge wie/user,/item, eingerichtet mit MojoX :: JSON :: RPC :: Service. So, ich habe keine Dinge wie/user /: ID, um Unterrouten einzurichten. (Nicht sicher, dass das wichtig ist) Alle Routen sind wie/Benutzer, mit Parametern gesendet.
Ich habe eine Bedingung wie bekommt:
$r->add_condition(
access => sub {
# do some stuff
},
);
, dass der 'Zugang' in $ r-> Route ('/ user') ist -> über (access => 1);
Kurz gesagt, die Routen gut funktionieren bei der Verwendung von:
$r->find('user')->via('post')->over(authenticated => 1);
Aber ich bin nicht in der Lage eine zweite Route hinzufügen.
Also, was fehlt mir bei der Einrichtung dieser Routen mit mehreren Bedingungen? Können mehrere Bedingungen zu einer einzelnen Route/route_name hinzugefügt werden?
Ich habe die gleiche Sache bemerkt, wo ich RBAC implementierte. Ich wollte Zugriffsberechtigungen basierend auf Privilegien, um sich wie ein Baum zu verhalten, was Verkettungen bedeuten würde. Hat nicht geklappt. Ich denke, deshalb haben sie uns Brücken gegeben. :) – DavidO
Mein Problem war, dass ich die Route in einem 'add_condition' Routenmodifikator habe, wie in meinem Code oben gezeigt. Also konnte ich nicht mit ihnen reden. Ich denke, ich könnte die Bedingung als Funktion in ein Modul verschieben und eine Brücke benutzen. So wie es ist, habe ich es in einen before_dispatch hook gesetzt. – jmcneirney