diff options
author | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-06-25 18:04:12 +0000 |
---|---|---|
committer | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-06-25 18:04:12 +0000 |
commit | 9cdb242250336005002e7cc7ffa4d8c3316db30b (patch) | |
tree | c58702523ee6171b716f8d9c9de3b9485cabaf05 /engine | |
parent | 1feb73166aae32c77db23812802f995cdcb34358 (diff) | |
download | elgg-9cdb242250336005002e7cc7ffa4d8c3316db30b.tar.gz elgg-9cdb242250336005002e7cc7ffa4d8c3316db30b.tar.bz2 |
Refs #79
git-svn-id: https://code.elgg.org/elgg/trunk@1133 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/users.php | 66 |
1 files changed, 64 insertions, 2 deletions
diff --git a/engine/lib/users.php b/engine/lib/users.php index 3bd87dbff..5dc382670 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -749,6 +749,67 @@ return get_data($query, "entity_row_to_elggstar"); } + + /** + * Generate a validation code for a given user's email address. + * + * @param int $user_guid The user id + * @param string $email_address The email address + */ + function generate_email_validation_code($user_guid, $email_address) + { + global $CONFIG; + + return md5($user_guid . $email_address . $CONFIG->site->url); // Note I bind to site URL, this is important on multisite! + } + + /** + * Send out a validation request for a given user. + * This function assumes that a user has already been created and that the email address has been + * saved in the email field in the database. + * + * @param int $user_guid The user. + * @return bool + */ + function request_email_validation($user_guid) + { + global $CONFIG; + + $user_guid = (int)$user_guid; + + $user = get_entity($user_guid); + if (($user) && ($user instanceof ElggUser)) + { + // Clear existing status + $user->validated_email = false; + + // Work out validate link + $link = $CONFIG->site->url . "action/email/confirm/?u=$user_guid&c=" . generate_email_validation_code($user_guid, $user->email); + + // Send validation email + return notify_user($user->guid, $CONFIG->site_guid, elgg_echo('email:validate:subject'), sprintf(elgg_echo('email:validate:body'), $user->username, $link), NULL, 'email'); + + } + + return false; + } + + /** + * Validate a user email address against the code provided, and if valid set the appropriate flag + * + * @param int $user_guid User GUID + * @param string $code The code provided on validation. + */ + function validate_email($user_guid, $code) + { + $user = get_entity($user_guid); + + $valid = ($code == generate_email_validation_code($user_guid, $user->email)); + if ($valid) + $user->validated_email = true; + + return $valid; + } /**
* Registers a user, returning false if the username already exists
@@ -794,10 +855,11 @@ $user->admin = true;
datalist_set('admin_registered',1);
}
+ + // Send email validation request + request_email_validation($user->getGUID()); return $user->getGUID();
-
-
}
/**
|