Skip to content
Snippets Groups Projects
Unverified Commit 960d89ae authored by Roeland Jago Douma's avatar Roeland Jago Douma
Browse files

Listen to the right even for auto share accept

parent 3d03d820
No related branches found
No related tags found
No related merge requests found
......@@ -29,8 +29,10 @@ namespace OCA\Files_Sharing\Listener;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\IConfig;
use OCP\Share\Events\SharedEvent;
use OCP\IGroupManager;
use OCP\Share\Events\ShareCreatedEvent;
use OCP\Share\IManager;
use OCP\Share\IShare;
class UserShareAcceptanceListener implements IEventListener {
......@@ -38,23 +40,42 @@ class UserShareAcceptanceListener implements IEventListener {
private $config;
/** @var IManager */
private $shareManager;
/** @var string */
private $userId;
/** @var IGroupManager */
private $groupManager;
public function __construct(IConfig $config, IManager $shareManager, string $userId) {
public function __construct(IConfig $config, IManager $shareManager, IGroupManager $groupManager) {
$this->config = $config;
$this->shareManager = $shareManager;
$this->userId = $userId;
$this->groupManager = $groupManager;
}
public function handle(Event $event): void {
if (!($event instanceof SharedEvent)) {
if (!($event instanceof ShareCreatedEvent)) {
return;
}
if ($this->config->getUserValue($this->userId, 'files_sharing','default_accept','no') === 'yes') {
$share = $event->getShare();
$this->shareManager->acceptShare($share, $this->userId);
$share = $event->getShare();
if ($share->getShareType() === IShare::TYPE_USER) {
$this->handleAutoAccept($share, $share->getSharedWith());
} else if ($share->getShareType() === IShare::TYPE_GROUP) {
$group = $this->groupManager->get($share->getSharedWith());
if ($group === null) {
return;
}
$users = $group->getUsers();
foreach ($users as $user) {
$this->handleAutoAccept($share, $user->getUID());
}
}
}
private function handleAutoAccept(IShare $share, string $userId) {
if ($this->config->getUserValue($userId, 'files_sharing','default_accept','no') === 'yes') {
$this->shareManager->acceptShare($share, $userId);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment