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(); }
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; }