# Technical Background

The user registration process consists of several steps:

# 1. Captcha

The GUI calls GET /api/extensions/user-registration to get a new captcha.
The captcha protects the user registration against creating users with bots.

# 2. Registration Check

The GUI calls POST /api/extensions/user-registration. This allows to create new users in module user_registr. The request requires a json body. Example:

{
	"captcha": "ebdkn",
	"password": "...",
	"parameter": {
		"title_acad": "title",
		"firstname": "John",
		"lastname": "Doe",
		"company": "test company",
		"department": "test department",
		"email": "...",
		"phone": "...",
		"mobile": "...",
		"address": "...",
		"address_zip": "...",
		"address_city": "...",
		"username": "...",
		"lang": "...",
		"change_pwd": false
	}
}

The keys in the parameter map are the fields for module user_registr. The request checks if the user can be created. This is only possible if the following conditions are met:

  • no existing record for field username in module user or user_registr
  • no existing record for fields configured in unique_user_fields in module user or user_registr

This check will be processed in UserRegistrationEvent.

# 3. Send E-Mail Verification to User

A trigger detects a status change in module user_registr and sends an e-mail with a link to verify if the given e-mail address is valid.

# 4. User Verifies E-Mail

When the link from the e-mail is clicked (valid verification), the status in module user_registr is updated.

# 5. Send E-Mail to Admins

All defined admin users receive an e-mail, that a new user registration has to be processed. Admin users/recipients can be configured in admin snap-in User Registration, fields Authorize user as administrator (to_admin_users) and Authorize all users in role as administrators (to_admin_roles).

The e-mail contains a deep link to the new record in GUI module User Registration. Admin can choose from two actions to complete the registration request: Accept and Decline.

# 6. Complete User Registration

# Accept User Registration

  • Admins need to choose the role for the user in the GUI
  • The user is created in module user.
  • An accepted e-mail is sent to the new user.
  • The status in module user_registr is updated.

# Decline User Registration

  • Optionally, admins can enter a rejection reason.
  • A declined e-mail is sent to the rejected user.
  • The status in module user_registr is updated.
Request missing documentation