Rails:仅限管理员维护模式

And*_*rew 9 maintenance authorization ruby-on-rails ruby-on-rails-3

我想将我的应用程序置于维护模式,但仍然可以让管理员/版主登录并使用该网站.两个原因:

  1. 我在应用程序中进行了一些更改,这些更改最适合使用应用程序内界面而不是控制台.

  2. 版主无法访问控制台,但绝对可以帮助我们完成维护任务.

你会怎么建议这样做?我一直在尝试设置一个环境变量,ADMIN_MODE并在它是真的时更改所有权限,但这看起来非常狡猾和缓慢.

我正在使用CanCan和Devise,这是值得的,但我绝对乐于接受任何建议.

谢谢!

aNo*_*ble 11

这可能是一个相当简单的解决方案:

class ApplicationController < ActionController::Base
  before_filter :check_admin_mode

  protected

  def check_admin_mode
    if ENV['ADMIN_MODE'] && controller_name != 'sessions' && !current_user.admin?
      redirect_to '/maintenance.html'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)