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
101
102
103
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 101
def clear_onboarding_data
clear_onboarding_data!(current_user)
end
|
#create ⇒ Object
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
93
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 58
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 = " <p>\#{CGI.escapeHTML(message)}</p>\n <p>\#{CGI.escapeHTML(t(\"authorizations.create.transferred\", scope: \"decidim.verifications\"))}</p>\n \#{transfer.presenter.records_list_html}\n HTML\n end\n\n flash[:notice] = message\n redirect_to redirect_url || authorizations_path\n end\n\n on(:transfer_user) do |authorized_user|\n authorized_user.update(last_sign_in_at: Time.current, deleted_at: nil)\n sign_out(current_user)\n sign_in(authorized_user)\n\n redirect_to decidim_verifications.onboarding_pending_authorizations_path\n end\n\n on(:invalid) do\n flash[:alert] = t(\"authorizations.create.error\", scope: \"decidim.verifications\")\n render action: :new\n end\n end\nend\n"
|
#index ⇒ Object
26
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 26
def index; end
|
#new ⇒ Object
24
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 24
def new; end
|
#onboarding_pending ⇒ Object
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
56
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 28
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
95
96
97
98
99
|
# File 'decidim-verifications/app/controllers/decidim/verifications/authorizations_controller.rb', line 95
def renew_onboarding_data
store_onboarding_cookie_data!(current_user)
redirect_to onboarding_pending_authorizations_path
end
|