Merge pull request #22307 from owncloud/remove-notification-on-unshare-and-on-errors

Remove notification on unshare and on errors
This commit is contained in:
Thomas Müller 2016-02-11 14:02:44 +01:00
commit 4d24929e05
3 changed files with 17 additions and 4 deletions

View File

@ -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/');

View File

@ -225,6 +225,13 @@ class Server2Server {
$path = trim($share['name'], '/');
}
$notificationManager = \OC::$server->getNotificationManager();
$notification = $notificationManager->createNotification();
$notification->setApp('files_sharing')
->setUser($share['user'])
->setObject('remote_share', (int) $share['id']);
$notificationManager->markProcessed($notification);
\OC::$server->getActivityManager()->publishActivity(
Activity::FILES_SHARING_APP, Activity::SUBJECT_REMOTE_SHARE_UNSHARED, array($owner, $path), '', array(),
'', '', $user, Activity::TYPE_REMOTE_SHARE, Activity::PRIORITY_MEDIUM);

View File

@ -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)