Esempio n. 1
0
 /**
  * Login
  *
  * @param \Zend\Http\Request $request
  * @param \Zend\Http\Response $response
  * @return null|array|\Zend\Http\Response
  */
 public function login(array $options, HttpRequest $request, HttpResponse $response = null)
 {
     if (null === $response) {
         $response = new PhpResponse();
     }
     $session = $this->getSessionContainer();
     $code = $request->getQuery('code');
     if (empty($options['redirect_uri'])) {
         $options['redirect_uri'] = $request->getUri()->getScheme() . '://' . $this->getSiteInfo()->getFulldomain() . $request->getRequestUri();
     }
     if (empty($code)) {
         $session['state'] = String::generateRandom(32);
         $session['redirect_uri'] = $options['redirect_uri'];
         $response->setContent('')->setStatusCode(302)->getHeaders()->clearHeaders()->addHeaderLine('Location', static::DIALOG_URI . '?' . http_build_query(array('client_id' => $options['client_id'], 'redirect_uri' => $options['redirect_uri'], 'state' => $session['state'], 'scope' => 'email')));
         if ($response instanceof PhpResponse) {
             $response->send();
             exit;
         } else {
             return $response;
         }
     }
     $state = $request->getQuery('state');
     if (empty($session['state']) || $state !== $session['state']) {
         return null;
     }
     $client = $this->getHttpClient();
     $params = null;
     @parse_str($client->setMethod('GET')->setUri(static::ACCESS_URI)->setParameterGet(array('client_id' => $options['client_id'], 'redirect_uri' => $session['redirect_uri'], 'client_secret' => $options['client_secret'], 'code' => $code))->send()->getBody(), $params);
     unset($session['state']);
     unset($session['redirect_uri']);
     if (empty($params['access_token'])) {
         return null;
     }
     return @json_decode($client->setMethod('GET')->setUri(static::API_URI)->setParameterGet(array('access_token' => $params['access_token']))->send()->getBody(), true);
 }
Esempio n. 2
0
 /**
  * @param Response $response
  *
  * @return Response
  */
 public function getImageResponse(Response $response)
 {
     if (is_file($this->trackingFile)) {
         $imageContent = file_get_contents($this->trackingFile);
         $response->setContent($imageContent);
         $response->getHeaders()->addHeaderLine('Content-Transfer-Encoding', 'binary')->addHeaderLine('Content-Type', 'image/gif')->addHeaderLine('Content-Length', mb_strlen($imageContent));
     }
     return $response;
 }
Esempio n. 3
0
 public function getResponse()
 {
     $doc = new DOMDocument();
     $doc->loadXML('<nodeid>' . $this->context->queryToValue('//id') . '</nodeid>');
     $uiComposer = new \BaseXMS\UiComposer\UiComposer();
     $uiComposer->setServiceLocator($this->getServiceLocator());
     $uiComposer->setContextData($doc);
     $response = new ZendResponse();
     $response->setContent($uiComposer->run()->output());
     $response->setStatusCode(200);
     return $response;
 }
 public function testContentIsLoadedFromCacheAndSetOnResponse()
 {
     $expectedResponse = new HttpResponse();
     $expectedResponse->setContent('mockContent');
     $this->cacheServiceMock->shouldReceive('load')->once()->andReturn('mockContent');
     $this->cacheServiceMock->shouldReceive('save')->never();
     $mvcEvent = $this->createMvcEvent();
     $this->cacheListener->getOptions()->setCacheResponse(false);
     $response = $this->cacheListener->onRoute($mvcEvent);
     $this->assertEquals($expectedResponse->getContent(), $response->getContent());
     $this->cacheListener->onFinish($mvcEvent);
 }
 public function doAction()
 {
     /** @var $rq Request */
     $rq = $this->getRequest();
     $id = $this->params('id');
     $endpoint = $this->params('endpoint');
     $service = $this->getApiService();
     $result = $service->perform($id, $endpoint, $rq->getPost());
     $result = Json::encode($result);
     $response = new Response();
     $response->getHeaders()->addHeaderLine('Content-Type: application/json');
     $response->setContent($result);
     return $response;
 }
