Ich habe eine kleine Phoenix-Anwendung, mit der Benutzer sich anmelden und ihr Profil einsehen können. Ich habe die folgende einfache Route benutzt:
%Vor% Aber das erlaubt jedem Benutzer, die Liste der Benutzer über die Aktion :index
zu sehen, sowie jeden Benutzer zu löschen oder zu aktualisieren.
Was ist der einfachste Weg, um den Zugriff nur auf Administratoren zu beschränken? Sollte ich vor jeder Aktion einen Check hinzufügen? Oder sollte ich eine "/admin"
Ressource erstellen, die diese Operationen behandelt? Was ist der empfohlene Weg?
Sie würden einen Stecker in UserController
verwenden. 0.4.x
hat keine Möglichkeit, s bedingt zu konditionieren, aber Sie könnten erreichen, was Sie wollen, etwa mit:
Die Änderungen, die in Kürze in 0.5
erfolgen, ermöglichen einfachere konditionelle Plugs, d. h.:
Es ist eine gute Idee, Ihre Controller für den öffentlichen / eingeschränkten Zugriff getrennt zu halten, also würde ich ein Admin.UserController
hinzufügen, wie Sie es für die eingeschränkte Funktionalität angegeben haben.
Sie könnten auch eine separate Pipeline für die authentifizierten Endpunkte definieren:
%Vor%Der Admin-Bereich ist nur ein Beispiel, es kann alles sein, was Sie wollen, aber die Pipeline-Idee bleibt konsistent.
Diese Technik hält Ihre Controller sauberer, ist aber nicht immer möglich. Es hängt von Ihren genauen Anforderungen ab.
Tags und Links elixir phoenix-framework