/**
  * @param string $uniqueLayoutId
  * @param array $metadata
  * @return array
  */
 protected function getPortlets($uniqueLayoutId, $metadata)
 {
     assert('is_string($uniqueLayoutId)');
     assert('is_array($metadata)');
     $portlets = parent::getPortlets($uniqueLayoutId, $metadata);
     return PortletsSecurityUtil::resolvePortletsForCurrentUser($portlets);
 }
 public function testResolvePortletsForCurrentUser()
 {
     $betty = User::getByUsername('betty');
     $this->assertFalse(RightsUtil::canUserAccessModule('AccountsModule', $betty));
     $this->assertFalse(RightsUtil::canUserAccessModule('ContactsModule', $betty));
     $this->assertFalse(RightsUtil::canUserAccessModule('TasksModule', $betty));
     Yii::app()->user->userModel = $betty;
     $portlet1 = new Portlet();
     $portlet1->viewType = 'AccountsRelatedList';
     $portlet2 = new Portlet();
     $portlet2->viewType = 'ContactsRelatedList';
     $portlet3 = new Portlet();
     $portlet3->viewType = 'TasksMyList';
     $portlets = array();
     $portlets[0][0] = $portlet1;
     $portlets[0][1] = $portlet2;
     $portlets[0][2] = $portlet3;
     $portlets[1][0] = $portlet3;
     $portlets[1][1] = $portlet1;
     $portlets[1][2] = $portlet3;
     $this->assertEquals(2, count($portlets));
     $resolvedPortlets = PortletsSecurityUtil::resolvePortletsForCurrentUser($portlets);
     $comparePortlets = array();
     $comparePortlets[0][0] = $portlet3;
     $comparePortlets[1][0] = $portlet3;
     $comparePortlets[1][1] = $portlet3;
     $this->assertEquals(0, count($resolvedPortlets));
     Yii::app()->user->userModel = User::getByUsername('super');
     $resolvedPortlets = PortletsSecurityUtil::resolvePortletsForCurrentUser($portlets);
     $this->assertEquals($portlets, $resolvedPortlets);
 }
Exemple #3
0
 /**
  * Override to allow for making a default set of portlets
  * via metadata optional.
  *
  */
 protected function getPortlets($uniqueLayoutId, $metadata)
 {
     assert('is_string($uniqueLayoutId)');
     assert('is_array($metadata)');
     $portlets = Portlet::getByLayoutIdAndUserSortedByColumnIdAndPosition($uniqueLayoutId, Yii::app()->user->userModel->id, $this->params);
     if (empty($portlets) && $this->isDefaultDashboard) {
         $portlets = Portlet::makePortletsUsingMetadataSortedByColumnIdAndPosition($uniqueLayoutId, $metadata, Yii::app()->user->userModel, $this->params);
         Portlet::savePortlets($portlets);
     }
     return PortletsSecurityUtil::resolvePortletsForCurrentUser($portlets);
 }