AttributesProvider::getEntityStatusIds

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. AttributesProvider
  4. getEntityStatusIds
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/security/attributesprovider.php
  • Класс: Bitrix\Crm\Security\AttributesProvider
  • Вызов: AttributesProvider::getEntityStatusIds
protected function getEntityStatusIds(string $permissionEntityType, string $statusFieldName): array
{
	static $cache = [];
	if (isset($cache[$permissionEntityType][$statusFieldName]))
	{
		return $cache[$permissionEntityType][$statusFieldName];
	}

	$statusIds = [];
	$entityTypeName = UserPermissions::getEntityNameByPermissionEntityType($permissionEntityType);
	$entityTypeId = \CCrmOwnerType::ResolveID($entityTypeName);
	$factory = Container::getInstance()->getFactory($entityTypeId);
	if (
		$factory
		&& $factory->isStagesSupported()
		&& $factory->getEntityFieldNameByMap(Item::FIELD_NAME_STAGE_ID) === $statusFieldName
	)
	{
		$categoryId = UserPermissions::getCategoryIdFromPermissionEntityType($permissionEntityType);
		$stages = $factory->getStages($categoryId);
		foreach ($stages->getAll() as $stage)
		{
			$statusIds[] = $stage->getStatusId();
		}
	}
	$cache[$permissionEntityType][$statusFieldName] = $statusIds;

	return $statusIds;
}

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