有什么办法可以限制某些用户只能在 rails_admin 中看到他们自己的内容?
基本上说,例如在一个地理分区内有一组童子军领袖,我希望有很多领袖,然后只允许他们看到他们创建的项目。
我是否需要为他们分配一个地理 ID,然后将其添加到设计中?
有什么办法可以限制某些用户只能在 rails_admin 中看到他们自己的内容?
基本上说,例如在一个地理分区内有一组童子军领袖,我希望有很多领袖,然后只允许他们看到他们创建的项目。
我是否需要为他们分配一个地理 ID,然后将其添加到设计中?
我通常使用CanCan来执行此操作。如果相关用户是当前用户,您可以添加检查。
rails admin (ability.rb) 的 CanCan 配置示例,有关详细示例,请参阅CanCan 上的 rails_admin wiki:
class Ability
include CanCan::Ability
def initialize(user)
if user
can :access, :rails_admin
if user.role? :employee
can :read, [Model1, Model2, Model3]
can :update, User, :id => user.id #employee can update own user details
elsif user.role? :admin
can :manage, :all
end
end
end
end
要再次检查您的用户的角色,请在您的用户模型中添加/更改以下内容
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :role
def role_enum
%w[admin employee]
end
def role?(role)
self.role == role.to_s
end