We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 6a377a4b authored by Zach Copley's avatar Zach Copley

A better way to safely delete Foreign_links

parent 029b8c90
......@@ -113,4 +113,21 @@ class Foreign_link extends Memcached_DataObject
return User::staticGet($this->user_id);
}
// Make sure we only ever delete one record at a time
function safeDelete()
{
if (!empty($this->user_id)
&& !empty($this->foreign_id)
&& !empty($this->service))
{
return $this->delete();
} else {
common_debug(LOG_WARNING,
'Foreign_link::safeDelete() tried to delete a '
. 'Foreign_link without a fully specified compound key: '
. var_export($this, true));
return false;
}
}
}
......@@ -264,16 +264,7 @@ function remove_twitter_link($flink)
common_log(LOG_INFO, 'Removing Twitter bridge Foreign link for ' .
"user $user->nickname (user id: $user->id).");
$result = false;
// Be extra careful to make sure we have a good flink
// before deleting
if (!empty($flink->user_id)
&& !empty($flink->foreign_id)
&& !empty($flink->service))
{
$result = $flink->delete();
}
$result = $flink->safeDelete();
if (empty($result)) {
common_log(LOG_ERR, 'Could not remove Twitter bridge ' .
......
......@@ -278,7 +278,7 @@ class TwitterauthorizationAction extends Action
$result = $flink->find(true);
if (!empty($result)) {
$flink->delete();
$flink->safeDelete();
}
$flink->user_id = $user_id;
......
......@@ -250,16 +250,7 @@ class TwittersettingsAction extends ConnectSettingsAction
$user = common_current_user();
$flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE);
$result = false;
// Be extra careful to make sure we have a good flink
// before deleting
if (!empty($flink->user_id)
&& !empty($flink->foreign_id)
&& !empty($flink->service))
{
$result = $flink->delete();
}
$result = $flink->safeDelete();
if (empty($result)) {
common_log_db_error($flink, 'DELETE', __FILE__);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment