2010-06-12 3 views
0

ACL9에서 액세스를 제어하는 ​​사용자 모델이 있습니다.acl9와 함께 잘 작동하지 않는 것 같아요

UsersController에 :

#ACL9 related stuff 
before_filter :load_user, :only => [:show] 
    access_control do 
    allow :owner, :of => :user, :to => [:show] 
    end 

def load_user 
    user = User.find(params[:id]) 
end 

ApplicationController에서 :

rescue_from 'Acl9::AccessDenied', :with => :access_denied 

def access_denied 
    authenticate_user! # a method from Devise 
end 

이 페이지 http://localhost:3000/users/sign_in에 기호에 대한 URL을 입력 할 문제가 없지만, 예를 들어 난에 입력 할 때이 문제가 먼저 위의 논리를 통해 페이지에 자동으로 로그인하도록 리디렉션 될 것으로 기대됩니다.

http://localhost:3000/users/1 => 무한 리디렉션 지옥. users/sign_in (으)로 이동하는 대신 users/1 (으)로 다시 리디렉션합니다.

누가 잘못 될지에 대한 의견이 있습니까?

답변

0

저는 Devise 사용자 컨트롤러에서 Acl9를 사용하지 말아야한다고 생각합니다. 귀하가 인증을받지 않았으므로 귀하는 아무런 권리가 없으며 귀하는 인증하지 않을 것입니다 : D. 당신은 사용자가 삭제 금지 할 수 있습니다, 그래서 같이해야한다 : 당신이 응용 프로그램 컨트롤러에있는 그대로를 마칠 경우

access_control :only => [:destroy] do 
     allow :admin 
end 

가 UsersController를 들어 당신이 당신의 access_control를 덮어 쓰기한다.

관련 문제