bob*_*j87 6 ruby-on-rails devise rails-admin
我使用Rails Admin和Devise来管理和用户模型.我在用户模型中添加了一列"admin"来表示其身份.在config/routes.rb中,我为RailsAdmin:Engine安装/ admin
我想只允许current_user.admin用户访问/ admin,否则,将用户重定向到主页.
如何在最干净的代码中实现这一点?
ror*_*rra 15
在您的管理控制器上:
class MyAdminController < ApplicationController
before_filter :authenticate_user!
before_filter :require_admin
end
Run Code Online (Sandbox Code Playgroud)
在您的应用程序控制器
class ApplicationController < ActionController::Base
def require_admin
unless current_user && current_user.role == 'admin'
flash[:error] = "You are not an admin"
redirect_to root_path
end
end
end
Run Code Online (Sandbox Code Playgroud)
对不起,没有注意到它是使用rails admin,你可以这样做:
# in config/initializer/rails_admin.rb
RailsAdmin.config do |config|
config.authorize_with do |controller|
unless current_user.try(:admin?)
flash[:error] = "You are not an admin"
redirect_to main_app.root_path
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6274 次 |
| 最近记录: |