Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/groupfolders.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2021-12-16 15:16:45 +0300
committerCarl Schwan <carl@carlschwan.eu>2021-12-16 15:31:33 +0300
commitfed94f0e357fc2606e9403e06b3bc4afa250d363 (patch)
treef39001954493678a2e4a0d1f44e3b41ba32d5c06 /lib/Command/Group.php
parent17aff8dfc6a439d87c3d52720922d6b2b47df099 (diff)
Fixes
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to 'lib/Command/Group.php')
-rw-r--r--lib/Command/Group.php62
1 files changed, 24 insertions, 38 deletions
diff --git a/lib/Command/Group.php b/lib/Command/Group.php
index 6f7d8f62..69611a18 100644
--- a/lib/Command/Group.php
+++ b/lib/Command/Group.php
@@ -23,6 +23,7 @@ namespace OCA\GroupFolders\Command;
use OC\Core\Command\Base;
use OCA\GroupFolders\Folder\FolderManager;
+use OCA\GroupFolders\Mount\MountProvider;
use OCP\Constants;
use OCP\Files\IRootFolder;
use OCP\IGroupManager;
@@ -31,23 +32,18 @@ use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
-class Group extends Base {
+class Group extends FolderCommand {
const PERMISSION_VALUES = [
'read' => Constants::PERMISSION_READ,
'write' => Constants::PERMISSION_UPDATE | Constants::PERMISSION_CREATE,
'share' => Constants::PERMISSION_SHARE,
'delete' => Constants::PERMISSION_DELETE,
];
-
-
- private $folderManager;
- private $rootFolder;
+ /** @var IGroupManager $groupManager */
private $groupManager;
- public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, IGroupManager $groupManager) {
- parent::__construct();
- $this->folderManager = $folderManager;
- $this->rootFolder = $rootFolder;
+ public function __construct(FolderManager $folderManager, IRootFolder $rootFolder, IGroupManager $groupManager, MountProvider $mountProvider) {
+ parent::__construct($folderManager, $rootFolder, $mountProvider);
$this->groupManager = $groupManager;
}
@@ -64,40 +60,30 @@ class Group extends Base {
}
protected function execute(InputInterface $input, OutputInterface $output) {
- $folderId = (int)$input->getArgument('folder_id');
- if ((string)$folderId !== $input->getArgument('folder_id')) {
- // Protect against removing folderId === 0 when typing a string (e.g. folder name instead of folder id)
- $output->writeln('<error>Folder id argument is not an integer. Got ' . $input->getArgument('folder_id') . '</error>');
- return;
+ $folder = $this->getFolder($input, $output);
+ if ($folder === false) {
+ return -1;
}
- $folder = $this->folderManager->getFolder($folderId, $this->rootFolder->getMountPoint()->getNumericStorageId());
- if ($folder) {
- $groupString = $input->getArgument('group');
- $group = $this->groupManager->get($groupString);
- if ($input->getOption('delete')) {
- $this->folderManager->removeApplicableGroup($folderId, $groupString);
- return 0;
- } elseif ($group) {
- $permissionsString = $input->getArgument('permissions');
- $permissions = $this->getNewPermissions($permissionsString);
- if ($permissions) {
- if (!isset($folder['groups'][$groupString])) {
- $this->folderManager->addApplicableGroup($folderId, $groupString);
- }
- $this->folderManager->setGroupPermissions($folderId, $groupString, $permissions);
- return 0;
- } else {
- $output->writeln('<error>Unable to parse permissions input: ' . implode(' ', $permissionsString) . '</error>');
- return -1;
+ $groupString = $input->getArgument('group');
+ $group = $this->groupManager->get($groupString);
+ if ($input->getOption('delete')) {
+ $this->folderManager->removeApplicableGroup($folder['id'], $groupString);
+ return 0;
+ } elseif ($group) {
+ $permissionsString = $input->getArgument('permissions');
+ $permissions = $this->getNewPermissions($permissionsString);
+ if ($permissions) {
+ if (!isset($folder['groups'][$groupString])) {
+ $this->folderManager->addApplicableGroup($folder['id'], $groupString);
}
- } else {
- $output->writeln('<error>group not found: ' . $groupString . '</error>');
- return -1;
+ $this->folderManager->setGroupPermissions($folder['id'], $groupString, $permissions);
+ return 0;
}
- } else {
- $output->writeln('<error>Folder not found: ' . $folderId . '</error>');
+ $output->writeln('<error>Unable to parse permissions input: ' . implode(' ', $permissionsString) . '</error>');
return -1;
}
+ $output->writeln('<error>group not found: ' . $groupString . '</error>');
+ return -1;
}
private function getNewPermissions(array $input) {