Example #1
0
/**
 * delete a user account (account, profiles, preferences, project-specific access levels)
 * returns true when the account was successfully deleted
 *
 * @param integer $p_user_id A valid user identifier.
 * @return boolean Always true
 */
function user_delete($p_user_id)
{
    $c_user_id = (int) $p_user_id;
    user_ensure_unprotected($p_user_id);
    # Remove associated profiles
    user_delete_profiles($p_user_id);
    # Remove associated preferences
    user_pref_delete_all($p_user_id);
    # Remove project specific access levels
    user_delete_project_specific_access_levels($p_user_id);
    # unset non-unique realname flags if necessary
    if (config_get('differentiate_duplicates')) {
        $c_realname = user_get_field($p_user_id, 'realname');
        $t_query = 'SELECT id FROM {user} WHERE realname=' . db_param();
        $t_result = db_query($t_query, array($c_realname));
        $t_users = array();
        while ($t_row = db_fetch_array($t_result)) {
            $t_users[] = $t_row;
        }
        $t_user_count = count($t_users);
        if ($t_user_count == 2) {
            # unset flags if there are now only 2 unique names
            for ($i = 0; $i < $t_user_count; $i++) {
                $t_user_id = $t_users[$i]['id'];
                user_set_field($t_user_id, 'duplicate_realname', OFF);
            }
        }
    }
    user_clear_cache($p_user_id);
    # Remove account
    $t_query = 'DELETE FROM {user} WHERE id=' . db_param();
    db_query($t_query, array($c_user_id));
    return true;
}
Example #2
0
function user_delete($p_user_id)
{
    $c_user_id = db_prepare_int($p_user_id);
    $t_user_table = config_get('mantis_user_table');
    user_ensure_unprotected($p_user_id);
    # Remove associated profiles
    user_delete_profiles($p_user_id);
    # Remove associated preferences
    user_pref_delete_all($p_user_id);
    # Remove project specific access levels
    user_delete_project_specific_access_levels($p_user_id);
    #unset non-unique realname flags if necessary
    if (config_get('differentiate_duplicates')) {
        $c_realname = db_prepare_string(user_get_field($p_user_id, 'realname'));
        $query = "SELECT id\n\t\t\t\t\tFROM {$t_user_table}\n\t\t\t\t\tWHERE realname='{$c_realname}'";
        $result = db_query($query);
        $t_count = db_num_rows($result);
        if ($t_count == 2) {
            # unset flags if there are now only 2 unique names
            for ($i = 0; $i < $t_count; $i++) {
                $t_user_id = db_result($result, $i);
                user_set_field($t_user_id, 'duplicate_realname', OFF);
            }
        }
    }
    user_clear_cache($p_user_id);
    # Remove account
    $query = "DELETE FROM {$t_user_table}\n\t\t\t\t  WHERE id='{$c_user_id}'";
    db_query($query);
    return true;
}