Sha256: e735bbb822c447a3a71b1fb7c39bc7e5c8135269f7cf04b699811f50d2ff6f73

Contents?: true

Size: 811 Bytes

Versions: 14

Compression:

Stored size: 811 Bytes

Contents

require "godmin/authentication/sessions"
require "godmin/authentication/user"

module Godmin
  module Authentication
    extend ActiveSupport::Concern

    included do
      before_action :authenticate_admin_user

      helper_method :admin_user
      helper_method :admin_user_signed_in?
    end

    def authenticate_admin_user
      unless admin_user_signed_in? || controller_name == "sessions"
        redirect_to new_session_path, alert: "Authentication needed"
      end
    end

    def admin_user_class
      raise NotImplementedError, "Must define the admin user class"
    end

    def admin_user
      if session[:admin_user_id]
        @admin_user ||= admin_user_class.find_by(id: session[:admin_user_id])
      end
    end

    def admin_user_signed_in?
      admin_user.present?
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
godmin-0.10.3 lib/godmin/authentication.rb
godmin-0.10.2 lib/godmin/authentication.rb
godmin-0.10.1 lib/godmin/authentication.rb
godmin-0.10.0 lib/godmin/authentication.rb
godmin-0.9.9 lib/godmin/authentication.rb
godmin-0.9.8 lib/godmin/authentication.rb
godmin-0.9.7 lib/godmin/authentication.rb
godmin-0.9.6 lib/godmin/authentication.rb
godmin-0.9.5 lib/godmin/authentication.rb
godmin-0.9.4 lib/godmin/authentication.rb
godmin-0.9.3 lib/godmin/authentication.rb
godmin-0.9.2 lib/godmin/authentication.rb
godmin-0.9.1 lib/godmin/authentication.rb
godmin-0.9.0 lib/godmin/authentication.rb