J'ai une application rails et je veux gérer l'accès à l'application de manière contrôlée. L'utilisateur client aurait accès à certaines vues uniquement dans l'application, tandis que l'administrateur peut accéder à n'importe quelle page. À l'avenir, je pourrais également ajouter quelques semi-administrateurs qui pourraient avoir accès à un sous-ensemble de pages auxquelles l'administrateur aurait eu accès. J'ai déjà une authentification de connexion mais je veux une meilleure solution pour contrôler l'accès des utilisateurs à certaines pages de mon application.Accès contrôlé et routage
Répondre
Il semble que vous avez les bases de l'authentification vers le bas, mais juste besoin d'un basé sur les rôles solution d'autorisation. Vous pouvez jeter un oeil à CanCan, cela fonctionne bien avec la plupart des paquets d'authentification. Il y a un bon railscast sur comment l'utiliser.
Espérons que cela aide.
utilisation before_filter
users_controller.rb
class UsersController < ApplicationController
before_filter :login_required, :except=>[:show]
before_filter :required_admin, :only=>[:all_users]
def show
end
def all_users
end
def edit
end
end
application_controller.rb
class ApplicationController < ActionController::Base
def current_user
session[:user]
end
def login_required
if current_user
return true
else
flash[:notice]='Please login to continue.'
redirect_to :controller => "logins"
end
end
def required_admin
if current_user && current_user.is_admin? #check here if current user is admin or not
return true
else
flash[:notice]='Please login as admin.'
redirect_to :controller => "logins"
end
end
end
méthode Show peut voir personne avec & sans connexion
seul administrateur peut voir all_users méthode
méthode d'édition peut voir tout utilisateur de connexion (c.-à-utilisateur admin)
J'ai déjà fait ça. Ce que je veux dire, c'est que j'ai un acheteur, un client et un modèle de fournisseur. Mon administrateur peut voir changer tous les modèles à travers des vues créées par des échafaudages. Mon semi-administrateur ne peut accéder qu'au modèle client. Mon client ne peut voir que son modèle d'utilisateur et les données que je lui montre. –
Les vues ne sont pas personnalisées avec les modèles, cela dépend donc de la façon dont vous présentez votre application. Si vous le souhaitez, vous pouvez, par exemple, avoir une vue 'show' dans laquelle se trouve une branche conditionnelle qui redirige vers' show_admin' ou 'show_user' en fonction de qui l'affiche. – Karl
- 1. Extensions d'URL personnalisées/Routage sans accès IIS
- 2. Hyperlien contrôlé hijaxing
- 3. Comment puis-je extraire les personnes ayant signé une section à accès contrôlé dans Lotus Notes?
- 4. ASP.NET MVC2 et routage
- 5. Url codage et routage?
- 6. Routage et appartenance
- 7. Routage et ressources imbriquées
- 8. Hébergement et routage ASP.NET
- 9. Est-ce que Crystal Reports peut être contrôlé via un accès url?
- 10. Accès à la table de routage via SNMP
- 11. Forcer un appel non contrôlé
- 12. ASP.NET Routage et expressions régulières
- 13. Routage et structure d'ASP.NET MVC
- 14. Rails, routage RESTful et pluralisation
- 15. Routage MVC ASP.Net et PreRequestHandler
- 16. routage Rails aliasing et namespaces
- 17. structure de routage et d'URL
- 18. Modèle général Django contrôlé par quelles variables?
- 19. Environnement de production contrôlé par la version
- 20. serveur contrôlé ou diaporama Web synchronisé?
- 21. Contrôlé fonte statique sur une référence
- 22. Quand un callback Cocoa est-il contrôlé?
- 23. IKImageView zoom contrôlé par un NSSlider
- 24. Tempvars et accès 2003
- 25. rails Routage routage - index unique avec emboîtement
- 26. Routage en PHP vs routage en Rails
- 27. Emplacements de vue ASP.NET MVC et routage
- 28. Ruby on Rails 3 et le routage
- 29. sous-domaine et routage de domaine
- 30. Didacticiels et exemples avancés de routage ASP
alors qu'est-ce que vous demandez? –
@Mark - Je sais comment utiliser before_login et utiliser l'authentification de connexion de base. Ce que je veux faire est: Disons que j'ai un acheteur, un client et un modèle de fournisseur. Mon administrateur peut voir changer tous les modèles à travers des vues créées par des échafaudages. Mon semi-administrateur ne peut accéder qu'au modèle client. Mon client ne peut voir que son modèle d'utilisateur et les données que je lui montre. –