0

При использовании аутентификации HTTP Basic Basic Authlogic UserSession.find возвращает nil, поскольку сеанс не устанавливается. В результате declarative_authorization, которая ссылается на обычный метод current_user (как показано ниже), не может найти текущего пользователя.Authlogic HTTP Basic UserSession.find возвращает nil, означает, что declarative_authorization не может получить current_user

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 

Можно создать сеанс, когда пользователь через HTTP Авт базовый (несмотря на то, что сессия будет только в прошлом, пока запрос не закрывается) или есть лучший способ сделать это?

+0

Перейдя к разработке, у меня точно такая же проблема. Используя HTTP basic auth, current_user is nil –

ответ

0

После вертел Завещания, теперь все, кажется, работает, до тех пор, когда с помощью ActiveResource я сайта = "HTTP: // пользователь: пароль @ домен", а не:

site = "http://domain" 
username = "user" 
password = "password" 

Который не работает. Я не нашел времени, чтобы понять, почему.

0

Натолкнуться на это. У меня точно такая же проблема (с теми же драгоценными камнями - authlogic + declarative_auth).

Найдено решение для меня, все мне нужно было скопировать следующий код в конце authorization_rules.rb

privileges do 
    privilege :manage, :includes => [:create, :read, :update, :delete] 
    privilege :read, :includes => [:index, :show] 
    privilege :create, :includes => :new 
    privilege :update, :includes => :edit 
    privilege :delete, :includes => :destroy 
end 
+0

Я не думаю, что это та же проблема. Моя правда не имела никакого отношения к авторизации, но была authlogic, не возвращающая объект current_user. –

 Смежные вопросы

  • Нет связанных вопросов^_^