liventin / base.module.migration.smart.process
Service for migration smart processes
Package info
github.com/Liventin/base.module.migration.smart.process
Type:bitrix-d7-module
pkg:composer/liventin/base.module.migration.smart.process
Requires
- php: >=8.1
- liventin/base.module: ^1.0.0
Requires (Dev)
- roave/security-advisories: dev-latest
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-18 06:56:42 UTC
README
| Bitrix Base Module |
install | update
"require": {
"liventin/base.module.migration.smart.process": "^1.0.0"
}
redirect (optional)
"extra": {
"service-redirect": {
"liventin/base.module.migration.smart.process": "module.name",
}
}
PhpStorm Live Template
<?php namespace ${MODULE_PROVIDER_CAMMAL_CASE}\\${MODULE_CODE_CAMMAL_CASE}\Migration\SmartProcess; use ${MODULE_PROVIDER_CAMMAL_CASE}\\${MODULE_CODE_CAMMAL_CASE}\Service\Container; use ${MODULE_PROVIDER_CAMMAL_CASE}\\${MODULE_CODE_CAMMAL_CASE}\Service\Migration\SmartProcess\MigrateSmartProcessEntity; use ${MODULE_PROVIDER_CAMMAL_CASE}\\${MODULE_CODE_CAMMAL_CASE}\Service\Migration\SmartProcess\MigrateSmartProcessService; use Bitrix\Main\ObjectNotFoundException; use Bitrix\Main\SystemException; use Psr\Container\NotFoundExceptionInterface; use ReflectionException; class SmartProcessExample implements MigrateSmartProcessEntity { public static function getName(): string { return 'ExampleName'; } public static function getTitle(): string { return 'ExampleTitle'; } public static function getCode(): string { return 'EXAMPLE_CODE'; } /** * @throws NotFoundExceptionInterface * @throws ObjectNotFoundException * @throws ReflectionException * @throws SystemException */ public static function getParams(): array { /** @var MigrateSmartProcessService ${DS}service */ ${DS}service = Container::get(MigrateSmartProcessService::SERVICE_CODE); /** @var ParamsConstructor ${DS}config */ ${DS}config = ${DS}service->getParamsConstructor(); return ${DS}config ->setIsOpenPermissions(false) ->getParamsInArray(); } }
Права доступа при создании воронки (IS_SET_OPEN_PERMISSIONS)
Параметр «Права доступа при создании воронки» задаётся через ParamsConstructor::setIsOpenPermissions(bool).
false('N') — после создания смарт-процесса всем ролям (включая администраторские) выставляются нулевые права на его воронки: все записи прав удаляются, доступа нет ни у кого. Это перекрывает дефолтное поведение ядра Bitrix, которое при создании воронки автоматически выдаёт права ролям по их пресетам (MANAGER → «свои», DEPUTY → «отдел», HEAD → «все», ADMIN → «все»).true('Y') — поведение ядра не меняется: права выдаются как обычно.
Закрытие выполняется фоновой задачей (поставленной в очередь ПОСЛЕ задачи ядра, которая выдаёт права), чтобы гарантированно перекрыть выдачу прав ядром. Используется штатный API ядра CCrmRole::EraseEntityPermissons() для каждой воронки — удаление всех записей прав означает нулевой доступ у всех ролей. Определение админ-ролей не выполняется: при N права закрываются у всех без исключения.