Mon application a une partie utilisateur et/une partie admin. Il y a 2 modèles Compte (comme un client) et Admin, et je devrais authentifier le compte et l'admin séparément. Les administrateurs ne doivent pas accéder à la partie du compte et les comptes ne doivent pas accéder à la zone d'administration. Y at-il une solution pour moi ou je devrais écrire 2 applications différentes pour les utilisateurs et les administrateurs, puis attendre Merb 1.1 et les monter d'une manière ou d'une autre dans une application? Des idées?Question d'authentification Merb
Répondre
votre question me semble très intéressante, j'ai eu les mêmes problèmes au début. Donc, je peux suggérer différentes solutions parmi lesquelles vous pouvez en choisir une dépend de la structure de votre application.
Si tous vos utilisateurs appartient à une classe, mais a champ spécial (comme UserClass = (: client,: modérateur,: admin, etc.) ont `ll minimum de modifications d'application, il suffit de cocher la classe utilisateur Paramètre dans vos contrôleurs/vues Je pense que ce n'est pas une bonne idée pour vous
Meilleure pratique - pour utiliser les stratégies d'authentification Merb Il s'agit d'un mécanisme très flexible, vous pouvez donc sélectionner les classes avec lesquelles vous voulez travailler
Par exemple, vous aurez 2 stratégies de base: C lientAuth, AdminAuth. Les deux utiliseront des classes d'utilisateurs différentes (Client, Admin). Tout ce que vous avez besoin - créer le fichier de stratégie personnalisée, puis connectez-le à votre routeur comme ceci:
authenticate(ClientAuth) do
match('/profile').to(:controller => ProfileController)
end
authenticate(AdminAuth) do
match('/admin').to(:controller => AdminController)
end
Ou, vous pouvez utiliser l'authentification dans le contrôleur:
class AdminController
:before ensure_authenticated, :with => [AdminAuth]
def index
... your stuff ...
end
end
, vous aussi pouvez même utiliser un seul contrôleur pour l'authentification pour les deux classes en utilisant les deux stratégies comme ceci:
class AdminController
:before ensure_authenticated, :with => [AdminAuth, ClientAuth]
end
Tout simplement parce que vous avez défini les différentes classes d'authentification (Admin, client) pour vos stratégies que vous wi seront en mesure d'obtenir des informations à ce sujet: session.user.class (il est une méthode rubis de base pour connaître le nom de la classe d'objet)
Voici quelques liens utiles:
- 1. Question d'authentification Merb, variable _message
- 2. Contrôleurs Admin dans Merb
- 3. Caching mieux pratiqué dans Merb
- 4. Contrôle des erreurs d'authentification Merb
- 5. agit comme taggable avec merb?
- 6. PubSubHubbub pour un blog en Ruby (Merb)
- 7. Générateur Ruby Atom à utiliser avec Merb
- 8. Tester des téléchargements de fichiers authentifiés dans merb
- 9. Comment tester la requête AJAX avec Merb et Webrat?
- 10. Le meilleur moyen de lister les dépendances Merb :: Slices?
- 11. Ajout d'un flash après authentification avec merb-auth
- 12. Matlab sous-question question
- 13. question
- 14. question croisée Question - (somme & moy)
- 15. JQuery: Ajax. Question de la question
- 16. Remplacement sans tête du sélénium et du watir pour l'essai des rails et des applications Merb
- 17. Nettoyage de mes contrôleurs, puis-je avoir des actions de style Merb aujourd'hui?
- 18. La documentation de Merb est-elle aussi pauvre qu'elle en a l'air?
- 19. refactoring question
- 20. jQuery question
- 21. Lambda question
- 22. JButton question
- 23. mémoire Question
- 24. PictureBox question
- 25. IDispatchOperationSelector question
- 26. sox question
- 27. AutoPostBack Question
- 28. question stringstream
- 29. question IsClientScriptIncludeRegistered
- 30. bouton question