如何向Clearance gem添加privleges/roles?

and*_*orp 3 authentication gem ruby-on-rails clearance

我有基本的清关设置 -

rails generate clearance:install
Run Code Online (Sandbox Code Playgroud)

rails generate clearance:views
Run Code Online (Sandbox Code Playgroud)

在我的admin_controller中,我有

before_filter :authorize
Run Code Online (Sandbox Code Playgroud)

这可以确保用户已登录.如何为用户设置"admin"权限,并确保用户在允许用户进入管理控制器之前拥有权限?

有更好的解决方案吗?

谢谢!

安德鲁

Gec*_*cko 6

我有同样的问题,但cancan对我来说似乎太多了(小项目)

实际上,源代码authorize原因很简单,所以我的做法在这里:

Clearance::Authorization在初始化程序中打开模块,并在那里添加自定义方法:

# config/initializers/clearance_authorization.rb

module Clearance
  module Authorization
    extend ActiveSupport::Concern

    def authorize_admin
      unless(signed_in? && current_user.admin?)
        deny_access
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

别忘了重启服务器:)