Sha256: 61f3bec91ed573e8b85439a028f51f28a80d2fb185adc970429e6d93113d7c5d

Contents?: true

Size: 1.66 KB

Versions: 56

Compression:

Stored size: 1.66 KB

Contents

module Cmor
  module UserArea
    module Controller
      module CurrentUserConcern
        extend ActiveSupport::Concern

        included do
          helper_method :current_user_session, :current_user, :user_signed_in?
        end

        private

        def after_sign_out_url
          "/#{I18n.locale}"
        end

        def authenticate_user!
          unless user_signed_in?
            store_location
            handle_authentication_failure
            return false
          end
          true
        end

        def current_user_session
          return @current_user_session if defined?(@current_user_session)
          @current_user_session = ::Cmor::UserArea::UserSession.find
        end

        def current_user
          return @current_user if defined?(@current_user)
          @current_user = current_user_session && current_user_session.user
        end

        def user_authentication_failed_path
          cmor_user_area.new_user_session_path
        end

        def user_signed_in?
          !current_user.nil?
        end

        def sign_out_user
          @current_user = nil
          redirect_to after_sign_out_url
        end

        def current_session(type)
          type = type.to_s
          type << '_session' unless type.end_with?('_session')
          send("current_#{type}".to_sym)
        end

        def handle_authentication_failure
          respond_to do |format|
            format.json { render json: { error: :forbidden }, status: :forbidden }
            format.html { redirect_to(user_authentication_failed_path, notice: t('messages.failures.cmor_user_area.authentication_failed')) }
          end
        end
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
cmor_user_area-0.0.59.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.58.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.57.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.56.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.55.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.54.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.53.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.52.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.51.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.50.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.49.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.48.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.45.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.44.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.43.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.42.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.41.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.40.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.39.pre app/concerns/cmor/user_area/controller/current_user_concern.rb
cmor_user_area-0.0.38.pre app/concerns/cmor/user_area/controller/current_user_concern.rb