Sha256: d9ac50297c123231e461f4b6f03a82834f50260aee839deff2ad0900b1d7c235

Contents?: true

Size: 985 Bytes

Versions: 9

Compression:

Stored size: 985 Bytes

Contents

module Exposition
  module Concerns
    module Controller
      module Admin
        module AdminController
          extend ActiveSupport::Concern

          included do
            layout 'exposition/admin'

            before_action :authorize
            helper_method :current_user, :logged_in?
          end

          def authorize
            raise ActionController::RoutingError.new('Not Found') unless logged_in?
          end

          def current_user
            if (user_id = session[:user_id])
              @current_user ||= User.find_by(id: user_id)
            elsif (user_id = cookies.signed[:user_id])
              user = User.find_by(id: user_id)
              if user && user.authenticated?(cookies[:remember_token])
                session[:user_id] = user.id
                @current_user = user
              end
            end
          end

          def logged_in?
            current_user.present?
          end

        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
exposition-0.0.5.7.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.5.6.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.5.5.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.5.4.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.5.2.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.5.1.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.5.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.4.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb
exposition-0.0.3.pre.alpha lib/exposition/concerns/controllers/admin/admin_controller.rb