Auto Registration - UI Design

General notes:

  • The login name and password are auto-generated. Users can change them after they confirm their email.
  • So, anonymous users would post their content to my website together with their email address** all in the same form - with one click. The content would go live after they validate their email address - by clicking on a link in the automated email sent to them after they post their content (and their email address). The email can be sent with an auto-generated username*** and password. The user will then be invited to update their username, password and profile if they so wish.
  • If the email belongs to a user which already exists in the system, the user should be asked to enter his/her password and be given a password reminder link.
  • The new nodes / new content should be hidden (even from the administrator) until the user approves his/her registration. When registration is approved – nodes should be processed according to the standard Drupal logic: auto-approved or submitted for approval, according to the standard workflow in place for the content type (as defined in admin/settings/content-types).
  • Logic should support Drupal 4.7 and Drupal 5.0.
  • The logic should preferably be implemented as a loginToboggan extension. It’s too tightly coupled. Otherwise, the module should try to use LoginToboggan as an API. If needed to modify the LoginToboggan code, extending LoginToboggan by adding an API to allow other modules to access its functionality is the preferred way.
  • If implemented as a separate module, this module should use loginToboggan functionality and settings as much as possible:
  • Save a new user.
  • Immediate login with pre-authorized user role as defined in the LoginToboggan settings.
  • No need for confirmation email - the email may appear in the confirmation page where the user may be given a chance to modify it if there were errors.

Petition Signup:

If the user is not signed to the system, petition_view() should display the following block below the petition:

If this is your first signup, please fill the following details:
First Name: ______
Last Name: ______
ID #: ______
Email Address: ______
Signup for ‘X’ petition
Your post will be approved when your email address is confirmed.

Behavior

  • Display all public and protected profile fields which are marked as needed for the registration form.
  • If the email address belongs to a registered user.
  • Ask for the password associated with the email.
  • Call the auto registration API in order to login the user.
  • The UID of the user is returned.
  • The user is logged in.
  • Then, petition_signup_form_data_submit saves the signature data for the new UID.
  • Otherwise,
  • Call the auto registration API in order to activate LoginToboggan’s registration process for the user.
  • The login name and password will be auto-generated.
  • The UID of the new user is returned.
  • Then, petition_signup_form_data_submitsaves the signature data for the new UID in a pending state.
  • When the user’s registration is confirmed, the signature should be moved to a ‘confirmed’ state.

Below the node add form / comment add form:

If the user is not registered, display the following block:

New users - To submit your post, please fill the following details:
First Name: ______
Last Name: ______
Your Email Address: ______
Submit
Your post will be queued for submission until you confirm your email address.

Behavior

  • Display all public and protected profile fields which are marked as needed for the registration form.
  • If the email address belongs to a registered user.
  • Ask the user for his password.
  • Programmatically call the auto registration API in order to login the user.
  • the auto registration API performs a login.
  • The UID of the user is returned.
  • Then, the node data is saved.
  • Otherwise
  • Programmatically call the auto registration API in order to create the user (the user will actually be created using LoginToboggan’s logic).
  • The login name and password are auto-generated.
  • The UID of the new user is returned.
  • Then, data is saved in a new node, in a pending state.
  • Notification message is displayed on the screen & sent to the user.
  • When the user’s registration is confirmed, the node should be submitted.

Future

  • Autoreg may optionally integrate with the workflow and action modules. If the workflow module is installed, autoreg may allow the website admin to define the default state (e.g. pending user authorization) in which new nodes will be added for unregistered users.