setName("ot:site:reset-perms") ->setDescription("Reset the permissions granted to the be users") ->setHelp("This CLI command resets the permissions granted to either one website be users, or every websites be users") ->addArgument( 'organization-id', InputArgument::OPTIONAL, "The organization's id in the opentalent DB" ) ->addOption( "all", null, InputOption::VALUE_NONE, "Reset all of the websites be_users permissions." ); } /** * -- This method is expected by Typo3, do not rename ou remove -- * * @param InputInterface $input * @param OutputInterface $output * @throws \Exception */ protected function execute(InputInterface $input, OutputInterface $output) { $org_id = $input->getArgument('organization-id'); $all = $input->getOption('all'); if ($all && $org_id) { throw new \InvalidArgumentException("You can not pass both an organization id and the --all option"); } if (!$all && !$org_id) { throw new \InvalidArgumentException("You shall either pass an organization id or use the --all option"); } $io = new SymfonyStyle($input, $output); $siteController = GeneralUtility::makeInstance(ObjectManager::class)->get(SiteController::class); if ($all) { $siteController->resetAllBeUserPermsAction(); $io->success(sprintf("Be users permissions were reset for every website")); } else { $rootUid = $siteController->resetBeUserPermsAction($org_id); $io->success(sprintf("The website with root uid " . $rootUid . " had its be users permissions reset")); } } }