Sha256: 3bc8c35df9d3fa1249768a2be8d0e57169c1122763843cd502beb0cd84572468

Contents?: true

Size: 790 Bytes

Versions: 2

Compression:

Stored size: 790 Bytes

Contents

require "godmin/authentication/sessions_controller"
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
      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

2 entries across 2 versions & 1 rubygems

Version Path
godmin-1.5.0 lib/godmin/authentication.rb
godmin-1.4.0 lib/godmin/authentication.rb