...Человеческий поиск в разработке...
- Модуль: 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; }