gpt4 book ai didi

ruby-on-rails - 使用Devise和Rails Admin对特定路线进行身份验证

转载 作者:行者123 更新时间:2023-12-04 13:23:34 26 4
gpt4 key购买 nike

我将Rails Admin和Devise用于管理员和用户模型。我在用户模型中添加了一个列“admin”以指示其身份。

config/routes.rb中,我将/admin挂载为RailsAdmin:Engine
我只允许current_user.admin用户访问/admin,否则,将用户重定向到主页。

如何在最干净的代码中实现呢?

最佳答案

在您的管理员 Controller 上:

class MyAdminController < ApplicationController
before_filter :authenticate_user!
before_filter :require_admin
end

在您的应用程序 Controller 上:
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

抱歉,没有注意到这是与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

关于ruby-on-rails - 使用Devise和Rails Admin对特定路线进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15198677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com