我在项目的早期设置了 ActiveAdmin 并使用默认的 admin_users
认证模型。从那以后,我使用 Devise 设置了一个单独的用户模型,并意识到合并这两个表可能会更聪明,这样管理员就可以在 Activeadmin 和网站前端进行管理操作。我如何配置 ActiveAdmin 以使用用户模型,可能带有一个列来标记管理员(例如 is_admin
或事件权限级别以使管理员和版主成为管理员)?
Rails 3.1
ActiveAdmin 0.3.3
Devise 1.4.9
最佳答案
对于如何使用带有 activeadmin 的现有“用户”模型执行此操作的快速代码块,答案实际上非常简单。在应用程序 Controller 中:
class ApplicationController < ActionController::Base
def authenticate_admin_user! #use predefined method name
redirect_to '/' and return if user_signed_in? && !current_user.is_admin?
authenticate_user!
end
def current_admin_user #use predefined method name
return nil if user_signed_in? && !current_user.is_admin?
current_user
end
end
并且只需使用 Devise 已经设置的身份验证。
redirect_to
是您要发送已登录且没有管理权限的用户的位置。
关于ruby-on-rails-3 - 将 ActiveAdmin 用户与现有用户模型合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253587/