Esempio n. 1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
     $listInput = new ArrayInput([], $listCommand->getDefinition());
     $listInput->setArgument('user_id', $input->getArgument('user_id'));
     $listInput->setOption('output', 'json_pretty');
     $listInput->setOption('show-password', true);
     $listInput->setOption('full', true);
     $listCommand->execute($listInput, $output);
 }
Esempio n. 2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $mountId = $input->getArgument('mount_id');
     try {
         $mount = $this->globalService->getStorage($mountId);
     } catch (NotFoundException $e) {
         $output->writeln('<error>Mount with id "' . $mountId . ' not found, check "occ files_external:list" to get available mounts"</error>');
         return 404;
     }
     $noConfirm = $input->getOption('yes');
     if (!$noConfirm) {
         $listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
         $listInput = new ArrayInput([], $listCommand->getDefinition());
         $listInput->setOption('output', $input->getOption('output'));
         $listCommand->listMounts(null, [$mount], $listInput, $output);
         $questionHelper = $this->getHelper('question');
         $question = new ConfirmationQuestion('Delete this mount? [y/N] ', false);
         if (!$questionHelper->ask($input, $output, $question)) {
             return;
         }
     }
     $this->globalService->removeStorage($mountId);
 }
Esempio n. 3
0
 private function showMount($user, StorageConfig $mount, InputInterface $input, OutputInterface $output)
 {
     $listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
     $listInput = new ArrayInput([], $listCommand->getDefinition());
     $listInput->setOption('output', $input->getOption('output'));
     $listInput->setOption('show-password', true);
     $listCommand->listMounts($user, [$mount], $listInput, $output);
 }
Esempio n. 4
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $user = $input->getOption('user');
     $path = $input->getArgument('path');
     if ($path === '-') {
         $json = file_get_contents('php://stdin');
     } else {
         if (!file_exists($path)) {
             $output->writeln('<error>File not found: ' . $path . '</error>');
             return 1;
         }
         $json = file_get_contents($path);
     }
     if (!is_string($json) || strlen($json) < 2) {
         $output->writeln('<error>Error while reading json</error>');
         return 1;
     }
     $data = json_decode($json, true);
     if (!is_array($data)) {
         $output->writeln('<error>Error while parsing json</error>');
         return 1;
     }
     $isLegacy = isset($data['user']) || isset($data['group']);
     if ($isLegacy) {
         $this->importLegacyStorageService->setData($data);
         $mounts = $this->importLegacyStorageService->getAllStorages();
         foreach ($mounts as $mount) {
             if ($mount->getBackendOption('password') === false) {
                 $output->writeln('<error>Failed to decrypt password</error>');
                 return 1;
             }
         }
     } else {
         if (!isset($data[0])) {
             //normalize to an array of mounts
             $data = [$data];
         }
         $mounts = array_map([$this, 'parseData'], $data);
     }
     if ($user) {
         // ensure applicables are correct for personal mounts
         foreach ($mounts as $mount) {
             $mount->setApplicableGroups([]);
             $mount->setApplicableUsers([$user]);
         }
     }
     $storageService = $this->getStorageService($user);
     $existingMounts = $storageService->getAllStorages();
     foreach ($mounts as $mount) {
         foreach ($existingMounts as $existingMount) {
             if ($existingMount->getMountPoint() === $mount->getMountPoint() && $existingMount->getApplicableGroups() === $mount->getApplicableGroups() && $existingMount->getApplicableUsers() == $mount->getApplicableUsers() && $existingMount->getBackendOptions() == $mount->getBackendOptions()) {
                 $output->writeln("<error>Duplicate mount (" . $mount->getMountPoint() . ")</error>");
                 return 1;
             }
         }
     }
     if ($input->getOption('dry')) {
         if (count($mounts) === 0) {
             $output->writeln('<error>No mounts to be imported</error>');
             return 1;
         }
         $listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
         $listInput = new ArrayInput([], $listCommand->getDefinition());
         $listInput->setOption('output', $input->getOption('output'));
         $listInput->setOption('show-password', true);
         $listCommand->listMounts($user, $mounts, $listInput, $output);
     } else {
         foreach ($mounts as $mount) {
             $storageService->addStorage($mount);
         }
     }
     return 0;
 }