Module: Booth::Userland

Defined in:
lib/booth/userland.rb,
lib/booth/userland/logins/new.rb,
lib/booth/userland/remotes/show.rb,
lib/booth/userland/webauths/new.rb,
lib/booth/userland/logins/create.rb,
lib/booth/userland/sessions/show.rb,
lib/booth/userland/webauths/sudo.rb,
lib/booth/userland/logins/destroy.rb,
lib/booth/userland/remotes/update.rb,
lib/booth/userland/sessions/index.rb,
lib/booth/userland/webauths/index.rb,
lib/booth/userland/webauths/create.rb,
lib/booth/userland/onboardings/show.rb,
lib/booth/userland/webauths/destroy.rb,
lib/booth/userland/registrations/new.rb,
lib/booth/userland/onboardings/update.rb,
lib/booth/userland/registrations/create.rb,
lib/booth/userland/webauths/guards/sudo.rb,
lib/booth/userland/extract_flash_messages.rb,
lib/booth/userland/sessions/destroy_one_or_other.rb,
lib/booth/userland/logins/transitions/new/fallible.rb,
lib/booth/userland/logins/transitions/new/timed_out.rb,
lib/booth/userland/webauths/transitions/create/reset.rb,
lib/booth/userland/logins/transitions/create/skip_remotes.rb,
lib/booth/userland/sessions/transitions/show/enter_webauth.rb,
lib/booth/userland/logins/transitions/new/already_logged_in.rb,
lib/booth/userland/logins/transitions/create/choose_username.rb,
lib/booth/userland/logins/transitions/new/no_username_chosen.rb,
lib/booth/userland/sessions/transitions/destroy/enter_webauth.rb,
lib/booth/userland/webauths/transitions/create/choose_nickname.rb,
lib/booth/userland/logins/transitions/new/missing_authenticators.rb,
lib/booth/userland/logins/transitions/new/remote_session_available.rb,
lib/booth/userland/logins/transitions/new/mode_username_and_webauth.rb,
lib/booth/userland/webauths/transitions/create/registration_initiation.rb,
lib/booth/userland/webauths/transitions/sudo/authentication_initiation.rb,
lib/booth/userland/webauths/transitions/create/authentication_initiation.rb,
lib/booth/userland/webauths/transitions/create/registration_verification.rb,
lib/booth/userland/webauths/transitions/sudo/authentication_verification.rb,
lib/booth/userland/webauths/transitions/create/authentication_verification.rb,
lib/booth/userland/logins/transitions/create/webauth_authentication_initiation.rb,
lib/booth/userland/logins/transitions/create/webauth_authentication_verification.rb,
lib/booth/userland/sessions/transitions/destroy/webauth_authentication_initiation.rb,
lib/booth/userland/sessions/transitions/destroy/webauth_authentication_verification.rb

Overview

This module handles user credentials and sessions. Use the class methods defined on this module in your Controllers.

“Userland” indicates, that it is safe to expose these actions to the public. There are no administrative functions here (such as manually creating a new user would be). Those administrative things you would find in the “Adminland” namespace.

Defined Under Namespace

Modules: Logins, Onboardings, Registrations, Remotes, Sessions, Webauths Classes: ExtractFlashMessages

Class Method Summary collapse

Class Method Details

.create_loginObject

Handle submitted login form data.



38
39
40
# File 'lib/booth/userland.rb', line 38

def self.(...)
  ::Booth::Userland::Logins::Create.call(...)
end

.create_registrationObject



24
25
26
# File 'lib/booth/userland.rb', line 24

def self.create_registration(...)
  ::Booth::Userland::Registrations::Create.call(...)
end

.create_webauthObject

Receive form data and create the Passkey.



68
69
70
# File 'lib/booth/userland.rb', line 68

def self.create_webauth(...)
  ::Booth::Userland::Webauths::Create.call(...)
end

.destroy_all_other_sessionsObject



