diff options
Diffstat (limited to 'modules/user.module')
-rw-r--r-- | modules/user.module | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/modules/user.module b/modules/user.module index af39a0a38..a62ccab94 100644 --- a/modules/user.module +++ b/modules/user.module @@ -928,7 +928,6 @@ function user_register($edit = array()) { } if ($edit) { - $edit['roles'] = array(_user_authenticated_id()); // needed for validation user_module_invoke('validate', $edit, $edit, 'account'); if (!form_get_errors()) { @@ -937,7 +936,7 @@ function user_register($edit = array()) { // TODO: Is this necessary? Won't session_write() replicate this? unset($edit['session']); - $account = user_save('', array('name' => $edit['name'], 'pass' => $pass, 'init' => $edit['mail'], 'mail' => $edit['mail'], 'roles' => $edit['roles'], 'status' => (variable_get('user_register', 1) == 1 ? 1 : 0))); + $account = user_save('', array('name' => $edit['name'], 'pass' => $pass, 'init' => $edit['mail'], 'mail' => $edit['mail'], 'roles' => array(_user_authenticated_id()), 'status' => (variable_get('user_register', 1) == 1 ? 1 : 0))); watchdog('user', t('New user: %name %e-mail.', array('%name' => '<em>'. $edit['name'] .'</em>', '%e-mail' => '<em><'. $edit['mail'] .'></em>')), l(t('edit'), 'user/'. $account->uid .'/edit')); $variables = array('%username' => $edit['name'], '%site' => variable_get('site_name', 'drupal'), '%password' => $pass, '%uri' => $base_url, '%uri_brief' => substr($base_url, strlen('http://')), '%mailto' => $edit['mail'], '%date' => format_date(time()), '%login_uri' => url('user/login', NULL, NULL, TRUE), '%edit_uri' => url('user/'. $account->uid .'/edit', NULL, NULL, TRUE)); @@ -1043,7 +1042,7 @@ function user_edit_validate($uid, &$edit) { } // Validate the roles - if (!$edit['roles']) { + if (user_access('administer users') && !$edit['roles']) { form_set_error('roles', t('You must select at least one role.')); $edit['roles'] = array(); } @@ -1271,12 +1270,14 @@ function user_configure_settings() { function user_admin_create($edit = array()) { if ($edit) { + // Because the admin form doesn't have roles selection they need to be set to validate properly + $edit['roles'] = array(_user_authenticated_id()); user_module_invoke('validate', $edit, $edit, 'account'); if (!form_get_errors()) { watchdog('user', t('New user: %name %e-mail.', array('%name' => '<em>'. $edit['name'] .'</em>', '%e-mail' => '<em><'. $edit['mail'] .'></em>'))); - user_save('', array('name' => $edit['name'], 'pass' => $edit['pass'], 'init' => $edit['mail'], 'mail' => $edit['mail'], 'roles' => array(_user_authenticated_id()), 'status' => 1)); + user_save('', array('name' => $edit['name'], 'pass' => $edit['pass'], 'init' => $edit['mail'], 'mail' => $edit['mail'], 'roles' => $edit['roles'], 'status' => 1)); drupal_set_message(t('Created a new user account. No e-mail has been sent.')); |