From 393deb596182deec076cf1d9941eae4ba51f34d4 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Mon, 22 Dec 2014 12:35:50 +0100 Subject: add activity if public shared file/folder was downloaded --- apps/files_sharing/lib/controllers/sharecontroller.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'apps/files_sharing/lib/controllers/sharecontroller.php') diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php index 0a0594ed8ff..80f4b5ae364 100644 --- a/apps/files_sharing/lib/controllers/sharecontroller.php +++ b/apps/files_sharing/lib/controllers/sharecontroller.php @@ -29,6 +29,7 @@ use OCP\ILogger; use OCA\Files_Sharing\Helper; use OCP\User; use OCP\Util; +use OCA\Files_Sharing\Activity; /** * Class ShareController @@ -49,6 +50,8 @@ class ShareController extends Controller { protected $userManager; /** @var \OCP\ILogger */ protected $logger; + /** @var OCP\Activity\IManager */ + protected $activityManager; /** * @param string $appName @@ -59,6 +62,7 @@ class ShareController extends Controller { * @param URLGenerator $urlGenerator * @param OC\User\Manager $userManager * @param ILogger $logger + * @param OCP\Activity\IManager $activityManager */ public function __construct($appName, IRequest $request, @@ -67,7 +71,8 @@ class ShareController extends Controller { OCP\IConfig $config, URLGenerator $urlGenerator, OC\User\Manager $userManager, - ILogger $logger) { + ILogger $logger, + OCP\Activity\IManager $activityManager) { parent::__construct($appName, $request); $this->userSession = $userSession; @@ -76,6 +81,7 @@ class ShareController extends Controller { $this->urlGenerator = $urlGenerator; $this->userManager = $userManager; $this->logger = $logger; + $this->activityManager = $activityManager; } /** @@ -227,8 +233,16 @@ class ShareController extends Controller { if (isset($originalSharePath) && Filesystem::isReadable($originalSharePath . $path)) { $getPath = Filesystem::normalizePath($path); $originalSharePath .= $getPath; + $type = \OC\Files\Filesystem::is_dir($originalSharePath) ? 'folder' : 'file'; + $args = $type === 'folder' ? array('dir' => $originalSharePath) : array('dir' => dirname($originalSharePath), 'scrollto' => basename($originalSharePath)); + $linkToFile = \OCP\Util::linkToAbsolute('files', 'index.php', $args); } + $subject = $type === 'folder' ? Activity::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED : Activity::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED; + $this->activityManager->publishActivity( + 'files_sharing', $subject, array($originalSharePath), '', array(), + $originalSharePath, $linkToFile, $linkItem['uid_owner'], Activity::TYPE_PUBLIC_LINKS, Activity::PRIORITY_MEDIUM); + if (!is_null($files)) { // download selected files $files_list = json_decode($files); // in case we get only a single file -- cgit v1.2.3 From 3afcc717640cfcde78c671ed536ab3b618b85f72 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 22 Dec 2014 15:04:59 +0100 Subject: Make sure the path passed to the activity manager is normalized --- apps/files_sharing/lib/controllers/sharecontroller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files_sharing/lib/controllers/sharecontroller.php') diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php index 80f4b5ae364..8b04fbd0341 100644 --- a/apps/files_sharing/lib/controllers/sharecontroller.php +++ b/apps/files_sharing/lib/controllers/sharecontroller.php @@ -232,7 +232,7 @@ class ShareController extends Controller { if (isset($originalSharePath) && Filesystem::isReadable($originalSharePath . $path)) { $getPath = Filesystem::normalizePath($path); - $originalSharePath .= $getPath; + $originalSharePath = Filesystem::normalizePath($originalSharePath . $getPath); $type = \OC\Files\Filesystem::is_dir($originalSharePath) ? 'folder' : 'file'; $args = $type === 'folder' ? array('dir' => $originalSharePath) : array('dir' => dirname($originalSharePath), 'scrollto' => basename($originalSharePath)); $linkToFile = \OCP\Util::linkToAbsolute('files', 'index.php', $args); -- cgit v1.2.3