public function actionDetails($id, $runReport = false)
 {
     $savedReport = SavedReport::getById((int) $id);
     ControllerSecurityUtil::resolveCanCurrentUserAccessModule($savedReport->moduleClassName);
     ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($savedReport, true);
     $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
     $portlet = Portlet::getById(intval($_GET['portletId']));
     $portlet->params = array('controllerId' => 'default', 'relationModuleId' => $this->getModule()->getId(), 'relationModel' => $report, 'redirectUrl' => Yii::app()->request->getRequestUri(), 'dataProvider' => $this->getDataProvider($report, $report->getId(), (bool) $runReport));
     $portletView = $portlet->getView();
     if (!RightsUtil::canUserAccessModule($portletView::getModuleClassName(), Yii::app()->user->userModel)) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     $view = new AjaxPageView($portletView);
     echo $view->render();
 }
Exemplo n.º 2
0
 public function testSetAndGetModel()
 {
     $savedReport = new SavedReport();
     $savedReport->name = 'some report';
     $savedReport->description = 'description';
     $savedReport->moduleClassName = 'moduleClassName';
     $savedReport->type = 'some type';
     $savedReport->serializedData = serialize(array('something'));
     $saved = $savedReport->save();
     $this->assertTrue($saved);
     $savedReportId = $savedReport->id;
     $savedReport->forget();
     $savedReport = SavedReport::getById($savedReportId);
     $this->assertEquals('some report', $savedReport->name);
     $this->assertEquals('description', $savedReport->description);
     $this->assertEquals('moduleClassName', $savedReport->moduleClassName);
     $this->assertEquals('some type', $savedReport->type);
     $this->assertEquals(serialize(array('something')), $savedReport->serializedData);
 }
 public static function makeReportDataProviderAndResolveAttributeName($id, $pageSize, &$attributeName)
 {
     assert('is_int($pageSize)');
     $savedReport = SavedReport::getById($id);
     $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
     foreach ($report->getDisplayAttributes() as $key => $displayAttribute) {
         if ($displayAttribute->getAttributeIndexOrDerivedType() == 'id') {
             $attributeName = ReportResultsRowData::resolveAttributeNameByKey($key);
             break;
         }
     }
     if ($attributeName == null) {
         $moduleClassName = $report->getModuleClassName();
         $modelClassName = $moduleClassName::getPrimaryModelName();
         $displayAttribute = new DisplayAttributeForReportForm($moduleClassName, $modelClassName, $report->getType());
         $displayAttribute->attributeIndexOrDerivedType = 'id';
         $report->addDisplayAttribute($displayAttribute);
         $attributeName = ReportResultsRowData::resolveAttributeNameByKey($key + 1);
     }
     return ReportDataProviderFactory::makeByReport($report, $pageSize);
 }
 protected function resolveSavedReportAndReportByPostData(array $postData, &$savedReport, &$report, $type, $id = null, $isBeingCopied = false)
 {
     if ($id == null) {
         $this->resolveCanCurrentUserAccessReports();
         $savedReport = new SavedReport();
         $report = new Report();
         $report->setType($type);
     } elseif ($isBeingCopied) {
         $savedReport = new SavedReport();
         $oldReport = SavedReport::getById(intval($id));
         ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($oldReport);
         SavedReportCopyModelUtil::copy($oldReport, $savedReport);
         $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
     } else {
         $savedReport = SavedReport::getById(intval($id));
         ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($savedReport);
         $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
     }
     DataToReportUtil::resolveReportByWizardPostData($report, $postData, ReportToWizardFormAdapter::getFormClassNameByType($type));
 }
 private function resolveSavedReportAndWarningData()
 {
     try {
         $savedReport = SavedReport::getById((int) $this->getSavedReportId());
         if (!ControllerSecurityUtil::doesCurrentUserHavePermissionOnSecurableItem($savedReport, Permission::READ)) {
             $this->warningMessage = Zurmo::t('ReportsModule', 'You have tried to access a report you do not have access to');
         } else {
             $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
             if ($report->getChart()->type == null) {
                 $this->warningMessage = Zurmo::t('ReportsModule', 'This report does not have a chart to display');
             } else {
                 $this->savedReport = $savedReport;
             }
         }
     } catch (NotFoundException $e) {
         $this->warningMessage = Zurmo::t('ReportsModule', 'You have tried to access a report that is no longer available');
     } catch (AccessDeniedSecurityException $e) {
         $this->warningMessage = Zurmo::t('ReportsModule', 'You have tried to access a report you do not have access to');
     }
     $this->savedReportHasBeenResolved = true;
 }