Exemple #1
0
 /**
  * Pre-loads all operations for children.
  * @internal
  * @param SecurityContext $securityContext Security context.
  */
 public function preloadOperationsForChildren(SecurityContext $securityContext)
 {
     $securityContext->preloadOperationsForChildren($this->realObjectId);
 }
Exemple #2
0
 /**
  * Get readable storages by SecurityContext.
  * Be careful! The method works under FolderTable and $parameters belongs to FolderTable.
  * @param SecurityContext $securityContext SecurityContext.
  * @param array           $parameters Parameters to getList.
  * @return Storage[]
  */
 public static function getReadableList(SecurityContext $securityContext, array $parameters = array())
 {
     /** @var Folder[] $items */
     $filter = array('=PARENT_ID' => null, '=STORAGE.MODULE_ID' => Driver::INTERNAL_MODULE_ID, '=RIGHTS_CHECK' => true);
     if (!empty($parameters['filter']['STORAGE.ENTITY_TYPE'])) {
         $filter['=STORAGE.ENTITY_TYPE'] = $parameters['filter']['STORAGE.ENTITY_TYPE'];
     }
     if (!empty($parameters['filter']['STORAGE.SITE_ID'])) {
         $filter['=STORAGE.SITE_ID'] = $parameters['filter']['STORAGE.SITE_ID'];
     }
     $parameters = array('with' => array('STORAGE'), 'runtime' => array(new ExpressionField('RIGHTS_CHECK', 'CASE WHEN ' . $securityContext->getSqlExpressionForList('%1$s', '%2$s') . ' THEN 1 ELSE 0 END', array('ID', 'CREATED_BY'), array('data_type' => 'boolean'))), 'filter' => $filter);
     $parameters = Driver::getInstance()->getRightsManager()->addRightsCheck($securityContext, $parameters, array('ID', 'CREATED_BY'));
     $items = Folder::getModelList($parameters);
     $storages = array();
     foreach ($items as $item) {
         $item->getStorage()->setAttributes(array('ROOT_OBJECT' => $item));
         $storages[] = $item->getStorage();
     }
     unset($item);
     return $storages;
 }
 /**
  * Add to parameters rights check by security context for use in getList.
  * @param Security\SecurityContext $securityContext
  * @param array                    $parameters
  * @param array                    $specificColumns List of columns to use in $securityContext->getSqlExpressionForList.
  * @return array
  */
 public function addRightsCheck(Security\SecurityContext $securityContext, array $parameters, array $specificColumns)
 {
     if (!isset($parameters['filter'])) {
         $parameters['filter'] = array();
     }
     if (!isset($parameters['runtime'])) {
         $parameters['runtime'] = array();
     }
     $parameters['runtime'][] = new ExpressionField('RIGHTS_CHECK', 'CASE WHEN ' . $securityContext->getSqlExpressionForList('%1$s', '%2$s') . ' THEN 1 ELSE 0 END', $specificColumns, array('data_type' => 'boolean'));
     $parameters['filter']['=RIGHTS_CHECK'] = true;
     return $parameters;
 }
Exemple #4
0
 /**
  * Checks rights to start bizprocess on current object.
  * @param SecurityContext $securityContext Security context.
  * @return bool
  */
 public function canStartBizProc(SecurityContext $securityContext)
 {
     return $securityContext->canStartBizProc($this->id);
 }
Exemple #5
0
 /**
  * Checks rights to update current object by cloud import.
  * @param SecurityContext $securityContext Security context.
  * @return bool
  */
 public function canUpdateByCloudImport(SecurityContext $securityContext)
 {
     return $this->getContentProvider() && $this->getCreatedBy() == $securityContext->getUserId() && $securityContext->canUpdate($this->id);
 }