- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/security/entityauthorization.php
- Класс: Bitrix\Crm\Security\EntityAuthorization
- Вызов: EntityAuthorization::checkCreatePermission
static function checkCreatePermission($entityTypeID, $userPermissions = null)
{
if(!is_int($entityTypeID))
{
$entityTypeID = (int)$entityTypeID;
}
if($entityTypeID === \CCrmOwnerType::Lead)
{
return \CCrmLead::CheckCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::Deal || $entityTypeID === \CCrmOwnerType::DealRecurring)
{
return \CCrmDeal::CheckCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::Quote)
{
return \CCrmQuote::CheckCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::Invoice)
{
return \CCrmInvoice::CheckCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::Contact)
{
return \CCrmContact::CheckCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::Company)
{
return \CCrmCompany::CheckCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::Order)
{
return Order\Permissions\Order::checkCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::OrderPayment)
{
return Order\Permissions\Payment::checkCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::OrderShipment)
{
return Order\Permissions\Shipment::checkCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::ShipmentDocument)
{
if (Main\Loader::includeModule('catalog'))
{
return
AccessController::getCurrent()->check(ActionDictionary::ACTION_CATALOG_READ)
&& AccessController::getCurrent()->check(ActionDictionary::ACTION_INVENTORY_MANAGEMENT_ACCESS)
&& AccessController::getCurrent()->checkByValue(
ActionDictionary::ACTION_STORE_DOCUMENT_MODIFY,
\Bitrix\Catalog\StoreDocumentTable::TYPE_SALES_ORDERS
)
;
}
return Order\Permissions\Shipment::checkCreatePermission($userPermissions);
}
elseif($entityTypeID === \CCrmOwnerType::StoreDocument)
{
return Main\Loader::includeModule('catalog') && AccessController::getCurrent()->check(ActionDictionary::ACTION_STORE_VIEW);
}
elseif(\CCrmOwnerType::isUseFactoryBasedApproach($entityTypeID))
{
$permissionsService = static::getPermissionsService($userPermissions);
$factory = Container::getInstance()->getFactory($entityTypeID);
if ($factory && $factory->isCategoriesSupported())
{
// check that can create in at least one category
$categories = $factory->getCategories();
foreach ($categories as $category)
{
$canAdd = $permissionsService->checkAddPermissions(
$entityTypeID,
$category->getId()
);
if ($canAdd)
{
return true;
}
}
return false;
}
return $permissionsService->checkAddPermissions($entityTypeID);
}
$entityTypeName = \CCrmOwnerType::ResolveName($entityTypeID);
$permissionEntityType = \CCrmPerms::ResolvePermissionEntityType($entityTypeName, 0);
return \CCrmAuthorizationHelper::CheckCreatePermission(
$permissionEntityType,
$userPermissions
);
}