setName('sharing:update-share-permission') ->setDescription('Update a permission of a share.') ->addArgument('id', InputArgument::REQUIRED, 'Share ID') ->addArgument('class', InputArgument::REQUIRED, 'Permission class') ->addArgument('enabled', InputArgument::REQUIRED, 'Permission enabled. Only takes "true" or "false".'); } #[\Override] public function execute(InputInterface $input, OutputInterface $output): int { /** @var string $id */ $id = $input->getArgument('id'); /** @var class-string $class */ $class = $input->getArgument('class'); /** @var string $enabled */ $enabled = $input->getArgument('enabled'); $enabled = $enabled === 'true'; return $this->wrapExecution($output, function () use ($id, $class, $enabled): Share { $share = $this->manager->getShare($this->accessContext, $id); return $this->manager->updateSharePermission($this->accessContext, $share, new SharePermission($class, $enabled)); }); } }