2013-11-14 56 views
0

我是RoR的新手,正在使用CanCan進行授權。我想知道如果我必須明確用戶可能擁有的每一種能力。CanCan權限 - 他們必須明確嗎?

我可能不夠清楚,所以我會發布一些代碼來幫助說明我的問題。

if user.is_admin? 
    can :manage, all 
end 

if user.is_director? 
    can :update, Camp 
end 

在這種情況下,導演是否只能更新一個陣營?或者我必須指出他/她明確無法做到的事情?

在此先感謝。

回答

0

如果我沒記錯的話,你實現CanCan的時候你必須明確,只要你在匹配的控制器中調用authorize_resource(或load_and_authorize_resource)即可。

所以是的(如果您撥打CampController中的授權方法之一)。

(此外,導演角色不應該與管理員角色重疊;)如果這樣做,它只是獲得所有權限。而且是不是:all?)

+0

是的它是:所有。我仍然習慣於語法;)感謝您的幫助,但我通過在控制器和視圖層中控制訪問權限來排序所有內容。 – Ryan

0

如果添加check_authorizationApplicationController,那麼,它會默認被鎖定了所有的控制器動作,除非skip_authorization_check明確覆蓋。

請參閱此GitHub圍繞此問題的討論。

相關問題