- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/access/service/roledealcategoryservice.php
- Класс: Bitrix\Sender\Access\Service\RoleDealCategoryService
- Вызов: RoleDealCategoryService::fillDefaultDealCategoryPermission
public function fillDefaultDealCategoryPermission(int $dealCategoryId): array
{
$query = [];
$map = RoleUtil::preparedRoleMap();
$managerRoleId = null;
$adminRoleId = null;
foreach ($map as $roleKey => $permissions)
{
$roleName = RoleUtil::getLocalizedName($roleKey);
$roleId = $this->rolePermissionService->saveRole($roleName, $dealCategoryId);
$query = array_merge($query, RoleUtil::buildInsertPermissionQuery($permissions, $roleId));
if ($roleKey === 'MANAGER')
{
$managerRoleId = $roleId;
}
if ($roleKey === 'ADMIN')
{
$adminRoleId = $roleId;
}
}
RoleUtil::insertPermissions($query);
(new RoleRelationService())->saveRoleRelation([
[
'id' => $managerRoleId,
'accessCodes' => [
'AE0' => 'usergroups'
],
],
[
'id' => $adminRoleId,
'accessCodes' => [
'G1' => ''
],
],
]);
return $this->rolePermissionService->getRoleList(
[
"filter" => ["=DEAL_CATEGORY_ID" => $dealCategoryId]
]
);
}