コード例 #1
0
 /**
  * Convert a Zend\Http\Response in a PSR-7 response, using zend-diactoros
  *
  * @param  ZendRequest $zendRequest
  * @return ServerRequest
  */
 public static function fromZend(ZendRequest $zendRequest)
 {
     $body = new Stream('php://memory', 'wb+');
     $body->write($zendRequest->getContent());
     $headers = empty($zendRequest->getHeaders()) ? [] : $zendRequest->getHeaders()->toArray();
     $query = empty($zendRequest->getQuery()) ? [] : $zendRequest->getQuery()->toArray();
     $post = empty($zendRequest->getPost()) ? [] : $zendRequest->getPost()->toArray();
     $files = empty($zendRequest->getFiles()) ? [] : $zendRequest->getFiles()->toArray();
     $request = new ServerRequest([], self::convertFilesToUploaded($files), $zendRequest->getUriString(), $zendRequest->getMethod(), $body, $headers);
     $request = $request->withQueryParams($query);
     return $request->withParsedBody($post);
 }
コード例 #2
0
 public static function create(HttpRequest $request)
 {
     $queryParams = $request->getQuery()->toArray();
     $postParams = $request->getPost()->toArray();
     $files = $request->getFiles()->toArray();
     $cookies = ($c = $request->getCookie()) ? [$c] : [];
     return new OAuth2Request($queryParams, $postParams, [], $cookies, $files, $_SERVER);
 }
コード例 #3
0
ファイル: RequestTest.php プロジェクト: rajanlamic/IntTest
 public function testParameterRetrievalDefaultValue()
 {
     $request = new Request();
     $p = new \Zend\Stdlib\Parameters(array('foo' => 'bar'));
     $request->setQuery($p);
     $request->setPost($p);
     $request->setFiles($p);
     $default = 15;
     $this->assertSame($default, $request->getQuery('baz', $default));
     $this->assertSame($default, $request->getPost('baz', $default));
     $this->assertSame($default, $request->getFiles('baz', $default));
     $this->assertSame($default, $request->getHeaders('baz', $default));
     $this->assertSame($default, $request->getHeader('baz', $default));
 }
コード例 #4
0
ファイル: Building.php プロジェクト: arbi/MyCode
 /**
  * @param Request $request
  * @param int $buildingId
  * @return bool
  */
 public function uploadFile($request, $buildingId)
 {
     try {
         /** @var \DDD\Dao\ApartmentGroup\BuildingDetails $buildingDetailsDao */
         $buildingDetailsDao = $this->getServiceLocator()->get('dao_apartment_group_building_details');
         $files = $request->getFiles();
         $file = $files['map_attachment'];
         $attachmentExtension = pathinfo($file['name'], PATHINFO_EXTENSION);
         // file attached
         if ($file['error'] !== 4) {
             if ($file['error'] !== 0) {
                 throw new \Exception('File upload failed.');
             }
             if ($file['size'] > self::ATTACHMENT_SIZE * 1024 * 1024) {
                 throw new \Exception('File size is too big.');
             }
             if (in_array($attachmentExtension, ['php', 'phtml', 'html', 'js'])) {
                 throw new \Exception('Invalid file format.');
             }
             $folderPath = DirectoryStructure::FS_GINOSI_ROOT . DirectoryStructure::FS_IMAGES_ROOT . DirectoryStructure::FS_IMAGES_BUILDING . $buildingId . '/map';
             if (!is_dir($folderPath)) {
                 if (!mkdir($folderPath, 0775, true)) {
                     throw new \Exception('Upload failed. Can\'t create directory.');
                 }
             }
             $oldData = $buildingDetailsDao->fetchOne(['apartment_group_id' => $buildingId], ['map_attachment']);
             $filename = 'ki_map_' . $buildingId . '_' . time();
             $filename = $filename . '.' . $attachmentExtension;
             $fullPath = $folderPath . '/' . $filename;
             // remove old uploaded file
             if ($oldData['map_attachment']) {
                 $oldFile = $folderPath . '/' . $oldData['map_attachment'];
                 @unlink($oldFile);
             }
             Files::moveFile($file['tmp_name'], $fullPath);
             $buildingDetailsDao->save(['map_attachment' => $filename], ['apartment_group_id' => $buildingId]);
             return true;
         }
     } catch (\Exception $ex) {
         return false;
     }
     return false;
 }
コード例 #5
0
ファイル: OAuth2Adapter.php プロジェクト: nuxwin/zf-mvc-auth
 /**
  * Attempt to authenticate the current request.
  *
  * @param Request $request
  * @param Response $response
  * @param MvcAuthEvent $mvcAuthEvent
  * @return false|Identity\IdentityInterface False on failure, IdentityInterface
  *     otherwise
  */
 public function authenticate(Request $request, Response $response, MvcAuthEvent $mvcAuthEvent)
 {
     $oauth2request = new OAuth2Request($request->getQuery()->toArray(), $request->getPost()->toArray(), [], $request->getCookie() ? $request->getCookie()->getArrayCopy() : [], $request->getFiles() ? $request->getFiles()->toArray() : [], method_exists($request, 'getServer') ? $request->getServer()->toArray() : $_SERVER, $request->getContent(), $request->getHeaders()->toArray());
     // Failure to validate
     if (!$this->oauth2Server->verifyResourceRequest($oauth2request)) {
         $oauth2Response = $this->oauth2Server->getResponse();
         $status = $oauth2Response->getStatusCode();
         // 401 or 403 mean invalid credentials or unauthorized scopes; report those.
         if (in_array($status, [401, 403], true) && null !== $oauth2Response->getParameter('error')) {
             return $this->mergeOAuth2Response($status, $response, $oauth2Response);
         }
         // Merge in any headers; typically sets a WWW-Authenticate header.
         $this->mergeOAuth2ResponseHeaders($response, $oauth2Response->getHttpHeaders());
         // Otherwise, no credentials were present at all, so we just return a guest identity.
         return new Identity\GuestIdentity();
     }
     $token = $this->oauth2Server->getAccessTokenData($oauth2request);
     $identity = new Identity\AuthenticatedIdentity($token);
     $identity->setName($token['user_id']);
     return $identity;
 }
コード例 #6
0
 /**
  * @param Request       $request
  * @param FormInterface $form
  * @param Content       $content
  */
 private function processFormRequest(Request $request, FormInterface $form, Content $content)
 {
     if ($request->isPost()) {
         $data = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
         $this->processFormData($form, $content, $data);
     }
 }
コード例 #7
0
 /**
  * @param HttpRequest $files
  * @return bool
  */
 public static function hasUploadedFiles(HttpRequest $request)
 {
     $files = $request->getFiles()->toArray();
     return (bool) ArrayUtils::filterRecursive($files, function ($value) {
         return $value && $value !== UPLOAD_ERR_NO_FILE;
     }, true);
 }