Devise before_filter authentifier_admin?
J'ai ajouté un rôle d'administrateur à Concevoir par l'ajout d'un admin attribut.
Pourriez-vous me dire si c'est la bonne façon de créer un before_filter exige un utilisateur admin être signé:
dans n'importe quel contrôleur:
before_filter :authenticate_admin!
dans application_controller
protected
unless current_user.try(:admin?)
redirect_to :new_user_session_path
end
source d'informationauteur Martin Petrov
Vous devez vous connecter pour publier un commentaire.
Aller avec cette approche
Il permet également à tout les clients sont obligés de s'inscrire en tant que bien. Vous n'avez pas besoin de modifier la valeur par défaut de la méthode pour forcer l'authentification pour accéder à l'instance de la méthode
admin?
Mon approche est de créer un attribut role et vérifier sa chaîne de valeur par rapport à un ensemble de prévu rôles - c'est beaucoup plus souple de cette façon plutôt que d'avoir à créer de nombreux attributs booléens.
Regardant la réponse ci-dessus (par Michael De Silva), j'ai eu un problème avec le code qu'il a utilisés. Il a écrit le chemin comme un symbole (
:new_user_session_path
), mais j'en avais besoin pour être un chemin ordinaire helper (new_user_session_path
). Jusqu'à ce que j'ai changé de cela, j'ai été faire des erreurs, en disant que le chemin était invalide. (Je suis en cours d'exécution Rails 5.)Espérant que cela sera utile à d'autres!