2011-09-28 5 views
1

에 가입 중첩 내가 가지고있는 테이블과 (관련 모델과 테이블)레일 조건

  • roles_users 가입 다음 ROLE_ID, permission_id, OBJECT_ID, OBJECT_TYPE

: USER_ID를,

  • permissions_roles을 ROLE_ID 특정 사용자, 권한 및 개체에 대해 사용자가 해당 역할을 통해 개체에 대한 관련 권한을 갖고 있는지 확인하고 싶습니다.

    관련 검색어에 대한 도움을 주시면 감사하겠습니다.

  • 답변

    0

    이 시도 : 다음과 같이

    class User 
    
        def has_permission?(permission, object) 
        RoleUser.joins(:permission_roles).where(
         :roles_users  => { 
         :user_id  => id 
         }, 
         :permission_roles => { 
         :permission_id => permission, 
         :object_type => object.class.base_class.name, 
         :object_id  => object 
         } 
        ).exists? 
        end 
    end 
    

    는 이제 권한을 확인할 수 있습니다

    current_user.has_permission?(@edit_permission, @blog_post) 
    
    1

    당신이 사용자와 개체를 감안할 때, 이것에 대해 어떻게 :

    allowed = user.roles.joins(:permissions => :object).where(:object => { :id => object.id }).any?