summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2016-02-11 10:11:42 +0100
committerJoas Schilling <nickvergessen@owncloud.com>2016-02-11 10:41:55 +0100
commit2263b8b6937313500e29f9b00c8e36f1121bb054 (patch)
tree7ce94a108ac8035b1fb516fb817cff74962ef2ec
parent5165998723925b414f688021aeaa8b90a844a918 (diff)
downloadnextcloud-server-2263b8b6937313500e29f9b00c8e36f1121bb054.tar.gz
nextcloud-server-2263b8b6937313500e29f9b00c8e36f1121bb054.zip
Remove the notification if accepting/declining failed because of 404
-rw-r--r--apps/files_sharing/api/remote.php8
-rw-r--r--apps/files_sharing/lib/external/manager.php6
2 files changed, 10 insertions, 4 deletions
diff --git a/apps/files_sharing/api/remote.php b/apps/files_sharing/api/remote.php
index 4b7192994a7..8b47955b51e 100644
--- a/apps/files_sharing/api/remote.php
+++ b/apps/files_sharing/api/remote.php
@@ -67,6 +67,9 @@ class Remote {
return new \OC_OCS_Result();
}
+ // Make sure the user has no notification for something that does not exist anymore.
+ $externalManager->processNotification((int) $params['id']);
+
return new \OC_OCS_Result(null, 404, "wrong share ID, share doesn't exist.");
}
@@ -90,12 +93,15 @@ class Remote {
return new \OC_OCS_Result();
}
+ // Make sure the user has no notification for something that does not exist anymore.
+ $externalManager->processNotification((int) $params['id']);
+
return new \OC_OCS_Result(null, 404, "wrong share ID, share doesn't exist.");
}
/**
* @param array $share Share with info from the share_external table
- * @return enriched share info with data from the filecache
+ * @return array enriched share info with data from the filecache
*/
private static function extendShareInfo($share) {
$view = new \OC\Files\View('/' . \OC_User::getUser() . '/files/');
diff --git a/apps/files_sharing/lib/external/manager.php b/apps/files_sharing/lib/external/manager.php
index 21729d326e5..84de1da69f6 100644
--- a/apps/files_sharing/lib/external/manager.php
+++ b/apps/files_sharing/lib/external/manager.php
@@ -194,7 +194,7 @@ class Manager {
\OC_Hook::emit('OCP\Share', 'federated_share_added', ['server' => $share['remote']]);
- $this->scrapNotification($id);
+ $this->processNotification($id);
return true;
}
@@ -217,7 +217,7 @@ class Manager {
$removeShare->execute(array($id, $this->uid));
$this->sendFeedbackToRemote($share['remote'], $share['share_token'], $share['remote_id'], 'decline');
- $this->scrapNotification($id);
+ $this->processNotification($id);
return true;
}
@@ -227,7 +227,7 @@ class Manager {
/**
* @param int $remoteShare
*/
- protected function scrapNotification($remoteShare) {
+ public function processNotification($remoteShare) {
$filter = $this->notificationManager->createNotification();
$filter->setApp('files_sharing')
->setUser($this->uid)