Esempio n. 1
0
 /**
  * Clear authorization Cookie
  *
  * @param string $authDomain
  */
 private function clearCookie(Request $request, Response $response, $authDomain)
 {
     if ($request->getCookie()->offsetExists($authDomain)) {
         $cookie = new SetCookie($authDomain, '', strtotime('-1 Year', time()), '/');
         $response->getHeaders()->addHeader($cookie);
         $response->send();
     }
 }
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
 /**
  * Test that response has status 302 Redirect and optionally that the 
  * location header is set to a specific URL.
  * 
  * @param string $url
  */
 protected function assertResponseRedirect($url = null)
 {
     $this->assertResponseStatusCode(302, "Failed asserting response status is redirect");
     $this->assertTrue($this->response->isRedirect(), "Failed asserting response is redirect");
     if (null !== $url) {
         $location = $this->response->getHeaders()->get('location')->getFieldValue();
         $this->assertEquals($url, $location, "Failed asserting redirect location '{$location}' is '{$url}'");
     }
 }
 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. 5
0
 /**
  * 
  * {@inheritDoc}
  */
 public function selectSite(Request $request, Response $response)
 {
     if (!$request->isGet()) {
         return false;
     }
     $siteId = $request->getQuery('siteId', self::ENGLISH_SITE_ID);
     $site = $this->siteService->find($siteId);
     if (!$site) {
         $siteId = self::ENGLISH_SITE_ID;
     }
     // Just in case
     $this->siteId = $siteId;
     $cookie = new SetCookie(self::SITE_ID_COOKIE, $siteId, time() + 30 * 24 * 60 * 60);
     // now + 1 month
     $response->getHeaders()->addHeader($cookie);
     return true;
 }
 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. 8
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;
 }