EntityAuthorization::getPermissionAttributes

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. EntityAuthorization
  4. getPermissionAttributes
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/security/entityauthorization.php
  • Класс: Bitrix\Crm\Security\EntityAuthorization
  • Вызов: EntityAuthorization::getPermissionAttributes
static function getPermissionAttributes($entityTypeID, array $entityIDs)
{
	if(!is_int($entityTypeID))
	{
		$entityTypeID = (int)$entityTypeID;
	}

	$entityIDs = array_unique(array_filter(array_map('intval', $entityIDs)));

	if($entityTypeID === \CCrmOwnerType::Lead)
	{
		return \CCrmLead::GetPermissionAttributes($entityIDs);
	}
	elseif($entityTypeID === \CCrmOwnerType::Deal || $entityTypeID === \CCrmOwnerType::DealRecurring)
	{
		return \CCrmDeal::GetPermissionAttributes($entityIDs);
	}
	elseif($entityTypeID === \CCrmOwnerType::Contact)
	{
		return \CCrmContact::GetPermissionAttributes($entityIDs);
	}
	elseif($entityTypeID === \CCrmOwnerType::Company)
	{
		return \CCrmCompany::GetPermissionAttributes($entityIDs);
	}
	elseif(\CCrmOwnerType::isUseFactoryBasedApproach($entityTypeID))
	{
		//@todo process dynamic types
	}

	$permissionEntityMap = array();
	$entityTypeName = \CCrmOwnerType::ResolveName($entityTypeID);
	foreach($entityIDs as $entityID)
	{
		$permissionEntityType = \CCrmPerms::ResolvePermissionEntityType($entityTypeName, $entityID);
		if(!isset($permissionEntityMap[$permissionEntityType]))
		{
			$permissionEntityMap[$permissionEntityType] = array();
		}
		$permissionEntityMap[$permissionEntityType][] = $entityID;
	}

	$results = array();
	foreach($permissionEntityMap as $permissionEntityType => $permissionEntityIDs)
	{
		$results += \CCrmPerms::GetEntityAttr($permissionEntityType, $permissionEntityIDs);
	}
	return $results;
}

Добавить комментарий