Sha256: e2c2be8aee52f32bc60bc12b11d5d93a96a2ae5ee63d6fe40d00a166ec97c7f6

Contents?: true

Size: 1.35 KB

Versions: 13

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

module Decidim
  module Devise
    # Custom Devise ConfirmationsController to avoid namespace problems.
    class ConfirmationsController < ::Devise::ConfirmationsController
      include Decidim::DeviseControllers

      helper_method :new_user_group_session_path

      def create
        super do |resource|
          resource.errors.delete(:decidim_organization_id) if resource.errors.any?
        end
      end

      # Since we are using a single Devise installation for multiple
      # organizations, and user emails can be repeated across organizations,
      # we need to identify the user by both the email and the organization.
      # Setting the organization ID here will be used by Devise internally to
      # find the correct user.
      #
      # Note that in order for this to work we need to define the `confirmation_keys`
      # Devise attribute in the `Decidim::User` model to include the
      # `decidim_organization_id` attribute.
      def resource_params
        super.merge(decidim_organization_id: current_organization.id)
      end

      # Overwrites the default method to handle user groups confirmations.
      def after_confirmation_path_for(resource_name, resource)
        return profile_path(resource.nickname) if resource_name == :user_group

        sign_in(resource)

        super
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
decidim-core-0.29.1 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.28.4 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.29.0 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.28.3 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.29.0.rc4 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.29.0.rc3 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.29.0.rc2 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.29.0.rc1 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.28.2 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.28.1 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.28.0 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.28.0.rc5 app/controllers/decidim/devise/confirmations_controller.rb
decidim-core-0.28.0.rc4 app/controllers/decidim/devise/confirmations_controller.rb