Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: 3.4.8, 4.0.8, 4.1.0
-
Fix Version/s: Unscheduled
-
Component/s: Core CiviCRM
-
Labels:None
-
Documentation Required?:None
-
Funding Source:Needs Funding
Description
*Steps to reproduce*
1. Install Mollom and set captcha on user registration form
2. Create civicrm contribution and require Drupal user creation
3. Complete form logged out, attempt to create Drupal account
*What happens*
Redirected to front page with error "Word verification field required."
*What was expected*
Would be taken through the final screen of the contribution process and Drupal account would have been created.
*Discussion*
There's been some discussion here (http://forum.civicrm.org/index.php/topic,7835.msg98791.html#msg98791) where I've tied to explain the cause of this bug. Basically, civi is bizarrely loading up the user Drupal user registration form, inputting the username and email address in the $form_state array, and the 'faking' a Drupal form submission. Then it is directly querying the database to see if this faked form submission created a Drupal user. However, if the requirements of the form are changed (eg. new, required fields added via hook_form_alter() ), then this process will fail as Civi will still only be inputting the username and email address. This is why it breaks when Mollom is installed.
The solution is to directly call the appropriate Drupal user functions.