/**
  * @param array $filters
  * @return array
  */
 protected function makeReadPermissionsAttributeIndexes(array $filters)
 {
     $attributeIndexes = array();
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($attributeIndexes, $this->resolveDisplayAttributes());
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($attributeIndexes, $filters);
     return $attributeIndexes;
 }
 /**
  * @param array $filters
  * @return array
  */
 protected function makeReadPermissionsAttributeIndexes(array $filters)
 {
     $moduleClassName = $this->report->getModuleClassName();
     $attributeIndexes = array();
     ReadPermissionsForReportUtil::resolveAttributeIndexes($moduleClassName::getPrimaryModelName(), $attributeIndexes);
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($attributeIndexes, $this->resolveDisplayAttributes());
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($attributeIndexes, $filters);
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($attributeIndexes, $this->report->getOrderBys());
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($attributeIndexes, $this->resolveGroupBys());
     return $attributeIndexes;
 }
 public function testInferredRelationModelAttributeWithYetAnotherRelation()
 {
     Yii::app()->user->userModel = User::getByUsername('sally');
     $filter = new FilterForReportForm('MeetingsModule', 'Meeting', Report::TYPE_ROWS_AND_COLUMNS);
     $filter->attributeIndexOrDerivedType = 'Account__activityItems__Inferred___opportunities___name';
     $indexes = array();
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($indexes, array($filter));
     $compareIndexes = array('' => array('owner__User', 'ReadOptimization'), 'Account__activityItems__Inferred___' => array('owner__User', 'ReadOptimization'), 'Account__activityItems__Inferred___opportunities___' => array('owner__User', 'ReadOptimization'));
     $this->assertEquals($compareIndexes, $indexes);
     //Test with the super user.  There shouldn't be any read permission data
     Yii::app()->user->userModel = User::getByUsername('super');
     $filter = new FilterForReportForm('MeetingsModule', 'Meeting', Report::TYPE_ROWS_AND_COLUMNS);
     $filter->attributeIndexOrDerivedType = 'Account__activityItems__Inferred___opportunities___name';
     $indexes = array();
     ReadPermissionsForReportUtil::resolveAttributeIndexesByComponents($indexes, array($filter));
     $this->assertEquals(array(), $indexes);
 }