Sha256: 2df8af5c4abc9a7f79afb7e970e223de4ddda94e4b6d0e45d1852e6d257862fb
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
# frozen_string_literal: true module Decidim module ActionDelegator module Devise module SessionsControllerOverride extend ActiveSupport::Concern included do alias_method :after_sign_in_path_for_original, :after_sign_in_path_for # automatically authorize the user if theres a setting for it def after_sign_in_path_for(user) after_sign_in_path_for_original(user) unless authorize_user_with_delegations_verifier(user) super end private def authorize_user_with_delegations_verifier(user) setting = Decidim::ActionDelegator::OrganizationSettings.new(current_user.organization).active.first delegations_verifier_authorization = Decidim::Authorization.find_or_initialize_by( user: user, name: "delegations_verifier" ) return unless ActionDelegator.authorize_on_login return unless user.present? && !user.blocked? return unless setting&.verify_with_email? && !delegations_verifier_authorization.granted? form = Decidim::ActionDelegator::Verifications::DelegationsVerifierForm.new.with_context( current_user: user, setting: setting ) Decidim::Verifications::PerformAuthorizationStep.call(delegations_verifier_authorization, form) do on(:ok) do delegations_verifier_authorization.grant! form.participant.update!(decidim_user: user) flash[:notice] = t("authorizations.update.success", scope: "decidim.verifications.sms") return true end end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-action_delegator-0.8.1 | app/controllers/concerns/decidim/action_delegator/devise/sessions_controller_override.rb |