在RailsAdmin中,如何配置它以便它只显示与当前用户关联的记录?现在,每个' admin'登录将看到每个人的记录。
我希望admin1登录只能看到与admin1相关联的内容。 Admin1不应该看到Admin2的数据。
我没有使用Devise,Sorcery或Cancancan。所有这一切都是手动完成的。
答案 0 :(得分:0)
听起来你正在寻找这样的东西:
https://github.com/influitive/apartment
如果您想手动执行...您将希望您的控制器调用一个查询,该查询将仅过滤该用户应该有权访问的结果...所以而不是像Client.all这样的东西。 ,你会使用类似current_user.clients ....
的东西答案 1 :(得分:0)
我明白了。
在rails_admin.rb中,添加:
config.current_user_method do
user = User.find_by( id:session[ :user_id ] )
end
config.authorize_with :cancan
在ability.rb中:
class Ability
include CanCan::Ability
def initialize(user)
if user && user.admin?
can :access, :rails_admin
can :dashboard
can :manage, User, id: user.id
can :manage, Manager, user_id: user.id
can :manage, Staff, manager: { user_id: user.id }
end
end
end