【发布时间】:2014-08-07 18:53:37
【问题描述】:
我正在尝试在我的应用中为 active_admin 管理员设置权限。我想将拥有完整权限的管理员和无法在 ActiveAdmin 管理面板中编辑和销毁对象的版主分开。
ability.rb:
class Ability
include CanCan::Ability
def initialize(user)
user ||= AdminUser.new
case user.role
when 'admin'
can :manage, :all
when 'moderator'
cannot [:destroy, :edit], :all
end
end
end
admin_user.rb
ActiveAdmin.register AdminUser do
permit_params :email, :password, :password_confirmation, :role
index do
selectable_column
id_column
column :email
column :role
column :current_sign_in_at
column :sign_in_count
column :created_at
actions
end
filter :email
filter :current_sign_in_at
filter :sign_in_count
filter :created_at
form do |f|
f.inputs "Admin Details" do
f.input :email
f.input :password
f.input :password_confirmation
f.input :role, as: :radio, collection: { 'Administrator' => 'admin', 'Moderator' => 'moderator' }
end
f.actions
end
end
问题是具有版主角色的管理员仍然可以编辑和销毁对象。我错过了什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 activeadmin cancan