2011-12-21 5 views
0

내 앱의 사용자가 관리 사용자가 아닌 경우 소유권이있는 필드 만 볼 수있게하고 싶습니다.레일즈 관리자와 함께 CanCan을 사용하여 소유권을 확인하는 방법

can :see 또는 그와 유사한 것을 필드 단위로 설정하여 "볼 수있는"필드 만 표시하거나 대신 can :oversee이라는 능력이 있으면 모든 것을 볼 수 있다고 명시해야합니다. .

rails admin에서 사용자가 admin인지 아닌지 확인하는 것이 훨씬 쉽습니다. 따라서 rails admin이 현재 사용자의 레코드 만 가져 오도록 설정하십시오.

if can?(:read, order) 
    # do something! 
end 

if can?(:email, order) 
    # do something! 
end 

을하지만 단지 개체 수준에서 가시성을 참조 것 : 캉캉으로

답변

3

,이 같은 개체에 대한 사용 권한을 확인할 수 있습니다.

RailsAdmin에서 here으로 설명 된 블록을 전달하여 필드 표시 여부를 설정할 수 있습니다. 예를 들어

:

RailsAdmin.config do |config| 
    config.model Order do 
    list do 
     field :name 
     field :profit do 
     visible do 
      current_user.roles.include?(:admin) 
     end 
     end 
    end 
    end 
end 
관련 문제