Module: Decidim::ActionAuthorization
- Extended by:
- ActiveSupport::Concern
- Included in:
- Features::BaseController
- Defined in:
- decidim-core/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.
-
#authorize_action_path_from_status(status, 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
68 69 70 |
# File 'decidim-core/app/controllers/concerns/decidim/action_authorization.rb', line 68 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
34 35 36 |
# File 'decidim-core/app/controllers/concerns/decidim/action_authorization.rb', line 34 def (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 26 27 |
# File 'decidim-core/app/controllers/concerns/decidim/action_authorization.rb', line 18 def (action_name, redirect_url: nil) ||= {} [action_name] = (action_name). status = [action_name] return if status.ok? raise if status.code == :invalid redirect_to (status, 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 50 51 52 |
# File 'decidim-core/app/controllers/concerns/decidim/action_authorization.rb', line 45 def (action_name, redirect_url: nil) redirect_url ||= request.path ( (action_name), redirect_url: redirect_url ) end |
#authorize_action_path_from_status(status, redirect_url: nil) ⇒ Object
Public: Returns the authorization path for a failed authorization with the populated redirect url.
status - The status after an authorization check. redirect_url - The url to redirect to when finished.
Returns a String.
61 62 63 64 65 66 |
# File 'decidim-core/app/controllers/concerns/decidim/action_authorization.rb', line 61 def (status, redirect_url: nil) decidim.( handler: status.data[:handler], redirect_url: redirect_url ) end |