コード例 #1
0
ファイル: delete_user.php プロジェクト: phpsource/openclerk
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());
}
コード例 #2
0
 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']));
 }