#73810 by hunmonk, remove code duplication between user edit and user register processes

5.x
Neil Drumm 2006-07-18 07:43:09 +00:00
parent 41f4557e7f
commit a73303a882
1 changed files with 36 additions and 47 deletions

View File

@ -1123,6 +1123,8 @@ function user_register() {
drupal_goto('user/'. $user->uid);
}
$form = array();
// Display the registration form.
if (!$admin) {
$form['user_registration_help'] = array('#type' => 'markup', '#value' => filter_xss_admin(variable_get('user_registration_help', '')));
@ -1132,37 +1134,10 @@ function user_register() {
$affiliates = implode(', ', $affiliates);
$form['affiliates'] = array('#type' => 'markup', '#value' => '<p>'. t('Note: if you have an account with one of our affiliates (%s), you may <a href="%login_uri">login now</a> instead of registering.', array('%s' => $affiliates, '%login_uri' => url('user'))) .'</p>');
}
$form['name'] = array('#type' => 'textfield',
'#title' => t('Username'),
'#size' => 30,
'#maxlength' => 60,
'#description' => t('Your full name or your preferred username; only letters, numbers and spaces are allowed.'),
'#required' => TRUE);
$form['mail'] = array('#type' => 'textfield',
'#title' => t('E-mail address'),
'#size' => 30,
'#maxlength' => 64,
'#description' => t('A password and instructions will be sent to this e-mail address, so make sure it is accurate.'),
'#required' => TRUE,
);
// Merge in the default user edit fields.
$form = array_merge($form, user_edit_form(NULL, NULL, TRUE));
if ($admin) {
$form['pass'] = array('#type' => 'password',
'#title' => t('Password'),
'#size' => 30,
'#description' => t('Provide a password for the new account.'),
'#required' => TRUE,
);
$roles = user_roles(1);
unset($roles[DRUPAL_AUTHENTICATED_RID]);
if ($roles) {
$form['roles'] = array('#type' => 'checkboxes',
'#title' => t('Roles'),
'#default_value' => array_keys((array)$edit['roles']),
'#options' => $roles,
'#description' => t('The user receives the combined permissions of the authenticated user role and all roles selected here.')
);
}
$form['notify'] = array(
$form['account']['notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user of new account')
);
@ -1171,15 +1146,17 @@ function user_register() {
}
$extra = _user_forms($null, $null, $null, 'register');
// Only display form_group around default fields if there are other groups.
if ($extra) {
$form['account'] = array('#type' => 'fieldset', '#title' => t('Account information'));
$form['account']['name'] = $form['name'];
$form['account']['mail'] = $form['mail'];
$form['account']['pass'] = $form['pass'];
$form['account']['roles'] = $form['roles'];
$form['account']['notify'] = $form['notify'];
unset($form['name'], $form['mail'], $form['pass'], $form['roles'], $form['notify']);
// Remove form_group around default fields if there are no other groups.
if (!$extra) {
$form['name'] = $form['account']['name'];
$form['mail'] = $form['account']['mail'];
$form['pass'] = $form['account']['pass'];
$form['status'] = $form['account']['status'];
$form['roles'] = $form['account']['roles'];
$form['notify'] = $form['account']['notify'];
unset($form['account']);
}
else {
$form = array_merge($form, $extra);
}
$form['submit'] = array('#type' => 'submit', '#value' => t('Create new account'), '#weight' => 30);
@ -1259,12 +1236,14 @@ function user_register_submit($form_id, $form_values) {
}
}
function user_edit_form($uid, $edit) {
function user_edit_form($uid, $edit, $register = FALSE) {
$admin = user_access('administer users');
// Account information:
$form['account'] = array('#type' => 'fieldset',
'#title' => t('Account information'),
);
if (user_access('change own username') || user_access('administer users')) {
if (user_access('change own username') || $admin) {
$form['account']['name'] = array('#type' => 'textfield',
'#title' => t('Username'),
'#default_value' => $edit['name'],
@ -1280,12 +1259,22 @@ function user_edit_form($uid, $edit) {
'#description' => t('Insert a valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.'),
'#required' => TRUE,
);
if (!$register) {
$form['account']['pass'] = array('#type' => 'password_confirm',
'#title' => t('Password'),
'#description' => t('To change the current user password, enter the new password in both fields.'),
);
if (user_access('administer users')) {
$form['account']['status'] = array('#type' => 'radios', '#title' => t('Status'), '#default_value' => $edit['status'], '#options' => array(t('Blocked'), t('Active')));
}
elseif ($register && $admin) {
$form['account']['pass'] = array('#type' => 'password',
'#title' => t('Password'),
'#size' => 30,
'#description' => t('Provide a password for the new account.'),
'#required' => TRUE,
);
}
if ($admin) {
$form['account']['status'] = array('#type' => 'radios', '#title' => t('Status'), '#default_value' => isset($edit['status']) ? $edit['status'] : 1, '#options' => array(t('Blocked'), t('Active')));
}
if (user_access('administer access control')) {
$roles = user_roles(1);