예제 #1
0
/**
 * Set the user's email to the given string after checking that it is a valid email
 * @param integer $p_user_id A valid user identifier.
 * @param string  $p_email   An email address to set.
 * @return boolean
 */
function user_set_email($p_user_id, $p_email)
{
    $p_email = trim($p_email);
    email_ensure_valid($p_email);
    email_ensure_not_disposable($p_email);
    $t_old_email = user_get_email($p_user_id);
    if (strcasecmp($t_old_email, $p_email) != 0) {
        user_ensure_email_unique($p_email);
    }
    return user_set_field($p_user_id, 'email', $p_email);
}
예제 #2
0
user_ensure_name_valid($f_username);
$t_ldap = LDAP == config_get('login_method');
if ($t_ldap && config_get('use_ldap_realname')) {
    $t_realname = ldap_realname_from_username($f_username);
} else {
    # strip extra space from real name
    $t_realname = string_normalize($f_realname);
    user_ensure_realname_unique($t_old_username, $t_realname);
}
if ($t_ldap && config_get('use_ldap_email')) {
    $t_email = ldap_email($f_user_id);
} else {
    $t_email = trim($f_email);
    email_ensure_valid($t_email);
    email_ensure_not_disposable($t_email);
    user_ensure_email_unique($t_email, $f_user_id);
}
$c_email = $t_email;
$c_username = $f_username;
$c_realname = $t_realname;
$c_protected = (bool) $f_protected;
$c_enabled = (bool) $f_enabled;
$c_user_id = (int) $f_user_id;
$c_access_level = (int) $f_access_level;
$t_old_protected = $t_user['protected'];
# Ensure that users aren't escalating privileges of accounts beyond their
# own global access level.
access_ensure_global_level($f_access_level);
# check that we are not downgrading the last administrator
$t_admin_threshold = config_get_global('admin_site_threshold');
if (user_is_administrator($f_user_id) && user_count_level($t_admin_threshold, true) <= 1) {