2012-12-14 2 views
0

4 가지 역할을한다고 가정 해 봅시다 : user, agent, admin, superadmin.최소한의 권한을 확인하고 모든 상위 역할의 권한을 DRY 방식으로 허용하려면 어떻게해야합니까?

각 역할은 이후 내 앱의 모든 개체에 대한 사용 권한이 더 많습니다.

Rolify, CanCan & Devise를 사용하고 있습니다. 내가 뭔가를 활성화 할 때마다 내가하고 싶은 무엇

가있다 - 말 :

<%= link_to "Create New User", new_user_registration_path if current_user.has_role? :superadmin %> 

나는 사람이 어느 쪽 admin 또는 superadmin 경우 보여주기 위해 해당 링크에 대한 싶습니다. 나는 내가 단지 ||를 할 수있다라는 것을 알고있다. 그러나 그것은 내가 매우 current_user.has_role? :superadmin || current_user.has_role? :admin해야 할 것이기 때문에 매우 건조한 것처럼 보이지 않는다.

agent, admin & superadmin에 액세스 할 수있는 링크/자산이 있다고 상상해보십시오.

어떻게하면 DRY 방식으로 할 수 있습니까?

답변

1

권한을 확인하는 대신 역할을 확인하는 이유는 무엇입니까? 내가 아는 바에 따르면 귀하의 상황에 도움이 될 수있는 can?cannot? 방법을 지원합니다. 이

<%= link_to "Create New User", new_user_registration_path if can?(:create, User) %> 

Usefull link about this feature

+0

좋은 지적처럼 뭔가를 작성해야! 나는 이것이 내가 찾고있는 것이라고 생각한다. – marcamillion