Sha256: a15f88a603a00e13c4133f0117e6aa124f28d5fa20ba415460a50c782669dfd5

Contents?: true

Size: 875 Bytes

Versions: 4

Compression:

Stored size: 875 Bytes

Contents

module TkhAuthenticationActionControllerExtension
  def self.included(base)
    base.send(:include, InstanceMethods)
  end

  module InstanceMethods
    def current_user
      @current_user ||= User.find_by!(auth_token: cookies[:auth_token]) if cookies[:auth_token]
    end

    def authenticate
      if current_user.nil?
        session[:target_page] = request.url
        redirect_to login_url, alert: t('authentication.warning.login_needed')
      end
    end

    def authenticate_with_admin
      unless administrator?
        session[:target_page] = request.url if session[:target_page].nil?
        redirect_to safe_root_url, alert: t('authentication.warning.restricted_access')
      end
    end

    def administrator?
      current_user && current_user.admin?
    end

    private

    def safe_root_url
      defined?(root_url) ? root_url : '/'
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tkh_authentication-0.9.17.2 lib/tkh_authentication/tkh_authentication_action_controller_extension.rb
tkh_authentication-0.9.17.1 lib/tkh_authentication/tkh_authentication_action_controller_extension.rb
tkh_authentication-0.9.17 lib/tkh_authentication/tkh_authentication_action_controller_extension.rb
tkh_authentication-0.9.16 lib/tkh_authentication/tkh_authentication_action_controller_extension.rb