Skip to content

A plugin providing a simple, template based, registration dialog for potential user accounts and DeepaMehta 4.

License

Notifications You must be signed in to change notification settings

mukil/dmx-sign-up

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DMX Sign-up

This plugin introduces a configurable user registration process for DMX User Accounts. The plugin can be configured so users need to opt-in, utilizing confirmation emails (active for 60mins).

Most (if not all) user facing message are translatable by now. A german language version of this bundle can be build from source after setting the language option to de using the plugin.properties file.

This plugin adds:

  • A "User Mailbox" association type to associate "Email Address" w. "User Accounts".
  • A Sign-up-link next to the Login-button in the DMX Webclient
  • A Sign-up Configuration topic associated to the DMX Sign up Plugin topic (part of the "System" workspace and thus editable by all members of it)
  • A Forgot password? link to the Login-dialog in the DMX Webclient

The special features of the self-registration ui is comprised of:

  • Username existence check
  • Email existence check
  • Simple GUI-Notification mechanism
  • Minimal CSS Definition
  • Administration workspace members can create accounts without email confirmation

The special features of the login ui is comprised of:

  • Simple GUI-Notification mechanism
  • Automatic redirect
  • Minimal CSS Definition

The special logic of this plugin is comprised of:

  • Optionally: Setup an email based confirmation workflow for new accounts
    Sends confirmation mail with token to the users registering Email address
    Allows for the password reset functionality to take place also via an Email based confirmation workflow
  • Optionally: Send notifications to system administrator if a new user account was created
  • Optionally: If dmx.security.new_accounts_are_enabled (platform configuration option) is set to true an account activation notice is sent
  • Optionally: If a User Mailbox exists a "Passwort reset"-workflow is available
  • Optionally: A workspace URI can be specified whose members have the right to create new users.
  • Optionally: User accounts can be created through the LDAP plugin.

Note: If Email Confirmation Required is set to true the confirmation tokens the system sends out are not persisted and get lost after a bundle/system restart. Once a token was send out the link containing it is valid for sixty minutes.

Email address topics of new user accounts are all placed in the "Administration" workspace too.

Requirements

DMX 5.3: DMX is a platform for collaboration and knowledge management. https://github.com/dmx-systems/dmx-platform

To be able to install this module you first and additionally have to install the following DMX Plugins.

  • dmx-thymeleaf-0.9.3+-Bundle - Build from sources
  • dmx-sendmail-2.1.0+-Bundle - Build from sources
  • dmx-ldap-0.6.2-SNAPSHOT+`-Bundle - Build from sources

You can find the respective plugin version and its dependencies for download at https://download.dmx.systems/plugins/.

Operations: For the plugins mailbox validation process to run you must install these plugins with DMX on a web server with a postfix -> Internet Site like mail send functionality.

After downloading all bundle-files, place them in the bundle-deploy folder of your DMX installation and restart DMX.

Plugin Configuration

Since the 2.0.0 release, the following options must be configured in either the dmx-platform's config.properties (binary release) or pom.xml (if you run the platform from sources) file.

dmx.signup.confirm_email_address = true
dmx.signup.admin_mailbox = signup-test@dmx.systems
dmx.signup.system_mailbox = nomail@dmx.systems
dmx.signup.account_creation = admin
dmx.signup.account_creation_password_handling = generated
dmx.signup.account_creation_auth_ws_uri =
dmx.signup.ldap_account_creation = false
dmx.signup.token_expiration_time = 2

Legacy wise, the rest of the plugin options are stored in DB. The central topic for configuring the sign-up plugin is of type Sign-up Configuration. Editing this topic via the DMX Webclient allows you to interactively configure the appearance of the custom login and self-registration dialogs.

The sign-up configuration is associated with the "Plugin" topic representing this plugin ("DMX Sign up"). It can be revealed by all members of the Administration workspace.

Note: If you want to use the "Password reset" functionality without allowing users to self-register you must make sure "User Account" topics are equipped with a "User Mailbox". To set this up, see instructions here: https://git.dmx.systems/dmx-plugins/dmx-sign-up/-/issues/2

Configure account creation logic

The sign-up can work in three different modes:

Value Description
disabled nobody can create new accounts
admin only administrator (privileged users) can create new accounts
public anybody can create new accounts through self-registration in addition to the administrators

The desired working mode is configured by setting the property:

dmx.signup.account_creation = disabled | admin | public

The default value is "disabled" and also goes into effect when the value has been misspelled.

If you only want to use the password-reset functionality and/or equip existing user accounts with an email address topic, please read the following hints: https://git.dmx.systems/dmx-plugins/dmx-sign-up/-/issues/2#note_17729

If you don't want to allow users to self-register accounts but want to make use of the sign-up plugin features, you find more hints here. Basically you need to log in as "admin" ("or Administration workspace member) first and then browse (manually) to /sign-up and use the form to create new accounts.

In order for an already logged in user have the permission to create a new user the former user either needs to be a member of the administration workspace or be a member of the workspace specified through the "dmx.signup.account_creation_auth_ws_uri" configuration option. Not setting this value means that only the administration workspace membership check is in place.

Configure account creation password handling