summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-09-25 13:48:33 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2015-09-25 13:48:33 +0200
commit2c37d5f7d81df2375febcb2d0025ef52ef7c74ff (patch)
tree3d59a04787fbcfb52dfbdede04235ff87ba23512
parent57b2778053f46f8a2fd1f29d8634ffb7f109fcb6 (diff)
parent2e1cfe03e9039c6a8257e56e5898a29522c86ea9 (diff)
downloadnextcloud-server-2c37d5f7d81df2375febcb2d0025ef52ef7c74ff.tar.gz
nextcloud-server-2c37d5f7d81df2375febcb2d0025ef52ef7c74ff.zip
Merge pull request #13145 from owncloud/issue/11951-activity-sharing-email
Publish an activity when sending a share link via email
-rw-r--r--apps/files_sharing/lib/activity.php8
-rw-r--r--core/ajax/share.php31
2 files changed, 39 insertions, 0 deletions
diff --git a/apps/files_sharing/lib/activity.php b/apps/files_sharing/lib/activity.php
index 1257e7a445c..63ac2e90b2a 100644
--- a/apps/files_sharing/lib/activity.php
+++ b/apps/files_sharing/lib/activity.php
@@ -58,6 +58,7 @@ class Activity implements IExtension {
const SUBJECT_RESHARED_GROUP_BY = 'reshared_group_by';
const SUBJECT_RESHARED_LINK_BY = 'reshared_link_by';
const SUBJECT_RESHARED_USER_BY = 'reshared_user_by';
+ const SUBJECT_SHARED_EMAIL = 'shared_with_email';
const SUBJECT_SHARED_WITH_BY = 'shared_with_by';
/** @var IFactory */
@@ -182,6 +183,8 @@ class Activity implements IExtension {
return (string) $l->t('%2$s shared %1$s with you', $params);
case self::SUBJECT_SHARED_LINK_SELF:
return (string) $l->t('You shared %1$s via link', $params);
+ case self::SUBJECT_SHARED_EMAIL:
+ return (string) $l->t('You shared %1$s with %2$s', $params);
}
}
@@ -227,6 +230,11 @@ class Activity implements IExtension {
1 => 'username',
2 => '',
];
+ case self::SUBJECT_SHARED_EMAIL:
+ return array(
+ 0 => 'file',
+ 1 => '',// 'email' is neither supported nor planned for now
+ );
case self::SUBJECT_SHARED_USER_SELF:
case self::SUBJECT_SHARED_WITH_BY:
diff --git a/core/ajax/share.php b/core/ajax/share.php
index 4546217def3..50c99cb56b4 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -183,6 +183,37 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$result = $mailNotification->sendLinkShareMail($to_address, $file, $link, $expiration);
if(empty($result)) {
+ // Get the token from the link
+ $linkParts = explode('/', $link);
+ $token = array_pop($linkParts);
+
+ // Get the share for the token
+ $share = \OCP\Share::getShareByToken($token, false);
+ if ($share !== false) {
+ $currentUser = \OC::$server->getUserSession()->getUser()->getUID();
+ $file = '/' . ltrim($file, '/');
+
+ // Check whether share belongs to the user and whether the file is the same
+ if ($share['file_target'] === $file && $share['uid_owner'] === $currentUser) {
+
+ // Get the path for the user
+ $view = new \OC\Files\View('/' . $currentUser . '/files');
+ $fileId = (int) $share['item_source'];
+ $path = $view->getPath((int) $share['item_source']);
+
+ if ($path !== null) {
+ $event = \OC::$server->getActivityManager()->generateEvent();
+ $event->setApp(\OCA\Files_Sharing\Activity::FILES_SHARING_APP)
+ ->setType(\OCA\Files_Sharing\Activity::TYPE_SHARED)
+ ->setAuthor($currentUser)
+ ->setAffectedUser($currentUser)
+ ->setObject('files', $fileId, $path)
+ ->setSubject(\OCA\Files_Sharing\Activity::SUBJECT_SHARED_EMAIL, [$path, $to_address]);
+ \OC::$server->getActivityManager()->publish($event);
+ }
+ }
+ }
+
\OCP\JSON::success();
} else {
$l = \OC::$server->getL10N('core');