2009-11-09 2 views
0

Je viens de faire installer mon application pour travailler avec authlogic suivant this exactementaide authlogic

avant de commencer j'avais déjà créé un catalogue de produits avec des fonctionnalités de base CRUD.

Actuellement, je veux que le catalogue de produits ne soit accessible que si l'utilisateur est déjà connecté .. donc, fondamentalement, si l'utilisateur n'est pas connecté il devrait aller à la page de connexion .. s'il est, localhost: 3000 devrait l'emmener au catalogue des produits .... m vraiment confus ... Je ne sais même pas quoi faire pour se déconnecter ...

Au lieu de cela, en ce moment, être connecté et aller à localhost: 3000 me redirige à http://localhost:3000/account

aide s'il vous plaît.

J'ai aussi remarqué que si je vais à mon catalogue de produits tout en étant connecté, je reçois ce message sur f la page

« Vous devez être connecté sur pour accéder à cette page »

Répondre

2

Nacho, laissez-moi vous suggère de regarder http://railscasts.com/episodes/160-authlogic

Il devrait répondre à toutes vos questions, et plus encore.

Du haut de ma tête ...

Commencez avec la configuration de vos routes si vous avez pas déjà:

map.login 'login', :controller => 'user_sessions', :action => 'new' 

map.logout 'Quitter',: controller => 'user_sessions' ,: action => 'détruire'

Ensuite, faites cela dans votre contrôleur d'application:

before_filter :authenticate, :except => [:login, :logout, :destroy, :index, :new] 

    private #-------------------- 

    def authenticate 
    unless current_user 
     flash[:notice] = "You must be loged in first" 
     redirect_to(login_url) 
     return false 
    end 
    end 

    def current_user_session 
    return @current_user_session if defined?(@current_user_session) 
    @current_user_session = UserSession.find 
    end 

    def current_user 
    return @current_user if defined?(@current_user) 
    @current_user = current_user_session && current_user_session.record 
    end 

cette devrait vous équiper pour résoudre les problèmes mentionnés ci-dessus. Si les utilisateurs ne sont pas connectés, ils seront redirigés vers la page de connexion. De plus, pour vous déconnecter, pointez simplement sur logout_url (localhost: 3000/logout)