/** * 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; }
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; }