function delete_user($id) { $user = get_user($id); if (!$user) { throw new Exception("No such user {$id}"); } crypto_log("Deleting user " . ($user ? htmlspecialchars(print_r($user, true)) : "<i>(phantom)</i>")); // go through all accounts $already_done = array(); foreach (account_data_grouped() as $label => $accounts) { foreach ($accounts as $key => $account) { if ($account['table'] != 'graphs' && !isset($already_done[$account['table']])) { delete_from($account['table']); $already_done[$account['table']] = 1; } } } delete_from('balances'); delete_from('address_balances'); delete_from('hashrates'); delete_from('securities'); delete_from('offsets'); delete_from('summary_instances'); delete_from('summaries'); delete_from('graph_data_summary'); delete_from('graph_data_balances'); delete_from('pending_subscriptions'); // delete graphs crypto_log("Deleting graphs..."); $q = db()->prepare("SELECT * FROM graph_pages WHERE user_id=?"); $q->execute(array($user['id'])); $pages = $q->fetchAll(); foreach ($pages as $page) { $q = db()->prepare("DELETE FROM graphs WHERE page_id=?"); $q->execute(array($page['id'])); crypto_log("(" . number_format($q->rowCount()) . " rows deleted)"); } delete_from('graph_pages'); delete_from('managed_graphs'); crypto_log("Deleting user_properties..."); $q = db()->prepare("DELETE FROM user_properties WHERE id=?"); $q->execute(array($user['id'])); crypto_log("(" . number_format($q->rowCount()) . " rows deleted)"); // finally delete the user object crypto_log("Deleting user..."); $user = Users\User::findUser(db(), $user['id']); $user->delete(db()); }
function deleteUser($user) { $user_instance = Users\User::findUser(db(), $user['id']); if ($user_instance) { $user_instance->delete(db()); } $q = db()->prepare("DELETE FROM user_properties WHERE id=?"); $q->execute(array($user['id'])); $q = db()->prepare("DELETE FROM notifications_ticker WHERE id IN (SELECT type_id FROM notifications WHERE user_id=? AND notification_type='ticker')"); $q->execute(array($user['id'])); $q = db()->prepare("DELETE FROM notifications WHERE user_id=?"); $q->execute(array($user['id'])); $q = db()->prepare("DELETE FROM jobs WHERE user_id=?"); $q->execute(array($user['id'])); $q = db()->prepare("DELETE FROM summaries WHERE user_id=?"); $q->execute(array($user['id'])); $q = db()->prepare("DELETE FROM summary_instances WHERE user_id=?"); $q->execute(array($user['id'])); $q = db()->prepare("DELETE FROM balances WHERE user_id=?"); $q->execute(array($user['id'])); }