/** * Register a user in Elgg based on information provided by the Service Provider (SP). * * @param string $name the (display)name of the new user * @param string $email the email address of the user * @param string $saml_source the name of the SP this information came from * @param bool $validate do we need to validate the email address of this new users * @param string $username the username provided by the SP (optional) * * @return bool|ElggUser the new user, false on failure */ function simplesaml_register_user($name, $email, $saml_source, $validate = false, $username = "") { $result = false; if (!empty($name) && !empty($email) && !empty($saml_source)) { // check which username to use if (!empty($username)) { // make sure the username is unique $username = simplesaml_generate_unique_username($username); } else { // create a username from email $username = simplesaml_generate_username_from_email($email); } if (!empty($username)) { // generate a random password $password = generate_random_cleartext_password(); try { $user_guid = register_user($username, $password, $name, $email); if (!empty($user_guid)) { $new_user = get_user($user_guid); if (!$validate) { // no need for extra validation. We trust this user elgg_set_user_validation_status($new_user->getGUID(), true, "simplesaml"); } $params = array("user" => $new_user, "password" => $password, "friend_guid" => null, "invitecode" => null); if (!elgg_trigger_plugin_hook("register", "user", $params, true)) { register_error(elgg_echo("registerbad")); } else { $result = $new_user; } } } catch (Exception $e) { register_error($e->getMessage()); } } else { register_error(elgg_echo("registration:usernamenotvalid")); } } return $result; }
/** * Register a user in Elgg based on information provided by the Service Provider (SP). * * @param string $name the (display)name of the new user * @param string $email the email address of the user * @param string $saml_source the name of the SP this information came from * @param bool $validate do we need to validate the email address of this new users * @param string $username the username provided by the SP (optional) * * @return false|ElggUser */ function simplesaml_register_user($name, $email, $saml_source, $validate = false, $username = '') { if (empty($name) || empty($email) || empty($saml_source)) { return false; } // check which username to use if (!empty($username)) { // make sure the username is unique $username = simplesaml_generate_unique_username($username); } else { // create a username from email $username = simplesaml_generate_username_from_email($email); } if (empty($username)) { register_error(elgg_echo("registration:usernamenotvalid")); return false; } // generate a random password $password = generate_random_cleartext_password(); try { $user_guid = register_user($username, $password, $name, $email); if (empty($user_guid)) { return false; } $new_user = get_user($user_guid); if (!$validate) { // no need for extra validation. We trust this user elgg_set_user_validation_status($new_user->getGUID(), true, 'simplesaml'); } $params = ['user' => $new_user, 'password' => $password, 'friend_guid' => null, 'invitecode' => null]; if (!elgg_trigger_plugin_hook('register', 'user', $params, true)) { register_error(elgg_echo('registerbad')); } else { return $new_user; } } catch (Exception $e) { register_error($e->getMessage()); } return false; }