Class: NoPassword::SessionManager

Inherits:
Object
  • Object
show all
Defined in:
app/use_cases/no_password/session_manager.rb

Instance Method Summary collapse

Instance Method Details

#claim(token) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/use_cases/no_password/session_manager.rb', line 18

def claim(token)
  current_time = Time.zone.now

  session = Session
    .where(token: token, claimed_at: nil)
    .where("expires_at > ?", current_time)
    .first

  if session.present?
    session.claimed_at = current_time
    session.save

    return session
  end

  nil
end

#create(user_agent, email, remote_addr, return_url = nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'app/use_cases/no_password/session_manager.rb', line 5

def create(user_agent, email, remote_addr, return_url = nil)
  expire_unclaimed_session(email)

  Session.create(
    user_agent: user_agent,
    email: email,
    expires_at: NoPassword.configuration.session_expiration.from_now,
    token: generate_friendly_token,
    remote_addr: remote_addr,
    return_url: return_url
  )
end