Jas*_*nis 19 ruby-on-rails activeadmin
我希望只有属性is_admin
设置为true的用户才能访问我的活动管理员后端
我该怎么做?
"普通"用户应该只能登录该站点,而不能登录到活动管理员.
alo*_*ony 40
在config/initializers/active_admin.rb
你有这样的配置:
config.authentication_method = :authenticate_admin_user!
Run Code Online (Sandbox Code Playgroud)
所以如果你创建一个名为authenticate_admin_user的方法!在ApplicationController中,ActiveAdmin将检查用户是否可以转到管理页面.像这样:
# restrict access to admin module for non-admin users
def authenticate_admin_user!
raise SecurityError unless current_user.try(:admin?)
end
Run Code Online (Sandbox Code Playgroud)
并在ApplicationController中从该异常中解救(或者您实际上可以在authenticate_admin_user!
方法内重定向)
rescue_from SecurityError do |exception|
redirect_to root_url
end
Run Code Online (Sandbox Code Playgroud)
还有一件小事,如果你没有admin_users,那么改变这一行会很好config/initializers/active_admin.rb
:
config.current_user_method = :current_user
Run Code Online (Sandbox Code Playgroud)
并且通过设计,您可能希望为admin/non-admin用户设置不同的默认路径,因此您可以after_sign_in_path_for
在控制器中定义方法
# path for redirection after user sign_in, depending on user role
def after_sign_in_path_for(user)
user.admin? ? admin_dashboard_path : root_path
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9245 次 |
最近记录: |