2010-11-01 3 views
2

Le plugin authlogic officiel fonctionnait parfaitement sur Rails 2.3.5. J'ai converti mon application à Rails 3.0.1 et maintenant j'ai quelques problèmes.Impossible de définir un utilisateur_utilisateur avec Authlogic on Rails 3.0.1

J'ai inclus la pierre précieuse authlogic suivante dans mon Gemfile gem 'authlogic', :git => 'git://github.com/odorcicd/authlogic.git', :branch => 'rails3'

Lorsqu'un utilisateur se connecte, la session est enregistrée. Lors de l'appel de cette session utilisateur, la valeur renvoyée est nulle. UserSession.find returns a nil value donc je ne suis pas en mesure d'assigner un current_user.

sessions_controller.rb

def create 
    @user_session = UserSession.new(params[:user_session]) 
    if @user_session.save! 
    flash[:notice] = 'Login successful' 
    redirect_to root_url 
    else 
    render :action => 'new' 
end 
    end 

application_controller.rb

helper_method :current_user, :current_user_session 

private 

    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 

Lorsqu'un utilisateur se connecte, l'avis flash est retourné avec 'Login sucessful' mais le current_user n'est pas réglé. J'ai également essayé ceci avec le plugin d'authlogic officiel et rien n'a changé. Est-ce que j'ai râté quelque chose?

Merci!

Tim

Répondre

9

J'ai eu ce problème exact. Pour une raison quelconque, il interférait avec l'authentification de base - pour la réparer, j'ai mis allow_http_basic_auth à false.

class UserSession < Authlogic::Session::Base 

    allow_http_basic_auth false 

end 
+0

Wow, cela fonctionne comme un charme! J'ai essayé de comprendre cela toute la journée. Je voudrais pouvoir t'avoir plus de chance. Merci beaucoup! – Tim

+0

Oui, cela l'a résolu pour moi aussi. UserSession.find renvoyait toujours zéro. – 0x4a6f4672

+0

mon dieu! J'avais lutté avec cela toute la journée. –