Method: Masks::Credentials::Session#lookup

Defined in:
app/models/masks/credentials/session.rb

#lookupObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/models/masks/credentials/session.rb', line 12

def lookup
  return if session_params[:actor_id]

  actor_ids = session.data[:actors]&.keys || []
  actor_id = session.data[:actor]
  actors = (actor_ids.any? ? config.find_actors(session, actor_ids) : [])

  # only lookup and return the current actor if
  # it's not provided via a param (e.g. someone
  # is trying to login)
  actor =
    if actor_id
      actors.find do |a|
        a.actor_id == actor_id &&
          a.session_key == session.data[:actors][a.actor_id]
      end
    end

  actor = Actors::Anonymous.new(session:) if optional? && !actors.present?

  actor
end