Как добавить привилегии / роли в драгоценный камень Clearance? - PullRequest
3 голосов
/ 21 мая 2011

У меня есть базовая настройка зазора -

rails generate clearance:install

и

rails generate clearance:views

В моем admin_controller у меня есть

before_filter :authorize

Это гарантирует, что пользователь вошел в систему. Как бы я установил привилегии 'admin' для своих пользователей и убедился, что пользователь имеет привилегии, прежде чем разрешить им входить в контроллер администратора?

Есть ли лучшее решение для этого?

Спасибо!

Andrew

Ответы [ 2 ]

6 голосов
/ 14 мая 2014

У меня был тот же вопрос, но 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

не забудьте перезапустить сервер:)

2 голосов
/ 22 мая 2011
...