我对我的英语和红宝石方面的知识表示歉意:)我使用RailsAdmin制作管理面板,使用Devise进行身份验证,使用CanCanCan进行授权,因此,我在用户中有三个布尔字段:
add_column :users, :superadmin_role, :boolean, default: false
enter code hereadd_column :users, :manager_role, :boolean, default:
因此,在ability.rb中,我有以下内容:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
can :access, :dashboard # allow access to dashboard
can :access, :rails_admin # access Rails Admin for Admin-users
if user.superadmin_role?
can :manage, :all
end # role works correct
if user.manager_role?
can :read, :all
end #role works incorrect
end
end
SUPERADMIN_ROLE工作正确,允许输入RailsAdmin等,但MANAGER_ROLE不起作用--当用户尝试在仪表板中输入时,会显示一条拒绝访问的错误消息:
如何为manager_role提供对仪表板和RailsAdmin接口的访问-已经打破了整个大脑。
对于任何帮助(准备好的代码、链接@哪里阅读等等)和建设性的批评,我都会很高兴。
发布于 2017-07-18 23:28:34
cancancan2需要一个不同的RailsAdmin适配器。请看这个问题:https://github.com/CanCanCommunity/cancancan/issues/413和这个问题:admin/issues/2901。
在第一个链接中,您将找到创建适配器所需的代码。
https://stackoverflow.com/questions/45165358
复制相似问题