124
125
126
# File 'lib/booth/userland.rb', line 124

def self.destroy_all_other_sessions(...)
  ::Booth::Userland::Sessions::DestroyOneOrOther.call(...)
end

.destroy_loginObject

Logout a user.



43
44
45
# File 'lib/booth/userland.rb', line 43

def self.(...)
  ::Booth::Userland::Logins::Destroy.call(...)
end

.destroy_sessionObject



120
121
122
# File 'lib/booth/userland.rb', line 120

def self.destroy_session(...)
  ::Booth::Userland::Sessions::DestroyOneOrOther.call(...)
end

.destroy_webauthObject

Remove a user’s configured Passkey.



73
74
75
# File 'lib/booth/userland.rb', line 73

def self.destroy_webauth(...)
  ::Booth::Userland::Webauths::Destroy.call(...)
end

.extract_flash_messagesObject


General Helpers




132
133
134
# File 'lib/booth/userland.rb', line 132

def self.extract_flash_messages(...)
  ::Booth::Userland::ExtractFlashMessages.call(...)
end

.index_sessionsObject


Session Actions




108
109
110
# File 'lib/booth/userland.rb', line 108

def self.index_sessions(...)
  ::Booth::Userland::Sessions::Index.call(...)
end

.index_webauthObject

List a user’s currently configured Passkeys.



52
53
54
# File 'lib/booth/userland.rb', line 52

def self.index_webauth(...)
  ::Booth::Userland::Webauths::Index.call(...)
end

.new_loginObject

Show a login form.



33
34
35
# File 'lib/booth/userland.rb', line 33

def self.(...)
  ::Booth::Userland::Logins::New.call(...)
end

.new_registrationObject


Registration Actions




20
21
22
# File 'lib/booth/userland.rb', line 20

def self.new_registration(...)
  ::Booth::Userland::Registrations::New.call(...)
end

.new_webauthObject

Show a form to add a Passkey.



63
64
65
# File 'lib/booth/userland.rb', line 63

def self.new_webauth(...)
  ::Booth::Userland::Webauths::New.call(...)
end

.other_sessions?Boolean

Returns:

  • (Boolean)


112
113
114
# File 'lib/booth/userland.rb', line 112

def self.other_sessions?(...)
  index_sessions(...).reject(&:is_current).any?
end

.routesObject



12
13
14
# File 'lib/booth/userland.rb', line 12

def self.routes(...)
  ::Booth::Routes::Userland.call(...)
end

.show_onboardingObject


Onboarding Actions




81
82
83
# File 'lib/booth/userland.rb', line 81

def self.show_onboarding(...)
  ::Booth::Userland::Onboardings::Show.call(...)
end

.show_remote_loginObject

Show a code to the user for logging in somewhere else. Specifically, shows the code and the form to enter the manually type in the code.



95
96
97
# File 'lib/booth/userland.rb', line 95

def self.(...)
  ::Booth::Userland::Remotes::Show.call(...)
end

.show_sessionObject



116
117
118
# File 'lib/booth/userland.rb', line 116

def self.show_session(...)
  ::Booth::Userland::Sessions::Show.call(...)
end

.sudo_webauthObject

Re-checks a user’s Passkey for (temporarily elevated) authentication. I.e. proof that a user knows his Passkey, before allowing to change it.



58
59
60
# File 'lib/booth/userland.rb', line 58

def self.sudo_webauth(...)
  ::Booth::Userland::Webauths::Sudo.call(...)
end

.update_onboardingObject



85
86
87
# File 'lib/booth/userland.rb', line 85

def self.update_onboarding(...)
  ::Booth::Userland::Onboardings::Update.call(...)
end

.update_remote_loginObject

Receives the entered code for logging in a remote.



100
101
102
# File 'lib/booth/userland.rb', line 100

def self.(...)
  ::Booth::Userland::Remotes::Update.call(...)
end