/** * 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); }
/** * @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; }
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; }
/** * @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); }
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; }
/** * 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; }