Esempio n. 6
0
 /**
  * @group 2981
  */
 public function testReturnsResponseFromListenerWhenDispatchEventShortCircuits()
 {
     $this->application->bootstrap();
     $testResponse = new Response();
     $response = $this->application->getResponse();
     $events = $this->application->getEventManager();
     $events->clearListeners(MvcEvent::EVENT_ROUTE);
     $events->attach(MvcEvent::EVENT_DISPATCH, function ($e) use($testResponse) {
         $testResponse->setContent('triggered');
         return $testResponse;
     }, 100);
     $self = $this;
     $triggered = false;
     $events->attach(MvcEvent::EVENT_FINISH, function ($e) use($self, $testResponse, &$triggered) {
         $self->assertSame($testResponse, $e->getResponse());
         $triggered = true;
     });
     $this->application->run();
     $this->assertTrue($triggered);
 }
Esempio n. 7
0
 public function testPostDispatchResultIsPassedByReferenceToEventListeners()
 {
     $app = $this->setupActionController();
     $app->events()->attach('dispatch', function ($e) {
         $result = $e->getResult();
         if (!$result) {
             return;
         }
         $result['foo'] = 'bar';
     });
     $app->events()->attach('dispatch', function ($e) {
         $result = $e->getResult();
         if (!$result) {
             return;
         }
         $response = new Response();
         $content = json_encode($result);
         $response->setContent($content);
         return $response;
     });
     $response = $app->run();
     $response = json_decode($response->getContent());
     $this->assertTrue(isset($response->foo), var_export($response, 1));
     $this->assertEquals('bar', $response->foo);
 }
 public function displayDownload($contents, $fileName)
 {
     $response = new Response();
     $headers = $response->getHeaders();
     $headers->addHeaderLine('Content-Disposition: attachment; filename="' . $fileName . '"');
     $headers->addHeaderLine('Content-Type: ' . "application/force-download");
     $headers->addHeaderLine('Content-Length: ' . strlen($contents));
     $response->setContent($contents);
     return $response;
 }
 /**
  * Easily bind role with resources
  * @return type
  * Author: Tahmina Khatoon
  */
 public function bindRolesAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $confirm = '';
         $formdata = $request->getPost();
         if (!empty($formdata['role_id']) && !empty($formdata['resource_id']) && md5($formdata['role_id'] * $formdata['resource_id']) == $formdata['token']) {
             $existdata = $this->getRoleResourcesTable()->getRoleResourcesByRoleIdAndResourceId($formdata['role_id'], $formdata['resource_id']);
             $resourceDetails = $this->getResourcesTable()->getResources($formdata['resource_id']);
             $resource_name = explode('/', $resourceDetails->name);
             $group = array('index', 'search');
             $formDataAll = array();
             if (empty($resource_name[1]) || in_array($resource_name[1], $group)) {
                 $select = new Select();
                 $where = new \Zend\Db\Sql\Where();
                 $where->in('name', array($resource_name[0], $resource_name[0] . '/index', $resource_name[0] . '/search'));
                 $select->where($where);
                 $main_resources = $this->getResourcesTable()->fetchAll($select);
                 $total = $main_resources->count();
                 if ($total > 0) {
                     foreach ($main_resources as $row) {
                         $role_resources = new RoleResources();
                         $formDataAll[] = array('role_id' => $formdata['role_id'], 'resource_id' => $row->id);
                     }
                 }
             } else {
                 $formDataAll[] = array('role_id' => $formdata['role_id'], 'resource_id' => $formdata['resource_id']);
             }
             if (!empty($formdata['status'])) {
                 foreach ($formDataAll as $data) {
                     $role_resources = new RoleResources();
                     $role_resources->exchangeArray($data);
                     $confirm = $this->getRoleResourcesTable()->saveRoleResources($role_resources);
                 }
             } else {
                 foreach ($formDataAll as $data) {
                     $existdata = $this->getRoleResourcesTable()->getRoleResourcesByRoleIdAndResourceId($data['role_id'], $data['resource_id']);
                     if (!empty($existdata)) {
                         $id = $existdata->id;
                         $confirm = $this->getRoleResourcesTable()->deleteRoleResources($id);
                     }
                 }
             }
         }
         $response = new Response();
         $response->getHeaders()->addHeaderLine('Content-Type: application/json');
         $response->setContent(Json::encode($confirm));
         $response->setStatusCode(200);
         return $response;
     } else {
         $select = new Select();
         $order_by = $this->params()->fromRoute('order_by') ? $this->params()->fromRoute('order_by') : 'name';
         $order = $this->params()->fromRoute('order') ? $this->params()->fromRoute('order') : Select::ORDER_ASCENDING;
         $select->order($order_by . ' ' . $order);
         $resources = $this->getResourcesTable()->fetchAll($select);
         $roles = $this->getRolesTable()->fetchAll();
         $primaryResources = $this->formetArray($this->getResourcesTable()->getPrimaryResources(), 'id');
         $roleResources = array();
         if (!empty($roles)) {
             foreach ($roles as $role) {
                 $roleResources[$role->id] = $this->formetArray($this->getRoleResourcesTable()->getResourcesBasedOnRole($role->id), 'resource_id');
             }
         }
         $this->vm->setVariables(array('resources' => $resources, 'roles' => $roles, 'roleResources' => $roleResources, 'primaryResources' => $primaryResources, 'order_by' => $order_by, 'order' => $order, 'pageAction' => 'resources/bind_roles'));
     }
     return $this->vm;
 }
