Ouroboros/addons/silent_wolf/Auth/Register.gd

94 lines
3.4 KiB
GDScript

extends TextureRect
const SWLogger = preload("res://addons/silent_wolf/utils/SWLogger.gd")
func _ready():
SilentWolf.check_auth_ready()
SilentWolf.Auth.sw_registration_complete.connect(_on_registration_complete)
SilentWolf.Auth.sw_registration_user_pwd_complete.connect(_on_registration_user_pwd_complete)
func _on_RegisterButton_pressed() -> void:
var player_name = $"FormContainer/MainFormContainer/FormInputFields/PlayerName".text
var email = $"FormContainer/MainFormContainer/FormInputFields/Email".text
var password = $"FormContainer/MainFormContainer/FormInputFields/Password".text
var confirm_password = $"FormContainer/MainFormContainer/FormInputFields/ConfirmPassword".text
SilentWolf.Auth.register_player(player_name, email, password, confirm_password)
show_processing_label()
func _on_RegisterUPButton_pressed() -> void:
var player_name = $"FormContainer/MainFormContainer/FormInputFields/PlayerName".text
var password = $"FormContainer/MainFormContainer/FormInputFields/Password".text
var confirm_password = $"FormContainer/MainFormContainer/FormInputFields/ConfirmPassword".text
SilentWolf.Auth.register_player_user_password(player_name, password, confirm_password)
show_processing_label()
func _on_registration_complete(sw_result: Dictionary) -> void:
if sw_result.success:
registration_success()
else:
registration_failure(sw_result.error)
func _on_registration_user_pwd_complete(sw_result: Dictionary) -> void:
if sw_result.success:
registration_user_pwd_success()
else:
registration_failure(sw_result.error)
func registration_success() -> void:
# redirect to configured scene (user is logged in after registration)
var scene_name = SilentWolf.auth_config.redirect_to_scene
# if doing email verification, open scene to confirm email address
if ("email_confirmation_scene" in SilentWolf.auth_config) and (SilentWolf.auth_config.email_confirmation_scene) != "":
SWLogger.info("registration succeeded, waiting for email verification...")
scene_name = SilentWolf.auth_config.email_confirmation_scene
else:
SWLogger.info("registration succeeded, logged in player: " + str(SilentWolf.Auth.logged_in_player))
get_tree().change_scene_to_file(scene_name)
func registration_user_pwd_success() -> void:
var scene_name = SilentWolf.auth_config.redirect_to_scene
get_tree().change_scene_to_file(scene_name)
func registration_failure(error: String) -> void:
hide_processing_label()
$"FormContainer/ErrorMessage".text = error
$"FormContainer/ErrorMessage".show()
func _on_BackButton_pressed() -> void:
get_tree().change_scene_to_file(SilentWolf.auth_config.redirect_to_scene)
func show_processing_label() -> void:
$"FormContainer/ProcessingLabel".show()
func hide_processing_label() -> void:
$"FormContainer/ProcessingLabel".hide()
func _on_UsernameToolButton_mouse_entered() -> void:
$"FormContainer/InfoBox".text = "Username should contain at least 6 characters (letters or numbers) and no spaces."
$"FormContainer/InfoBox".show()
func _on_UsernameToolButton_mouse_exited() -> void:
$"FormContainer/InfoBox".hide()
func _on_PasswordToolButton_mouse_entered() -> void:
$"FormContainer/InfoBox".text = "Password should contain at least 8 characters including uppercase and lowercase letters, numbers and (optionally) special characters."
$"FormContainer/InfoBox".show()
func _on_PasswordToolButton_mouse_exited() -> void:
$"FormContainer/InfoBox".hide()