/** * @param $file * @throws \RuntimeException * @return UploadedFile */ public function getInput($file) { if (!file_exists($file)) { throw new \RuntimeException('File does not exist: ' . $file); } $objMapping = ['file' => $file]; $uploadModel = new UploadedFile(); $mapping = ['UPLOAD_SIZE' => 'size', 'UPLOAD_PERMS' => 'perms', 'UPLOAD_UID' => 'uid', 'UPLOAD_GID' => 'gid', 'UPLOAD_USER' => 'user', 'UPLOAD_GROUP' => 'group', 'UPLOAD_VUSER' => 'vUser']; foreach ($mapping as $export => $property) { if (isset($_SERVER[$export])) { switch ($property) { case 'size': case 'uid': case 'gid': $objMapping[$property] = (int) $_SERVER[$export]; break; default: $objMapping[$property] = $_SERVER[$export]; } } } $authUser = $this->authApi->getUserData($objMapping['vUser']); if ($authUser) { $objMapping['fileHandler'] = $authUser->getFileHandler(); } ObjectUtil::hydrateObject($uploadModel, $objMapping); return $uploadModel; }
/** * @param InputInterface $input * @param OutputInterface $output * @return int|null|void */ protected function execute(InputInterface $input, OutputInterface $output) { $pureAuthd = new AuthHelper(); $auth = $pureAuthd->getInput(); $outputModel = $this->auth->getUserByLoginPassword($auth->getAccount(), $auth->getPassword()); switch ($outputModel->getState()) { case AuthStateEnum::USER_AUTHORIZED: //$this->tracker->info(self::TRACKER_PREFIX . 'authorized', $outputModel->toArray()); $this->logger->info('PureFTPd: user authorized', ['input' => $auth->jsonSerialize(), 'output' => $outputModel->toArray()]); break; case AuthStateEnum::USER_NOT_AUTHORIZED: //$this->tracker->info(self::TRACKER_PREFIX . 'notAuthorized', $auth->jsonSerialize()); $this->logger->info('PureFTPd: user not authorized', ['input' => $auth->jsonSerialize(), 'output' => $outputModel->toArray()]); break; case AuthStateEnum::USER_NOT_FOUND: //$this->tracker->info(self::TRACKER_PREFIX . 'notFound', $auth->jsonSerialize()); $this->logger->info('PureFTPd: user not found', ['input' => $auth->jsonSerialize(), 'output' => $outputModel->toArray()]); break; } $output->write($outputModel->toAuthString()); }