123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- function uservalidationbyemail_generate_code($user_guid, $email_address) {
-
- $site_url = elgg_get_site_url();
- return elgg_build_hmac([(int)$user_guid, $email_address, $site_url])->getToken();
- }
- function uservalidationbyemail_request_validation($user_guid, $admin_requested = 'deprecated') {
- if ($admin_requested != 'deprecated') {
- elgg_deprecated_notice('Second param $admin_requested no more used in uservalidationbyemail_request_validation function', 1.9);
- }
- $site = elgg_get_site_entity();
- $user_guid = (int)$user_guid;
- $user = get_entity($user_guid);
- if (($user) && ($user instanceof ElggUser)) {
-
- $code = uservalidationbyemail_generate_code($user_guid, $user->email);
- $link = "{$site->url}uservalidationbyemail/confirm?u=$user_guid&c=$code";
-
- elgg_get_session()->set('emailsent', $user->email);
- $subject = elgg_echo('email:validate:subject', array(
- $user->name,
- $site->name
- ), $user->language
- );
- $body = elgg_echo('email:validate:body', array(
- $user->name,
- $site->name,
- $link,
- $site->name,
- $site->url
- ), $user->language
- );
-
- $result = notify_user($user->guid, $site->guid, $subject, $body, array(), 'email');
- return $result;
- }
- return FALSE;
- }
- function uservalidationbyemail_validate_email($user_guid, $code) {
- $user = get_entity($user_guid);
- $site_url = elgg_get_site_url();
- $matches = elgg_build_hmac([(int)$user_guid, $user->email, $site_url])->matchesToken($code);
- if (!$matches) {
- return false;
- }
- return elgg_set_user_validation_status($user_guid, true, 'email');
- }
- function uservalidationbyemail_get_unvalidated_users_sql_where() {
- $db_prefix = elgg_get_config('dbprefix');
- $validated_id = elgg_get_metastring_id('validated');
- $one_id = elgg_get_metastring_id('1');
-
- $wheres = array();
- $wheres[] = "e.enabled='no'";
- $wheres[] = "NOT EXISTS (
- SELECT 1 FROM {$db_prefix}metadata md
- WHERE md.entity_guid = e.guid
- AND md.name_id = $validated_id
- AND md.value_id = $one_id)";
- return $wheres;
- }
|