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::CREATE, create: ActiveAdmin::Authorization::CREATE, edit: ActiveAdmin::Authorization::UPDATE, 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.
95 96 97 98 99 |
# File 'lib/active_admin/base_controller/authorization.rb', line 95 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
71 72 73 74 |
# File 'lib/active_admin/base_controller/authorization.rb', line 71 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
79 80 81 82 83 84 85 86 |
# File 'lib/active_admin/base_controller/authorization.rb', line 79 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.
52 53 54 55 56 57 58 |
# File 'lib/active_admin/base_controller/authorization.rb', line 52 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.
63 64 65 66 |
# File 'lib/active_admin/base_controller/authorization.rb', line 63 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.
36 37 38 |
# File 'lib/active_admin/base_controller/authorization.rb', line 36 def (action, subject = nil) .(action, subject) end |
#dispatch_active_admin_access_denied(exception) ⇒ Object (protected)
101 102 103 |
# File 'lib/active_admin/base_controller/authorization.rb', line 101 def dispatch_active_admin_access_denied(exception) instance_exec(self, exception, &active_admin_namespace..to_proc) end |
#redirect_backwards_or_to_root ⇒ Object (protected)
120 121 122 |
# File 'lib/active_admin/base_controller/authorization.rb', line 120 def redirect_backwards_or_to_root redirect_back fallback_location: active_admin_root end |
#rescue_active_admin_access_denied(exception) ⇒ Object (protected)
105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/active_admin/base_controller/authorization.rb', line 105 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 |