function flickr_contacts_purge_contacts(&$user)
{
    $cluster_id = $user['cluster_id'];
    $enc_id = AddSlashes($user['id']);
    $sql = "DELETE FROM FlickrContacts WHERE user_id='{$enc_id}'";
    $rsp = db_write_users($cluster_id, $sql);
    return $rsp;
}
function flickr_geobookmarks_purge_for_user(&$user)
{
    $cluster_id = $user['cluster_id'];
    $enc_id = AddSlashes($user['id']);
    $sql = "DELETE FROM FlickrGeoBookmarks WHERE user_id='{$enc_id}'";
    $rsp = db_write_users($cluster_id, $sql);
    return $rsp;
}
function flickr_push_photos_purge()
{
    $now = time();
    $then = $now - 60 * 60 * 24;
    $enc_then = AddSlashes($then);
    $sql = "DELETE FROM FlickrPushPhotos WHERE created < {$enc_then}";
    foreach ($GLOBALS['cfg']['db_users']['host'] as $cluster_id => $ignore) {
        db_write_users($cluster_id, $sql);
    }
}
function flickr_push_subscriptions_delete(&$subscription)
{
    $user = users_get_by_id($subscription['user_id']);
    $cluster_id = $user['cluster_id'];
    $enc_id = AddSlashes($subscription['id']);
    $sql = "DELETE FROM FlickrPushSubscriptions WHERE id='{$enc_id}'";
    $rsp = db_write_users($cluster_id, $sql);
    if ($rsp['ok']) {
        _flickr_push_subscriptions_purge_cache_keys($subscription);
    }
    return $rsp;
}
示例#5
0
function sheets_delete_sheet(&$sheet)
{
    #
    # Figure out where the sheet is stored
    #
    loadlib("archive");
    $archive_path = archive_path_for_sheet($sheet);
    #
    export_cache_purge_sheet($sheet);
    #
    # Purge search
    #
    dots_search_remove_sheet($sheet);
    dots_search_extras_remove_sheet($sheet);
    #
    # Okay, go
    #
    $user = users_get_by_id($sheet['user_id']);
    $enc_id = AddSlashes($sheet['id']);
    $sql = "SELECT * FROM Dots WHERE sheet_id='{$enc_id}'";
    $more = array('page' => 1, 'per_page' => 1000);
    $page_count = null;
    $total_count = null;
    $dots_deleted = 0;
    while (!isset($page_count) || $page_count >= $more['page']) {
        $rsp = db_fetch_paginated_users($user['cluster_id'], $sql, $more);
        if (!$rsp['ok']) {
            $rsp['dots_deleted'] = $dots_deleted;
            $rsp['dots_count'] = $total_count;
            return $rsp;
        }
        if (!isset($page_count)) {
            $page_count = $rsp['pagination']['page_count'];
            $total_count = $rsp['pagination']['total_count'];
        }
        foreach ($rsp['rows'] as $dot) {
            $dot_more = array('skip_update_sheet' => 1, 'skip_update_search' => 1);
            $dot_rsp = dots_delete_dot($dot, $dot_more);
            if ($dot_rsp['ok']) {
                $dots_deleted++;
            }
        }
        $more['page']++;
    }
    $sql = "DELETE FROM Sheets WHERE id='{$enc_id}'";
    $rsp = db_write_users($user['cluster_id'], $sql);
    # Dot specific caches are purged above when we call
    # dots_delete_dot.
    $cache_keys = array("sheet_{$sheet['id']}", "sheets_counts_for_user_{$sheet['user_id']}", "sheets_counts_for_user_{$sheet['user_id']}_public");
    foreach ($cache_keys as $key) {
        cache_unset($key);
    }
    #
    # Update the lookup table
    #
    $update = array('deleted' => time());
    $lookup_rsp = sheets_lookup_update($sheet, $update);
    if (!$lookup_rsp['ok']) {
        # what?
    }
    #
    # Remove the upload (if any)
    #
    if (file_exists($archive_path)) {
        $ok = unlink($archive_path);
        # if not $ok then what?
    }
    # Remove any cache exports
    export_cache_purge_sheet($sheet);
    #
    # Happy happy!
    #
    $rsp['dots_deleted'] = $dots_deleted;
    $rsp['dots_count'] = $total_count;
    return $rsp;
}
示例#6
0
function dots_delete_dot(&$dot, $more = array())
{
    #
    # Update the search and extras table (check to see that
    # we haven't already done this, for example if we're in
    # the process of deleting a user or a sheet)
    #
    if (!isset($more['skip_update_search'])) {
        $search_rsp = dots_search_remove_dot($dot);
        if (!$search_rsp['ok']) {
            # What?
        }
        $extras_rsp = dots_search_extras_remove_dot($dot);
        if (!$extras_rsp['ok']) {
            # What?
        }
    }
    #
    # Okay. Let's start deleting the dot itself!
    #
    $user = users_get_by_id($dot['user_id']);
    $enc_id = AddSlashes($dot['id']);
    $sql = "DELETE FROM Dots WHERE id='{$enc_id}'";
    $rsp = db_write_users($user['cluster_id'], $sql);
    if (!$rsp['ok']) {
        return $rsp;
    }
    if (!isset($more['skip_update_sheet'])) {
        $sheet = sheets_get_sheet($dot['sheet_id']);
        $rsp2 = sheets_update_dot_count_for_sheet($sheet);
        $rsp['update_sheet_count'] = $rsp2['ok'];
    }
    #
    # Update the extras table
    #
    $extras_rsp = dots_search_extras_remove_dot($dot);
    if (!$extras_rsp['ok']) {
        # What?
    }
    #
    # Update the lookup table
    #
    $lookup_update = array('deleted' => time());
    $lookup_rsp = dots_lookup_update($dot, $lookup_update);
    if (!$lookup_rsp['ok']) {
        # What?
    }
    #
    if ($rsp['ok']) {
        $cache_keys = array("dot_{$dot['id']}", "dot_bookends_{$dot['id']}", "dot_bookends_{$dot['id']}_public", "dots_for_sheet_{$dot['sheet_id']}", "dots_for_sheet_{$dot['sheet_id']}_public", "dots_count_for_sheet_{$dot['sheet_id']}", "sheet_extent_{$dot['sheet_id']}", "sheet_extent_{$dot['sheet_id']}_public");
        foreach ($cache_keys as $key) {
            cache_unset($key);
        }
    }
    return $rsp;
}