Skip to content

Commit

Permalink
update Comment Listener
Browse files Browse the repository at this point in the history
Signed-off-by: Chris Fritsche <chris.fritsche@cunio.de>
  • Loading branch information
Chris Fritsche authored and MorrisJobke committed Jan 7, 2021
1 parent 1e3c071 commit 3a16939
Showing 1 changed file with 33 additions and 4 deletions.
37 changes: 33 additions & 4 deletions apps/comments/lib/Activity/Listener.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,15 @@

namespace OCA\Comments\Activity;

use OC\User\NoUserException;
use OCP\Activity\IManager;
use OCP\App\IAppManager;
use OCP\Comments\CommentsEvent;
use OCP\Files\Config\IMountProviderCollection;
use OCP\Files\IRootFolder;
use OCP\Files\Node;
use OCP\Files\NotPermittedException;
use OCP\IConfig;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Share\IShareHelper;
Expand All @@ -40,14 +43,16 @@ class Listener {
protected $activityManager;
/** @var IUserSession */
protected $session;
/** @var \OCP\App\IAppManager */
/** @var IAppManager */
protected $appManager;
/** @var \OCP\Files\Config\IMountProviderCollection */
/** @var IMountProviderCollection */
protected $mountCollection;
/** @var \OCP\Files\IRootFolder */
/** @var IRootFolder */
protected $rootFolder;
/** @var IShareHelper */
protected $shareHelper;
/** @var IConfig */
protected $config;

/**
* Listener constructor.
Expand All @@ -58,23 +63,28 @@ class Listener {
* @param IMountProviderCollection $mountCollection
* @param IRootFolder $rootFolder
* @param IShareHelper $shareHelper
* @param IConfig $config
*/
public function __construct(IManager $activityManager,
IUserSession $session,
IAppManager $appManager,
IMountProviderCollection $mountCollection,
IRootFolder $rootFolder,
IShareHelper $shareHelper) {
IShareHelper $shareHelper,
IConfig $config) {
$this->activityManager = $activityManager;
$this->session = $session;
$this->appManager = $appManager;
$this->mountCollection = $mountCollection;
$this->rootFolder = $rootFolder;
$this->shareHelper = $shareHelper;
$this->config = $config;
}

/**
* @param CommentsEvent $event
* @throws NotPermittedException
* @throws NoUserException
*/
public function commentEvent(CommentsEvent $event) {
if ($event->getComment()->getObjectType() !== 'files'
Expand Down Expand Up @@ -102,6 +112,9 @@ public function commentEvent(CommentsEvent $event) {
$al = $this->shareHelper->getPathsForAccessList($node);
$users += $al['users'];
}
if ($this->config->getSystemValueBool('activity_use_cached_mountpoints', false)) {
$users += [$owner => $this->getVisiblePath($mount->getPath())];
}
}

$actor = $this->session->getUser();
Expand Down Expand Up @@ -133,4 +146,20 @@ public function commentEvent(CommentsEvent $event) {
$this->activityManager->publish($activity);
}
}

/**
* @param string $absolutePath
* @return string
*/
protected function getVisiblePath(string $absolutePath): string {
$sections = explode('/', $absolutePath, 4);

$path = '/';
if (isset($sections[3])) {
// Not the case when a file in root is renamed
$path .= $sections[3];
}

return $path;
}
}

0 comments on commit 3a16939

Please sign in to comment.