/** * getNewInstanceAction * * @return Response */ public function getNewInstanceAction() { $routeMatch = $this->getEvent()->getRouteMatch(); $pluginType = $routeMatch->getParam('pluginType'); $instanceId = $routeMatch->getParam('instanceId'); $pluginManager = $this->getServiceLocator()->get('Rcm\\Service\\PluginManager'); if ($instanceId < 0) { $instanceConfig = $pluginManager->getDefaultInstanceConfig($pluginType); } else { $instanceConfig = $pluginManager->getInstanceConfig($instanceId); } //Allow plugins to preview with an unsaved instance configuration $instanceConfigPreview = $this->params()->fromPost('previewInstanceConfig'); if ($instanceConfigPreview) { $instanceConfig = array_merge($instanceConfig, $instanceConfigPreview); } $viewData = $pluginManager->getPluginViewData($pluginType, $instanceId, $instanceConfig); $html = $viewData['html']; $headLink = new HeadLink(); foreach ($viewData['css'] as $css) { $cssInfo = unserialize($css); $headLink->append($cssInfo); } $headScript = new HeadScript(); foreach ($viewData['js'] as $js) { $jsInfo = unserialize($js); $headScript->append($jsInfo); } $html = $headLink->toString() . $headScript->toString() . $html; $response = new Response(); $response->setContent($html); return $response; }
/** * Return single resource * * @param mixed $id Id to retrieve * * @return JsonModel|Response */ public function get($id) { if (!$this->rcmIsSiteAdmin($this->currentSite)) { $response = new Response(); $response->setStatusCode('401'); return $response; } $userName = $this->params('username'); $doc = $this->api->getEmbed($userName, $id); return new JsonModel($doc); }
/** * Test Process Rcm Responses * * @return void * * @covers \Rcm\EventListener\EventFinishListener::processRcmResponses */ public function testProcessRcmResponses() { $mockResponseHandler = $this->getMockBuilder('Rcm\\Service\\ResponseHandler')->disableOriginalConstructor()->getMock(); $mockResponseHandler->expects($this->once())->method('processResponse'); /** @var \Rcm\Service\ResponseHandler $mockResponseHandler */ $listener = new EventFinishListener($mockResponseHandler); $event = new MvcEvent(); $response = new Response(); $response->setStatusCode(404); $event->setResult($response); $listener->processRcmResponses($event); }
/** * Test Process Rcm Responses * * @return void * * @covers \Rcm\EventListener\ViewEventListener::processRcmResponses */ public function testProcessRcmResponsesIgnoresJsonRenderer() { $event = new ViewEvent(); $response = new Response(); $response->setStatusCode(404); $mockResponseHandler = $this->getMockBuilder('Rcm\\Service\\ResponseHandler')->disableOriginalConstructor()->getMock(); $mockResponseHandler->expects($this->never())->method('processResponse'); $mockContainerPlugin = $this->getMockBuilder('\\Rcm\\View\\Helper\\Container')->disableOriginalConstructor()->getMock(); $mockContainerPlugin->expects($this->any())->method('getResponse')->will($this->returnValue($response)); $mockRenderer = $this->getMockBuilder('\\Zend\\View\\Renderer\\JsonRenderer')->disableOriginalConstructor()->getMock(); $mockRenderer->expects($this->any())->method('plugin')->will($this->returnValue($mockContainerPlugin)); /** @var \Zend\View\Renderer\PhpRenderer $mockRenderer */ $event->setRenderer($mockRenderer); /** @var \Rcm\Service\ResponseHandler $mockResponseHandler */ $listener = new ViewEventListener($mockResponseHandler); $listener->processRcmResponses($event); }
/** * Process 401 Response Objects. This will redirect the visitor to the * sites configured login page. * * @return Response */ protected function processNotAuthorized() { $loginPage = $this->currentSite->getLoginPage(); $notAuthorized = $this->currentSite->getNotAuthorizedPage(); $returnToUrl = urlencode($this->request->getServer('REQUEST_URI')); $newResponse = new Response(); $newResponse->setStatusCode('302'); if (!$this->userService->hasIdentity()) { $newResponse->getHeaders()->addHeaderLine('Location: ' . $loginPage . '?redirect=' . $returnToUrl); } else { $newResponse->getHeaders()->addHeaderLine('Location: ' . $notAuthorized); } return $newResponse; }
/** * savePageAction * * @return Response|\Zend\Http\Response */ public function savePageAction() { if (!$this->rcmIsAllowed('sites.' . $this->currentSite->getSiteId() . '.pages', 'edit')) { $response = new Response(); $response->setStatusCode('401'); return $response; } // @todo - might validate these against the data coming in $pageName = $this->getEvent()->getRouteMatch()->getParam('rcmPageName', 'index'); $pageRevision = $this->getEvent()->getRouteMatch()->getParam('rcmPageRevision', null); $pageType = $this->getEvent()->getRouteMatch()->getParam('rcmPageType', 'n'); /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); if ($request->isPost()) { /** @var \Zend\Stdlib\Parameters $data */ $data = $request->getPost()->toArray(); $this->prepSaveData($data); $result = $this->pageRepo->savePage($this->currentSite, $pageName, $pageRevision, $pageType, $data, $this->rcmUserGetCurrentUser()->getName()); if (empty($result)) { $return['redirect'] = $this->urlToPage($pageName, $pageType, $pageRevision); } else { $return['redirect'] = $this->urlToPage($pageName, $pageType, $result); } return $this->getJsonResponse($return); } $response = new Response(); $response->setStatusCode('404'); return $response; }