Ejemplo n.º 1
0
/**
 * Request user validation email.
 * Send email out to the address and request a confirmation.
 *
 * @param int  $user_guid       The user's GUID
 * @param bool $admin_requested Was it requested by admin
 * @return mixed
 */
function uservalidationbyemail_request_validation($user_guid, $admin_requested = FALSE)
{
    $site = elgg_get_site_entity();
    $user_guid = (int) $user_guid;
    $user = get_entity($user_guid);
    if ($user && $user instanceof ElggUser) {
        // Work out validate link
        $code = uservalidationbyemail_generate_code($user_guid, $user->email);
        $link = "{$site->url}uservalidationbyemail/confirm?u={$user_guid}&c={$code}";
        // Send validation email
        $subject = elgg_echo('email:validate:subject', array($user->name, $site->name));
        $body = '<div style="color:#333;font-size:16px;">' . elgg_echo('email:validate:body', array($user->name, $link, $user->getURL())) . '</div>';
        //$body = elgg_echo('email:validate:body', array($user->name, $site->name, $link, $site->name, $site->url));
        //$result = notify_user($user->guid, $site->guid, $subject, $body, NULL, 'email');
        $result = zhgroups_send_email($site->name, $user->email, $subject, $body);
        if ($result && !$admin_requested) {
            system_message(elgg_echo('uservalidationbyemail:registerok'));
        }
        return $result;
    }
    return FALSE;
}
Ejemplo n.º 2
0
 * NOTE: This is different to the "reset password" link users
 * can use in that it does not first email the user asking if
 * they want to have their password reset.
 *
 * @package Elgg.Core
 * @subpackage Administration.User
 */
$guid = get_input('guid');
$user = get_entity($guid);
if ($user instanceof ElggUser && $user->canEdit()) {
    $password = generate_random_cleartext_password();
    // Always reset the salt before generating the user password.
    $user->salt = _elgg_generate_password_salt();
    $user->password = generate_user_password($user, $password);
    if ($user->save()) {
        system_message(elgg_echo('admin:user:resetpassword:yes'));
        /*notify_user($user->guid,
        		elgg_get_site_entity()->guid,
        		elgg_echo('email:resetpassword:subject'),
        		elgg_echo('email:resetpassword:body', array($user->username, $password)),
        		NULL,
        		'email');*/
        $site_name = elgg_get_site_entity()->name;
        zhgroups_send_email($site_name, $user->email, elgg_echo('email:resetpassword:subject', array($site_name)), '<div style="color:#333;font-size:16px;">' . elgg_echo('email:resetpassword:body', array($user->username, $password)) . '</div>');
    } else {
        register_error(elgg_echo('admin:user:resetpassword:no'));
    }
} else {
    register_error(elgg_echo('admin:user:resetpassword:no'));
}
forward(REFERER);
Ejemplo n.º 3
0
/**
 * Invite a new user by email to a group
 *
 * @param $user     invitation sender
 * @param $entity   the group or event to be invited for
 * @param string    $email  the email address to be invited
 * @param string    $text   (optional) extra text in the invitation
 *
 * @return boolean|NULL true is invited, false on failure, null when already send
 */
function send_invite_email($user, $entity, $email, $text = "")
{
    $result = false;
    if (empty($email)) {
        elgg_log("ZHError, send_invite_email, email is empty", "ERROR");
        return $result;
    }
    if (!is_email_address($email)) {
        elgg_log("ZHError, send_invite_email, email is invalid, email {$email}", "ERROR");
        return $result;
    }
    if (empty($entity)) {
        elgg_log("ZHError, send_invite_email, entity is empty", "ERROR");
        return $result;
    }
    if ($entity instanceof ElggGroup) {
        $senderName = $entity->name;
    } else {
        if ($entity instanceof Zhaohu) {
            $senderName = $entity->title;
        } else {
            elgg_log("ZHError, send_invite_email, entity is invalid entity id {$entity->guid}", "ERROR");
            return $result;
        }
    }
    $subject = elgg_echo("zhaohu:invite:email:subject", array($user->name, $senderName));
    $body = '<div style="color:#333;font-size:16px;">' . elgg_echo("zhaohu:invite:email:body", array($user->getURL(), $user->name, $entity->getURL(), $senderName, $user->name, $text)) . '</div>';
    //$body = elgg_trigger_plugin_hook("invite_notification", "zhgroups", $params, $body);
    //for debug register_error("senderName {$senderName}, email {$email}, subjec {$subject}");
    //for debug register_error("body {$body}");
    $result = zhgroups_send_email($senderName, $email, $subject, $body, '');
    return $result;
}
Ejemplo n.º 4
0
function zhsite_send_email_to_user($to_user, $subject, $message, $is_notificiation)
{
    if ($is_notificiation) {
        if ($notification_settings = get_user_notification_settings($to_user->guid)) {
            if (!$notification_settings->email) {
                return false;
            }
        } else {
            elgg_log("ZHError ,zhsite_send_email_to_user, error calling get_user_notification_settings, to_user_id {$to_user->guid}, " . "logged_user_id " . elgg_get_logged_in_user_guid(), "ERROR");
            return false;
        }
    }
    $end = zhaohuEmailUnsubEnd(null, $to_user->guid, $is_notificiation, false);
    $to_email = $to_user->name . "<" . $to_user->email . ">";
    return zhgroups_send_email(elgg_get_site_entity()->name, $to_email, $subject, $message, $end);
}
Ejemplo n.º 5
0
/**
 * Validate and execute a password reset for a user.
 *
 * @param int    $user_guid The user id
 * @param string $conf_code Confirmation code as sent in the request email.
 *
 * @return mixed
 */
function execute_new_password_request($user_guid, $conf_code)
{
    global $CONFIG;
    $user_guid = (int) $user_guid;
    $user = get_entity($user_guid);
    if ($user instanceof ElggUser) {
        $saved_code = $user->getPrivateSetting('passwd_conf_code');
        if ($saved_code && $saved_code == $conf_code) {
            $password = generate_random_cleartext_password();
            if (force_user_password_reset($user_guid, $password)) {
                remove_private_setting($user_guid, 'passwd_conf_code');
                // clean the logins failures
                reset_login_failure_count($user_guid);
                $email = '<div style="color:#333;font-size:16px;">' . elgg_echo('email:resetpassword:body', array($user->name, $password)) . '</div>';
                //return notify_user($user->guid, $CONFIG->site->guid,
                //	elgg_echo('email:resetpassword:subject'), $email, array(), 'email');
                $site_name = elgg_get_site_entity()->name;
                return zhgroups_send_email($site_name, $user->email, elgg_echo('email:resetpassword:subject', array($site_name)), $email);
            }
        }
    }
    return FALSE;
}