Module: ActiveAdmin::BaseController::Authorization
- Extended by:
- ActiveSupport::Concern
- Included in:
- ActiveAdmin::BaseController
- Defined in:
- lib/active_admin/base_controller/authorization.rb
Constant Summary collapse
- ACTIONS_DICTIONARY =
{ index: ActiveAdmin::Authorization::READ, show: ActiveAdmin::Authorization::READ, new: ActiveAdmin::Authorization::NEW, create: ActiveAdmin::Authorization::CREATE, edit: ActiveAdmin::Authorization::EDIT, update: ActiveAdmin::Authorization::UPDATE, destroy: ActiveAdmin::Authorization::DESTROY }
Instance Method Summary collapse
-
#action_to_permission(action) ⇒ Symbol
protected
Converts a controller action into one of the correct Active Admin authorization names.
-
#active_admin_authorization ⇒ ActiveAdmin::AuthorizationAdapter
protected
Retrieve or instantiate the authorization instance for this resource.
-
#active_admin_authorization_adapter ⇒ Class
protected
Returns the class to be used as the authorization adapter.
-
#authorize!(action, subject = nil) ⇒ Boolean
protected
Authorize the action and subject.
-
#authorize_resource!(resource) ⇒ Object
protected
Performs authorization on the resource using the current controller action as the permission action.
-
#authorized?(action, subject = nil) ⇒ Boolean
protected
Authorize the action and subject.
- #dispatch_active_admin_access_denied(exception) ⇒ Object protected
- #redirect_backwards_or_to_root ⇒ Object protected
- #rescue_active_admin_access_denied(exception) ⇒ Object protected
Instance Method Details
#action_to_permission(action) ⇒ Symbol (protected)
Converts a controller action into one of the correct Active Admin authorization names. Uses the ACTIONS_DICTIONARY to convert the action name to permission.
98 99 100 101 102 |
# File 'lib/active_admin/base_controller/authorization.rb', line 98 def (action) if action && action = action.to_sym Authorization::ACTIONS_DICTIONARY[action] || action end end |
#active_admin_authorization ⇒ ActiveAdmin::AuthorizationAdapter (protected)
Retrieve or instantiate the authorization instance for this resource
74 75 76 77 |
# File 'lib/active_admin/base_controller/authorization.rb', line 74 def @active_admin_authorization ||= .new active_admin_config, current_active_admin_user end |
#active_admin_authorization_adapter ⇒ Class (protected)
Returns the class to be used as the authorization adapter
82 83 84 85 86 87 88 89 |
# File 'lib/active_admin/base_controller/authorization.rb', line 82 def adapter = active_admin_namespace. if adapter.is_a? String adapter.constantize else adapter end end |
#authorize!(action, subject = nil) ⇒ Boolean (protected)
Authorize the action and subject. Available in the controller as well as all the views. If the action is not allowd, it raises an ActiveAdmin::AccessDenied exception.
54 55 56 57 58 59 60 61 |
# File 'lib/active_admin/base_controller/authorization.rb', line 54 def (action, subject = nil) unless action, subject raise ActiveAdmin::AccessDenied.new( current_active_admin_user, action, subject) end end |
#authorize_resource!(resource) ⇒ Object (protected)
Performs authorization on the resource using the current controller action as the permission action.
66 67 68 69 |
# File 'lib/active_admin/base_controller/authorization.rb', line 66 def (resource) = (params[:action]) , resource end |
#authorized?(action, subject = nil) ⇒ Boolean (protected)
Authorize the action and subject. Available in the controller as well as all the views.
38 39 40 |
# File 'lib/active_admin/base_controller/authorization.rb', line 38 def (action, subject = nil) .(action, subject) end |
#dispatch_active_admin_access_denied(exception) ⇒ Object (protected)
104 105 106 |
# File 'lib/active_admin/base_controller/authorization.rb', line 104 def dispatch_active_admin_access_denied(exception) instance_exec(self, exception, &active_admin_namespace..to_proc) end |
#redirect_backwards_or_to_root ⇒ Object (protected)
123 124 125 |
# File 'lib/active_admin/base_controller/authorization.rb', line 123 def redirect_backwards_or_to_root redirect_back fallback_location: active_admin_root end |
#rescue_active_admin_access_denied(exception) ⇒ Object (protected)
108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/active_admin/base_controller/authorization.rb', line 108 def rescue_active_admin_access_denied(exception) error = exception. respond_to do |format| format.html do flash[:error] = error redirect_backwards_or_to_root end format.csv { render body: error, status: :unauthorized } format.json { render json: { error: error }, status: :unauthorized } format.xml { render xml: "<error>#{error}</error>", status: :unauthorized } end end |