Class: Decidim::Verifications::AuthorizationsController
Overview
This controller allows users to create and destroy their authorizations. It should not be necessary to expand it to add new authorization schemes.
Instance Method Summary
collapse
#available_verification_workflows
#renew
register_permissions
#store_share_token
#check_user_block_status, #check_user_not_blocked
#snippets
#disable_http_caching
#skip_store_location?
#attachment?, #default_locale?
enhance_controller, extended, included
Instance Method Details
#clear_onboarding_data ⇒ Object
100
101
102
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 100
def clear_onboarding_data
clear_onboarding_data!(current_user)
end
|
#create ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 57
def create
AuthorizeUser.call(handler, current_organization) do
on(:ok) do
flash[:notice] = t("authorizations.create.success", scope: "decidim.verifications")
redirect_to redirect_url || authorizations_path
end
on(:transferred) do |transfer|
message = t("authorizations.create.success", scope: "decidim.verifications")
if transfer.records.any?
flash[:html_safe] = true
message = <<~HTML
<p>#{CGI.escapeHTML(message)}</p>
<p>#{CGI.escapeHTML(t("authorizations.create.transferred", scope: "decidim.verifications"))}</p>
#{transfer.presenter.records_list_html}
HTML
end
flash[:notice] = message
redirect_to redirect_url || authorizations_path
end
on(:transfer_user) do |authorized_user|
authorized_user.update(last_sign_in_at: Time.current, deleted_at: nil)
sign_out(current_user)
sign_in(authorized_user)
redirect_to decidim_verifications.onboarding_pending_authorizations_path
end
on(:invalid) do
flash[:alert] = t("authorizations.create.error", scope: "decidim.verifications")
render action: :new, status: :unprocessable_entity
end
end
end
|
#index ⇒ Object
25
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 25
def index; end
|
#new ⇒ Object
23
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 23
def new; end
|
#onboarding_pending ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 27
def onboarding_pending
return redirect_back(fallback_location: authorizations_path) unless onboarding_manager.valid?
authorizations = action_authorized_to(onboarding_manager.action, **onboarding_manager.action_authorized_resources)
authorization_status = authorizations.global_code
if authorizations.single_authorization_required?
flash.keep
return redirect_to(authorizations.statuses.first.current_path(redirect_url: decidim_verifications.onboarding_pending_authorizations_path))
end
return unless onboarding_manager.finished_verifications?(active_authorization_methods) || authorization_status == :unauthorized
if authorization_status == :unauthorized
flash[:alert] = t("authorizations.onboarding_pending.unauthorized", scope: "decidim.verifications", action: onboarding_manager.action_text.downcase)
elsif current_user.ephemeral?
flash[:notice] = t("ephemeral_authorized_message", scope: "decidim.onboarding_action_message")
else
flash[:notice] = t(
"authorizations.onboarding_pending.completed_verifications",
scope: "decidim.verifications",
action: onboarding_manager.action_text.downcase,
resource_name: onboarding_manager.model_name.human.downcase
)
end
redirect_to onboarding_manager.finished_redirect_path
clear_onboarding_data!(current_user)
end
|
#renew_onboarding_data ⇒ Object
94
95
96
97
98
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 94
def renew_onboarding_data
store_onboarding_cookie_data!(current_user)
redirect_to onboarding_pending_authorizations_path
end
|