Esempio n. 10
0
 /**
  * Prepare the response with the CSV export and return it
  *
  * @return HttpResponse
  * @throws \Exception if any exceptions are thrown within the content callback
  */
 public function getResponse()
 {
     if (method_exists($this->controller, 'getResponse')) {
         /** @var HttpResponse $response */
         $response = $this->controller->getResponse();
     } else {
         $response = new HttpResponse();
     }
     $fp = fopen('php://output', 'w');
     ob_start();
     fputcsv($fp, $this->header, $this->delimiter, $this->enclosure);
     foreach ($this->content as $i => $item) {
         try {
             $fields = $this->callback ? call_user_func($this->callback, $item) : $item;
             if (!is_array($fields)) {
                 throw new \RuntimeException('CsvExport can only accept arrays, ' . gettype($fields) . ' provided at index ' . $i . '. Either use arrays when setting the records or use a callback to convert each record into an array.');
             }
             fputcsv($fp, $fields, $this->delimiter, $this->enclosure);
         } catch (\Exception $ex) {
             ob_end_clean();
             throw $ex;
         }
     }
     fclose($fp);
     $response->setContent(ob_get_clean());
     $response->getHeaders()->addHeaders(array('Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment;filename="' . str_replace('"', '\\"', $this->name) . '.csv"'));
     return $response;
 }
 /**
  * @param string $request Request uri
  * @throws \RuntimeException
  * @return \Zend\Http\PhpEnvironment\Response
  */
 public function dispatch($request)
 {
     if (!$this->getResolver()) {
         throw new \RuntimeException("No resolver setted");
     }
     $asset = $this->resolver->resolve($request);
     $content = null;
     $responseCode = 404;
     $headers = Headers::fromString("Content-Type: text/plain");
     if ($asset) {
         $headers = $this->getHeaders($asset->getFile(), $asset->getMime());
         if ($this->browserCached($asset->getFile())) {
             $responseCode = 304;
             $headers->addHeader(Connection::fromString("Connection: close"));
         } else {
             $responseCode = 200;
             $cacheKey = "assets-cache-" . md5($request);
             if ($this->cache) {
                 $content = $this->cache->getItem($cacheKey);
             }
             if (!$content) {
                 $content = $asset->getContent();
                 $assetName = end(explode('\\', get_class($asset)));
                 if (array_key_exists($assetName, $this->filters)) {
                     foreach ($this->filters[$assetName] as $filter) {
                         $content = $filter->filter($content);
                     }
                 }
                 if ($this->cache) {
                     $this->cache->addItem($cacheKey, $content);
                 }
             }
         }
     } else {
         $content = "Asset not found!";
     }
     $response = new Response();
     $response->setStatusCode($responseCode);
     $response->setContent($content);
     $response->setHeaders($headers);
     return $response;
 }