- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/sign/access.php
- Класс: Bitrix\Crm\Integration\Sign\Access
- Вызов: Access::installDefaultRoles
static function installDefaultRoles(bool $removeAllPrevious = false): string
{
self::loadLanguageFile();
$filter = $removeAllPrevious ? [
'=GROUP_CODE' => RolePermissionService::ROLE_GROUP_CODE,
] : [
'=NAME' => self::DEFAULT_ROLE_NAME,
'=IS_SYSTEM' => 'Y',
];
$existedRoles = CCrmRole::GetList(
['ID' => 'DESC', ],
$filter
);
while($existedRole = $existedRoles->Fetch())
{
if (isset($existedRole['ID']))
{
(new CCrmRole)->Delete($existedRole['ID']);
}
}
$accessList = [
CCrmOwnerType::ContactName => [
'READ' => ['-' => CCrmPerms::PERM_ALL],
'EXPORT' => ['-' => CCrmPerms::PERM_ALL],
'IMPORT' => ['-' => CCrmPerms::PERM_ALL],
'ADD' => ['-' => CCrmPerms::PERM_ALL],
'WRITE' => ['-' => CCrmPerms::PERM_ALL],
'DELETE' => ['-' => CCrmPerms::PERM_ALL],
],
CCrmOwnerType::SmartDocumentName => [
'READ' => ['-' => CCrmPerms::PERM_ALL],
'EXPORT' => ['-' => CCrmPerms::PERM_ALL],
'IMPORT' => ['-' => CCrmPerms::PERM_ALL],
'ADD' => ['-' => CCrmPerms::PERM_ALL],
'WRITE' => ['-' => CCrmPerms::PERM_ALL],
'DELETE' => ['-' => CCrmPerms::PERM_ALL],
],
];
$result = self::install(
Loc::getMessage('CRM_SIGN_ROLE_EMPLOYMENT'),
$accessList,
RolePermissionService::ROLE_GROUP_CODE . '_EMPLOYMENT',
self::getNeededGroupId('EMPLOYEES_' . self::getSiteId())
);
if (!empty($result))
{
return $result;
}
return self::install(
Loc::getMessage('CRM_SIGN_ROLE_CHIEF'),
$accessList,
RolePermissionService::ROLE_GROUP_CODE . '_CHIEF',
self::getNeededGroupId('DIRECTION')
);
}