Module: Decidim::ActionAuthorization
- Extended by:
- ActiveSupport::Concern
- Included in:
- Features::BaseController
- Defined in:
- app/controllers/concerns/decidim/action_authorization.rb
Defined Under Namespace
Classes: Unauthorized
Instance Method Summary collapse
- #_action_authorizer(action_name) ⇒ Object
-
#action_authorization(action_name) ⇒ Object
Public: Returns the authorization object for an authorization.
-
#authorize_action!(action_name, redirect_url: nil) ⇒ Object
Public: Authorizes an action of a feature given an action name.
-
#authorize_action_path(action_name, redirect_url: nil) ⇒ Object
Public: Returns the authorization path for a failed authorization with the populated redirect url.
Instance Method Details
#_action_authorizer(action_name) ⇒ Object
51 52 53 |
# File 'app/controllers/concerns/decidim/action_authorization.rb', line 51 def (action_name) ::Decidim::ActionAuthorizer.new(current_user, current_feature, action_name) end |
#action_authorization(action_name) ⇒ Object
Public: Returns the authorization object for an authorization.
action_name - The action to authorize against.
Returns an ActionAuthorizer::AuthorizationStatus
32 33 34 35 36 |
# File 'app/controllers/concerns/decidim/action_authorization.rb', line 32 def (action_name) ||= {} [action_name] = (action_name). end |
#authorize_action!(action_name, redirect_url: nil) ⇒ Object
Public: Authorizes an action of a feature given an action name.
action_name - The action name to authorize. Actions are set up on the
feature's permissions panel.
redirect_url - Url to be redirected to when the authorization is finished.
18 19 20 21 22 23 24 25 |
# File 'app/controllers/concerns/decidim/action_authorization.rb', line 18 def (action_name, redirect_url: nil) status = (action_name) return if status.ok? raise if status.code == :invalid redirect_to (action_name, redirect_url: redirect_url) end |
#authorize_action_path(action_name, redirect_url: nil) ⇒ Object
Public: Returns the authorization path for a failed authorization with the populated redirect url.
action_name - The action name to authorize against. redirect_url - The url to redirect to when finished.
Returns a String.
45 46 47 48 49 |
# File 'app/controllers/concerns/decidim/action_authorization.rb', line 45 def (action_name, redirect_url: nil) redirect_url ||= request.path (action_name).current_path(redirect_url: redirect_url) end |