diff options
Diffstat (limited to 'actions/useradd.php')
| -rw-r--r-- | actions/useradd.php | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/actions/useradd.php b/actions/useradd.php index 71fc3cd63..17459021b 100644 --- a/actions/useradd.php +++ b/actions/useradd.php @@ -4,17 +4,14 @@ * * @package Elgg * @subpackage Core - * @author Curverider Ltd - * @link http://elgg.org/ */ -admin_gatekeeper(); // Only admins can add a user +elgg_make_sticky_form('useradd'); // Get variables -global $CONFIG; $username = get_input('username'); -$password = get_input('password'); -$password2 = get_input('password2'); +$password = get_input('password', null, false); +$password2 = get_input('password2', null, false); $email = get_input('email'); $name = get_input('name'); @@ -23,23 +20,45 @@ if (is_array($admin)) { $admin = $admin[0]; } +// no blank fields +if ($username == '' || $password == '' || $password2 == '' || $email == '' || $name == '') { + register_error(elgg_echo('register:fields')); + forward(REFERER); +} + +if (strcmp($password, $password2) != 0) { + register_error(elgg_echo('RegistrationException:PasswordMismatch')); + forward(REFERER); +} + // For now, just try and register the user try { - $guid = register_user($username, $password, $name, $email, true); + $guid = register_user($username, $password, $name, $email, TRUE); - if (((trim($password) != "") && (strcmp($password, $password2)==0)) && ($guid)) { + if ($guid) { $new_user = get_entity($guid); - if (($guid) && ($admin)) { - $new_user->admin = 'yes'; + if ($new_user && $admin && elgg_is_admin_logged_in()) { + $new_user->makeAdmin(); } - $new_user->admin_created = true; - $new_user->created_by_guid = get_loggedin_userid(); - set_user_validation_status($new_user->getGUID(), TRUE, 'admin_created'); + elgg_clear_sticky_form('useradd'); + + $new_user->admin_created = TRUE; + // @todo ugh, saving a guid as metadata! + $new_user->created_by_guid = elgg_get_logged_in_user_guid(); + + $subject = elgg_echo('useradd:subject'); + $body = elgg_echo('useradd:body', array( + $name, + elgg_get_site_entity()->name, + elgg_get_site_entity()->url, + $username, + $password, + )); - notify_user($new_user->guid, $CONFIG->site->guid, elgg_echo('useradd:subject'), sprintf(elgg_echo('useradd:body'), $name, $CONFIG->site->name, $CONFIG->site->url, $username, $password)); + notify_user($new_user->guid, elgg_get_site_entity()->guid, $subject, $body); - system_message(sprintf(elgg_echo("adduser:ok"),$CONFIG->sitename)); + system_message(elgg_echo("adduser:ok", array(elgg_get_site_entity()->name))); } else { register_error(elgg_echo("adduser:bad")); } @@ -47,5 +66,4 @@ try { register_error($r->getMessage()); } -forward($_SERVER['HTTP_REFERER']); -exit; +forward(REFERER); |
