diff options
author | Carl Schwan <carl@carlschwan.eu> | 2021-12-16 15:16:45 +0300 |
---|---|---|
committer | Carl Schwan <carl@carlschwan.eu> | 2021-12-16 15:31:33 +0300 |
commit | fed94f0e357fc2606e9403e06b3bc4afa250d363 (patch) | |
tree | f39001954493678a2e4a0d1f44e3b41ba32d5c06 /lib/Command/Group.php | |
parent | 17aff8dfc6a439d87c3d52720922d6b2b47df099 (diff) |
Fixes
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to 'lib/Command/Group.php')
-rw-r--r-- | lib/Command/Group.php | 62 |
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) { |