Sha256: dbd655e77ad37d6960a5b5e6074fcdd2db8f0f7096c6e1bd5e89cebd0821c811

Contents?: true

Size: 964 Bytes

Versions: 18

Compression:

Stored size: 964 Bytes

Contents

# frozen_string_literal: true

module ClWiki
  class ApplicationController < ActionController::Base
    before_action :expire_old_session, if: -> { $wiki_conf.use_authentication }
    before_action :authorized, if: -> { $wiki_conf.use_authentication }
    before_action :initialize_index, if: -> { $wiki_conf.use_authentication }
    helper_method :current_user
    helper_method :logged_in?

    def expire_old_session
      reset_session if session[:expire_at]&.< Time.now
    end

    def current_user
      User.find(session[:username])&.tap do |user|
        user.cached_encryption_key = Base64.decode64(session[:encryption_key])
      end
    end

    def current_owner
      current_user || ClWiki::PublicUser.new
    end

    def logged_in?
      !current_user.nil?
    end

    def authorized
      redirect_to login_url unless logged_in?
    end

    def initialize_index
      ClWiki::MemoryIndexer.instance(page_owner: current_owner)
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
clwiki-3.3.2 app/controllers/cl_wiki/application_controller.rb
clwiki-3.3.0 app/controllers/cl_wiki/application_controller.rb
clwiki-3.2.6 app/controllers/cl_wiki/application_controller.rb
clwiki-3.2.5 app/controllers/cl_wiki/application_controller.rb
clwiki-3.2.4 app/controllers/cl_wiki/application_controller.rb
clwiki-3.2.3 app/controllers/cl_wiki/application_controller.rb
clwiki-3.2.2 app/controllers/cl_wiki/application_controller.rb
clwiki-3.2.1 app/controllers/cl_wiki/application_controller.rb
clwiki-3.2.0 app/controllers/cl_wiki/application_controller.rb
clwiki-3.1.6 app/controllers/cl_wiki/application_controller.rb
clwiki-3.1.5 app/controllers/cl_wiki/application_controller.rb
clwiki-3.1.4 app/controllers/cl_wiki/application_controller.rb
clwiki-3.1.3 app/controllers/cl_wiki/application_controller.rb
clwiki-3.1.2 app/controllers/cl_wiki/application_controller.rb
clwiki-3.1.1 app/controllers/cl_wiki/application_controller.rb
clwiki-3.1.0 app/controllers/cl_wiki/application_controller.rb
clwiki-3.0.4 app/controllers/cl_wiki/application_controller.rb
clwiki-3.0.3 app/controllers/cl_wiki/application_controller.rb