Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
minLevel1
maxLevel7

Design

...

How it works

Sign up page composition

...

  • I already have an account link : signup.signupForm.cancelButton (i18n)

  • Sign up button : signup.signupForm.inscriptionButton (i18n)

  • Sign up title : page.title.signup(i18n)

  • Introductory text : signup.description(i18n)

Migration from a pre-2022.1

The issue :

Info

The process of creating a new user has been revised in 2022.1 sends to new users an email asking them to validate their account.

When the user clicks on the button to validate their account the /verify action ends in error 500 with the following exception:

Code Block
LOGGER:applicatif
 Class: java.lang.RuntimeException Msg: java.lang.RuntimeException: noheto.BusinessException: You do not have the right to create an authority of this object: user.
 source: website
 remoteaddr: 52.47.89.117
 uri: /api/packaged/register/verify/pX1sSnSb31qaQF1w1CC3pnNGALmkdCAjtF7-tt67ieRJTnDS8SJGSyfimxdsmP4jecoPTM6ue6A
 referer: -
 user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
 
-------------
Throwable information:
Class: java.lang.RuntimeException Msg: java.lang.RuntimeException: noheto.BusinessException: You do not have the right to create an authority of this object: user.
 noheto.workflow.standard.Workflow.doAction(Workflow.java:346)
 noheto.workflow.standard.Workflow.execute(Workflow.java:231)
 wsnoheto.engine.ObjectWritable.processWorkflowAction(ObjectWritable.java:3518)
 wsnoheto.engine.ObjectWritable.processWorkflowAction(ObjectWritable.java:3472)

Explanation : when the systems sends an email to validate the email address, the link that is provided executes an action on the temporary

Status
titleuserregistration
account: it executes the workflow action defined in the validate_email_workflow_action plugin parameter which has the default value validate.

In previous versions, the validate action was creating a user, and when the application is correctly secured, a non connected surfer is not allowed to create a user.

The purpose of the action should be to validate the email address entered and thus allow the administrators to approve the creation of the final account.

How to solve :

  1. Create a new step in the workflow of the userregistration object: unverified email

  2. Add a verify action from unverified email to inactive

  3. Inactive status must be published true

  4. Change the default status of userregistration to have the ID of unverified email

  5. Change the activated value of userregistration to 2

  6. Set the validate_email_workflow_action of the PACKAGED_RegistrationEmails to verify

In starter-kit, we have chosen not to go through the workflow to approve the creation of an account: by going through the workflow, it is not possible to send the user back to the account finally created. So we have a button that appears in the toolbar if enable_create_account_from_request is set to true. To keep your existing operation, you'll have to set this parameter to false (to not have the button)

Some notes:

  • By creating a new status and setting the default value of status, non-validated accounts created before the update can still be approved even if they haven't validated their email address (as before). The following ones on the other hand will have to go through this address.

  • You will have to customize the email template, but... it's documented → https://crossmedia.atlassian.net/wiki/spaces/WD/pages/2160427009/UI+configuration+checklist#Registration-related

  • Depending on how the account creation trigger is written (validate in your workflow), you may be able to name the action that changes from unverified email to inactive validate → advantage, no need to change the default value of validate_email_workflow_action (a rather limited advantage, I agree)

  • you can prevent admins to see userregistration with unverified email status → avoid creating accounts with unvalidated email