ruby-on-rails-3 - 将 ActiveAdmin 用户与现有用户模型合并

标签 ruby-on-rails-3 authentication model devise activeadmin

我在项目的早期设置了 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/

相关文章:

ruby-on-rails - 如何跳过 has_secure_password 验证

ruby-on-rails - 对于我的一个模型,我有几个应该自动填充的实例。我该如何处理?

python - 如何在 Django 模型中存储列表

ruby-on-rails-3 - ROR - 为 DB ID 生成字母数字字符串

ruby-on-rails - config.action_controller.asset_path_template -- 未定义的方法?

ruby-on-rails - 根据 rails 3 中的范围计算版税

javascript - Angular : handling new tab or new browser window 中的身份验证

c# - OpenID 和普通登录都在同一个 View 上吗?

Laravel Auth::user() 使用守卫登录后返回 null ('admin' )

c - scsi查询命令获取序列号和型号信息