/**
  * 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);
 }
Example #3
0
 /**
  * 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);
 }
Example #4
0
 /**
  * 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);
 }
Example #5
0
 /**
  * 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;
 }
Example #6
0
 /**
  * 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;
 }