Class: CASino::SessionOverviewProcessor

Inherits:
Processor
  • Object
show all
Includes:
ProcessorConcern::TicketGrantingTickets
Defined in:
app/processors/casino/session_overview_processor.rb

Overview

The SessionOverview processor to list all open session for the currently signed in user.

This feature is not described in the CAS specification so it’s completly optional to implement this on the web application side.

Instance Method Summary collapse

Methods included from ProcessorConcern::TicketGrantingTickets

#acquire_ticket_granting_ticket, #cleanup_expired_ticket_granting_tickets, #find_valid_ticket_granting_ticket, #load_or_initialize_user, #remove_ticket_granting_ticket

Methods included from ProcessorConcern::Browser

#browser_info, #same_browser?

Methods inherited from Processor

#initialize

Constructor Details

This class inherits a constructor from CASino::Processor

Instance Method Details

#process(cookies = nil, user_agent = nil) ⇒ Object

This method will call ‘#user_not_logged_in` or `#ticket_granting_tickets_found(Enumerable)` on the listener.

Parameters:

  • cookies (Hash) (defaults to: nil)

    cookies delivered by the client

  • user_agent (String) (defaults to: nil)

    user-agent delivered by the client



11
12
13
14
15
16
17
18
19
20
# File 'app/processors/casino/session_overview_processor.rb', line 11

def process(cookies = nil, user_agent = nil)
  cookies ||= {}
  tgt = find_valid_ticket_granting_ticket(cookies[:tgt], user_agent)
  if tgt.nil?
    @listener.user_not_logged_in
  else
    ticket_granting_tickets = tgt.user.ticket_granting_tickets.where(awaiting_two_factor_authentication: false).order('updated_at DESC')
    @listener.ticket_granting_tickets_found(ticket_granting_tickets)
  end
end