• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Controller/EntityDetails.php
  • Класс: BitrixCrmMobileControllerEntityDetails
  • Вызов: EntityDetails::getEntityPermissions
private function getEntityPermissions(Item $entity): array
{
	if ($entity->isNew())
	{
		return [];
	}

	$userPermissions = Container::getInstance()->getUserPermissions();
	$crmPermissions = $userPermissions->getCrmPermissions();

	$entityTypeId = $entity->getEntityTypeId();
	$entityId = $entity->getId();

	if ($entityTypeId === CCrmOwnerType::Company && CCrmCompany::isMyCompany($entityId))
	{
		$myCompanyPermissions = $userPermissions->getMyCompanyPermissions();

		return [
			'add' => $myCompanyPermissions->canAdd(),
			'read' => $myCompanyPermissions->canRead(),
			'update' => $myCompanyPermissions->canUpdate(),
			'delete' => $myCompanyPermissions->canDelete(),
			'exclude' => false,
		];
	}

	$categoryId = $entity->isCategoriesSupported() ? $entity->getCategoryId() : null;

	return [
		'add' => $userPermissions->checkAddPermissions($entityTypeId, $categoryId),
		'read' => $userPermissions->checkReadPermissions($entityTypeId, $entityId, $categoryId),
		'update' => $userPermissions->checkUpdatePermissions($entityTypeId, $entityId, $categoryId),
		'delete' => $userPermissions->checkDeletePermissions($entityTypeId, $entityId, $categoryId),
		'exclude' => !$crmPermissions->HavePerm('EXCLUSION', BX_CRM_PERM_NONE, 'WRITE'),
	];
}