Self enrollment

I need a function so new users can self-enroll. Each user has already an inique id the use case should do (f.e ''molea') show a form so new user can enter details (-> Into entity Persons) microflow should create user entity en setup basic security/roles user is emailed his pasword or link f.e. Examples how this is done before?
3 answers

I have done something like this before. I used the following set-up:

  • The random data generator to generator to generate the password
  • The deeplink module to provide a 'sign-up' link. (provide anonymous user login)
  • MxModelReflection & E-mail token module to provide the functionality for e-mailing
  • A settings entity with associations to user roles & basic information for generating random data .

I used the deeplink module to provide a link into the wizard form in which the user can provide his/her information (using a non-persistent object. If you want to track the applications, you can user a persistable object). After the user has entered all information you can provide a microflow button in order to:

  1. Create the user.
  2. Set the user roles using the settings entity
  3. Generate the random password using the settings and random data generator
  4. E-mail the new user his credentials. Make sure you provide the proper e-mail template & tokens.

This is possible by creating a form which is accessible by anonymous users. You could use a non-persistant object to let the user enter his personal information in this form. After some validation in a microflow you could create an user by creating an administration.account object and send a mail to the user.


I assume you would allow anonymous users on some sort of landing page. There you could create a button to create a new user, do password retrieval based on mail adress or where the user can enter his credentials to log into the system.

Then after the create account button use a microflow to create the user, show the form with the user details and in the end after creating the account mail the user his account details with a password created by the system. Use a boolean to check if it is the first time that a user logs in. Then after a fist login from the user redirect the user to make him adjust his password.