# 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 moduleuser
oruser_registr
- no existing record for fields configured in
unique_user_fields
in moduleuser
oruser_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.