我正在使用CanCan
。有一个用户注册页面和一个管理员命名空间,管理员管理用户。该网站的管理员部分有2种功能:“normal
”和“admin_ability
”:
namespace :admin do
resources :users
end
如何限制访问权限:
任何人都可以通过注册创建用户
用户可以自行编辑并删除
并且管理员可以使用任何用户并删除
我试图这样做,但没有找到如何做到我想要的。你的意见?
答案 0 :(得分:1)
您需要在您的能力模型中定义权限,放置在app / models中。
例如,在app / model / admin_ability.rb中:
class AdminAbility
include CanCan::Ability
def initialize(admin)
if admin
can :manage, :all
end
end
end
然后在你的app / models / user_ability.rb中(我猜你的意思是“正常”):
class UserAbility
include CanCan::Ability
def initialize(user)
if user
user ||= User.new # guest user (not logged in)
can :manage, User, :id => user.id
end
end
您可以限制允许某个角色执行的操作; :manage is all,但你可以使用:read,:show,:edit,:destroy或包含其中一些的数组。
您可以在此处找到更深入的信息:https://github.com/ryanb/cancan/wiki/defining-abilities