Class: ActiveAdminBasicAuthorizationAdapter

Inherits:
ActiveAdmin::AuthorizationAdapter
  • Object
show all
Defined in:
lib/active_admin_basic_authorization_adapter.rb

Instance Method Summary collapse

Instance Method Details

#authorized?(action, subject = nil) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/active_admin_basic_authorization_adapter.rb', line 6

def authorized?(action, subject = nil)
  return unless should_ask_authorization(subject)

  set_record(subject)
  set_authorization_class(subject)
  @authorization_class.new(user, @record).send(action)
rescue NameError
  begin
    ActiveAdmin::Authorizations::DefaultAuthorization.new(user, @record).send(action)
  rescue StandardError
    false
  end
end

#set_authorization_class(subject) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/active_admin_basic_authorization_adapter.rb', line 30

def set_authorization_class(subject)
  @author_class_name = if subject.is_a?(ActiveRecord::Base)
                         subject.class.name
                       else
                         subject.name.gsub(' ', '')
                       end
  @authorization_class = "ActiveAdmin::Authorizations::#{@author_class_name}Authorization".constantize
end

#set_record(subject) ⇒ Object



26
27
28
# File 'lib/active_admin_basic_authorization_adapter.rb', line 26

def set_record(subject)
  @record = subject.is_a?(ActiveRecord::Base) ? subject : nil
end

#should_ask_authorization(subject) ⇒ Object



20
21
22
23
24
# File 'lib/active_admin_basic_authorization_adapter.rb', line 20

def should_ask_authorization(subject)
  subject.is_a?(Class) ||
    subject.instance_of?(ActiveAdmin::Page) ||
    subject.is_a?(ActiveRecord::Base)
end