5

Victor Martin과 거의 동일한 문제가 발생했습니다 (여기에서 질문하는 내용을 볼 수 있습니다).선언적 승인 및 if_attribute가 작동하지 않음

조건부 사용과 관련이없는 모든 것에 대해 선언적 권한을 부여 받았습니다. 예 :

has_permission_on :users, :to => [:edit, :update, :destroy] do 
if_attribute :user => is { current_user } 
end 

선언적 승인과 관련된 일반적인 함정이 있습니까? authlogic을 사용하고 있는데 응용 프로그램 컨트롤러의 'current_user'메소드가 문제의 원인 일 수 있습니다.

before_filter :set_current_user 
protected 
def set_current_user 
    Authorization.current_user = current_user 
end 

를 그런 규칙은 다음과 같이 보일 것이다 :

has_permission_on :users, :to => [:edit, :update, :destroy] do 
    if_attribute :user => is { user } 
end 

를 지금까지 내가 declarative_authorization하지 않는 알고 있지 않은 사용자는

+0

에 대한

자세한 내용은 - 내가보기 엔 그것이 – digitalWestie

답변

4

컨트롤러에서 "filter_access_to"를 사용하는 경우 ": attribute_check => true"인지 확인해야합니다. 그것없이 조건부 "if_attribute"선언은 아무 것도하지 않습니다. 내가 authorizaiton에 대한 캉캉를 사용하여 결국이 in the Declarative Authorization docs

1

당신은 당신의와 ApplicationController이를 추가해야 crontroller의 메소드를 호출하고 예제에서 current_user이 무엇을 의미하는지 알지 못하지만 authorization_rules.rb 파일에서 사용할 수있는 user이라는 Authorization.current_user 인스턴스를 제공합니다.

+0

OK, 내가 대신 'CURRENT_USER'의 '사용자'를 사용하여 시도하는 것이 좋습니다. 지금 나는 거의 모든 것을 가지고 있지만 여전히 효과가 없다는 것을 알게되었습니다. :/ – digitalWestie

+0

오류가 발생 했습니까? 아니면 "허가가 거부되었습니다"입니까? 당신의 기록은 뭐니? –