2014-03-19 7 views
1

authlogic/declarative 권한 부여 젬을 사용하여 사용자 역할 전환을 추가하려는 사람이 있습니까?선언적 권한 부여 사용자 전환

내 요구 사항은 사용자가 많은 역할 (예 : 작성자, 교사)을 가질 수 있으며 애플리케이션 내에서 역할을 전환 할 수 있다는 것입니다. user_roles가 사용자의 테이블로 전환 ROLE_ID 복사 및 작업 테이블

  • 에 가입하려면 다른 부울 속성 (활성)을 추가

    1. :

      나는 내가이 접근하는 방법의 두 가지 아이디어를 가지고 그

    떨어져 나는 선언적 인증 추가 정보를 읽고 년에 지어진 것으로 보인다 아무것도 볼 수 없습니다. 어떤 아이디어가

    을 감상 할 수있다
  • 답변

    0

    오늘이 문제를 다시 한번 살펴보면 그 해결 방법은 간단합니다. 중복을 피하기 위해 many-to-many user_roles 조인에 boolean 속성을 추가했다.

    id | user_id | role_id | active 
    

    role_symbols authorization_rules.rb의 DSL 지금처럼 보인다에서 후크하는 데 사용됩니다 내 사용자 모델에 방법 : 이제 사용자

    def role_symbols 
        user_roles.where(:active => true).map do |user_role| 
        user_role.role.name.underscore.to_sym 
        end 
    end 
    

    지금 조인은 다음과 같은 특성이 있습니다 role은 user_roles 테이블에서 롤이 활성화 된 자체를 설정합니다.

    사용자 전환 (사용자 모델에서) 너무 쉽게

    def self.set_active_role(user_id, role_id) 
        UserRole.where(:user_id => user_id).update_all(:active => false) 
    
        activate_role = UserRole.where(:user_id => user_id, :role_id => role_id).first 
        activate_role.update_attributes(:active => true) 
    end 
    

    는 미래

    에 사람을 도움이 될 생각
    관련 문제