Sha256: 6453c621114fdb1ea2d8b79394b82be2711aa5fa70ef96ef130dbfefe02da283

Contents?: true

Size: 1.39 KB

Versions: 9

Compression:

Stored size: 1.39 KB

Contents

module Lockdown
  module Session

    protected

    def add_lockdown_session_values(user = nil)
      user ||= current_user

      if user
        session[:access_rights] = Lockdown::System.access_rights_for_user(user)
        session[:current_user_id] = user.id
      else
        session[:access_rights] = Lockdown::System.public_access
      end
    end

    def logged_in?
      current_user_id.to_i > 0
    end

    def current_user_id
      session[:current_user_id]
    end

    def current_user_is_admin?
      session[:access_rights] == :all
    end

    def current_user_access_in_group?(grp)
      return true if current_user_is_admin?
        Lockdown::System.user_groups[grp].each do |perm|
          return true if access_in_perm?(perm)
        end
      false
    end

    def access_in_perm?(perm)
      if Lockdown::System.permissions[perm]
        Lockdown::System.permissions[perm].each do |ar|
          return true if session_access_rights_include?(ar)
        end 
      end
      false
    end

    def session_access_rights_include?(str)
      return false unless session[:access_rights]
      session[:access_rights].include?(str)
    end

    def reset_lockdown_session
      [:expiry_time, :current_user_id, :access_rights].each do |val|
        session[val] = nil if session[val]
      end
    end 

    alias_method :nil_lockdown_values, :reset_lockdown_session
  end # Session
end # Lockdown

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
lockdown-1.6.5 lib/lockdown/session.rb
revo-lockdown-1.6.2.2 lib/lockdown/session.rb
lockdown-1.6.4 lib/lockdown/session.rb
lockdown-1.6.3 lib/lockdown/session.rb
revo-lockdown-1.6.2.1 lib/lockdown/session.rb
revo-lockdown-1.6.2 lib/lockdown/session.rb
lockdown-1.6.2 lib/lockdown/session.rb
lockdown-1.6.1 lib/lockdown/session.rb
lockdown-1.6.0 lib/lockdown/session.rb