mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-19 08:05:53 +03:00
feat(role-edit): точечная правка существующей роли
Закрывает #43. Повторный role-compile перевыпускал UUID и переписывал Rights.xml целиком, поэтому добавить права существующей роли было нечем — оставалась ручная правка XML. Операции: add-rights, set-rights, remove-rights, deny-rights, set-rls, remove-rls, add/set/remove-template, modify-property, set-synonym, set-comment. Пакет через ;;, значение из файла через @путь, отказ до записи со всеми причинами разом, авто-вызов role-validate. Грамматика имён и пресетов — та же, что у role-compile: копии таблиц и валидаторов взяты побайтово, навык дописан в 16 семей реестра check-inline-drift. Правка держит инвариант «меняется только то, что просили»: узел встаёт на своё место по uuid объекта, право — по канону типа, набор замыкается по зависимостям, снятие и запрет идут каскадом в обратную сторону. Проверено раундтрипом через платформу — выход обоих портов совпал с выгрузкой 1С байт в байт, включая RLS с полями и двумя строками ограничений. 22 кейса на обоих портах, 17 снэпшотов приняты платформой. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FGkXwoXTuafcu1SXMsauFq
This commit is contained in:
co-authored by
Claude Opus 5
parent
ce37fe6e53
commit
7bbacd8ef4
@@ -56,7 +56,7 @@ const FAMILIES = [
|
||||
variants: [
|
||||
{ id: 'full', authority: 'cf-edit',
|
||||
consumers: ['form-add', 'form-compile', 'form-edit', 'help-add', 'interface-edit', 'meta-compile',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'skd-compile', 'skd-edit',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'role-edit', 'skd-compile', 'skd-edit',
|
||||
'subsystem-compile', 'subsystem-edit', 'template-add', 'xdto-compile', 'xdto-edit'] },
|
||||
],
|
||||
},
|
||||
@@ -65,7 +65,7 @@ const FAMILIES = [
|
||||
variants: [
|
||||
{ id: 'full', authority: 'cf-edit',
|
||||
consumers: ['form-add', 'form-compile', 'form-edit', 'help-add', 'interface-edit', 'meta-compile',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'skd-compile', 'skd-edit',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'role-edit', 'skd-compile', 'skd-edit',
|
||||
'subsystem-compile', 'subsystem-edit', 'template-add', 'xdto-compile', 'xdto-edit'] },
|
||||
],
|
||||
},
|
||||
@@ -74,7 +74,7 @@ const FAMILIES = [
|
||||
variants: [
|
||||
{ id: 'full', authority: 'cf-edit',
|
||||
consumers: ['form-add', 'form-compile', 'form-edit', 'help-add', 'interface-edit', 'meta-compile',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'skd-compile', 'skd-edit',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'role-edit', 'skd-compile', 'skd-edit',
|
||||
'subsystem-compile', 'subsystem-edit', 'template-add', 'xdto-compile', 'xdto-edit',
|
||||
// *-info навыки читают тем же хелпером СОСТОЯНИЕ поддержки для вывода, а не запрещают
|
||||
// правку. Тело то же, поэтому семья общая.
|
||||
@@ -92,7 +92,7 @@ const FAMILIES = [
|
||||
{ id: 'full', authority: 'cf-edit',
|
||||
consumers: ['cfe-borrow', 'db-cfe-admin', 'db-dump-xml', 'db-load-cf', 'db-load-git', 'db-load-xml', 'db-repo', 'db-update',
|
||||
'epf-build', 'form-add', 'form-compile', 'form-edit', 'help-add', 'interface-edit', 'meta-compile',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'skd-compile', 'skd-edit',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'role-edit', 'skd-compile', 'skd-edit',
|
||||
'subsystem-compile', 'subsystem-edit', 'template-add', 'xdto-compile', 'xdto-edit'] },
|
||||
],
|
||||
},
|
||||
@@ -101,7 +101,7 @@ const FAMILIES = [
|
||||
variants: [
|
||||
{ id: 'full', authority: 'cf-edit',
|
||||
consumers: ['form-add', 'form-compile', 'form-edit', 'help-add', 'interface-edit', 'meta-compile',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'skd-compile', 'skd-edit',
|
||||
'meta-edit', 'meta-remove', 'mxl-compile', 'role-compile', 'role-edit', 'skd-compile', 'skd-edit',
|
||||
'subsystem-compile', 'subsystem-edit', 'template-add', 'xdto-compile', 'xdto-edit'],
|
||||
// support-edit и *-info читают uuid для ОТОБРАЖЕНИЯ состояния поддержки; в PY-портах
|
||||
// *-info пользуются другим путём, поэтому копия только в PS1.
|
||||
@@ -118,7 +118,7 @@ const FAMILIES = [
|
||||
// конфигурации не бывает. Поэтому вариант один на всех, переключателя не нужно.
|
||||
{ id: 'base', authority: 'form-compile',
|
||||
consumers: ['cfe-borrow', 'cfe-patch-method', 'form-add', 'form-validate', 'help-add', 'interface-edit',
|
||||
'meta-compile', 'mxl-compile', 'role-compile', 'subsystem-compile', 'template-add', 'xdto-compile'] },
|
||||
'meta-compile', 'mxl-compile', 'role-compile', 'role-edit', 'subsystem-compile', 'template-add', 'xdto-compile'] },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -127,7 +127,7 @@ const FAMILIES = [
|
||||
{ id: 'base', authority: 'meta-compile',
|
||||
consumers: ['cf-init', 'cf-validate', 'cfe-borrow', 'cfe-init', 'cfe-patch-method', 'cfe-validate', 'epf-build',
|
||||
'epf-init', 'epf-validate', 'erf-init', 'form-add', 'form-compile', 'form-validate',
|
||||
'meta-validate', 'mxl-compile', 'role-compile', 'subsystem-compile', 'subsystem-edit',
|
||||
'meta-validate', 'mxl-compile', 'role-compile', 'role-edit', 'subsystem-compile', 'subsystem-edit',
|
||||
'template-add', 'xdto-compile'] },
|
||||
],
|
||||
},
|
||||
@@ -222,7 +222,7 @@ const FAMILIES = [
|
||||
name: 'esc_xml (значение атрибута)', py: 'esc_xml', ps1: 'Esc-Xml',
|
||||
variants: [
|
||||
{ id: 'attr-with-quot', authority: 'meta-compile',
|
||||
consumers: ['form-compile', 'form-edit', 'meta-edit', 'mxl-compile', 'role-compile',
|
||||
consumers: ['form-compile', 'form-edit', 'meta-edit', 'mxl-compile', 'role-compile', 'role-edit',
|
||||
'skd-compile', 'skd-edit', 'subsystem-compile', 'subsystem-edit'] },
|
||||
],
|
||||
},
|
||||
@@ -231,7 +231,7 @@ const FAMILIES = [
|
||||
variants: [
|
||||
{ id: 'text-no-quot', authority: 'meta-compile',
|
||||
consumers: ['cf-init', 'cfe-init', 'epf-init', 'erf-init', 'form-compile', 'form-edit',
|
||||
'meta-edit', 'mxl-compile', 'role-compile', 'skd-compile', 'skd-edit',
|
||||
'meta-edit', 'mxl-compile', 'role-compile', 'role-edit', 'skd-compile', 'skd-edit',
|
||||
'subsystem-compile', 'subsystem-edit', 'xdto-compile'] },
|
||||
],
|
||||
},
|
||||
@@ -239,7 +239,7 @@ const FAMILIES = [
|
||||
{
|
||||
name: 'detect_xml_style', py: '_detect_xml_style', ps1: 'Detect-XmlStyle',
|
||||
variants: [
|
||||
{ id: 'base', authority: 'cf-edit', consumers: [],
|
||||
{ id: 'base', authority: 'cf-edit', consumers: ['role-edit'],
|
||||
// PS-сторона семьи пока закрыта только в радиусе задачи про порядок объектов;
|
||||
// в остальных навыках та же канонизация лежит инлайном — отдельная волна.
|
||||
consumersPy: ['cfe-borrow', 'form-add', 'form-remove', 'help-add', 'interface-edit', 'meta-edit',
|
||||
@@ -250,7 +250,7 @@ const FAMILIES = [
|
||||
{
|
||||
name: 'finalize_xml_bytes', py: '_finalize_xml_bytes', ps1: 'Finalize-XmlText',
|
||||
variants: [
|
||||
{ id: 'base', authority: 'cf-edit', consumers: [],
|
||||
{ id: 'base', authority: 'cf-edit', consumers: ['role-edit'],
|
||||
// PS-сторона семьи пока закрыта только в радиусе задачи про порядок объектов;
|
||||
// в остальных навыках та же канонизация лежит инлайном — отдельная волна.
|
||||
consumersPy: ['cfe-borrow', 'form-add', 'form-remove', 'help-add', 'interface-edit', 'meta-edit',
|
||||
@@ -415,7 +415,7 @@ const FAMILIES = [
|
||||
{ id: 'base', authority: 'meta-compile',
|
||||
consumers: [
|
||||
'cf-edit', 'form-compile', 'form-edit', 'interface-edit', 'meta-edit', 'mxl-compile',
|
||||
'role-compile', 'skd-compile', 'subsystem-compile', 'subsystem-edit'] }],
|
||||
'role-compile', 'role-edit', 'skd-compile', 'subsystem-compile', 'subsystem-edit'] }],
|
||||
},
|
||||
{
|
||||
name: 'case-insensitive input: ci_json', py: 'ci_json', ps1: null,
|
||||
@@ -423,7 +423,7 @@ const FAMILIES = [
|
||||
{ id: 'base', authority: 'meta-compile',
|
||||
consumers: [
|
||||
'cf-edit', 'form-compile', 'form-edit', 'interface-edit', 'meta-edit', 'mxl-compile',
|
||||
'role-compile', 'skd-compile', 'subsystem-compile', 'subsystem-edit'] }],
|
||||
'role-compile', 'role-edit', 'skd-compile', 'subsystem-compile', 'subsystem-edit'] }],
|
||||
},
|
||||
{
|
||||
// Единственная из трёх, которая нужна КАЖДОМУ порту: DSL читают не все навыки, а параметры — все.
|
||||
@@ -438,7 +438,7 @@ const FAMILIES = [
|
||||
'form-decompile', 'form-edit', 'form-info', 'form-remove', 'form-validate', 'help-add',
|
||||
'img-grid', 'interface-edit', 'interface-validate', 'meta-decompile', 'meta-edit', 'meta-info',
|
||||
'meta-remove', 'meta-validate', 'mxl-compile', 'mxl-decompile', 'mxl-info', 'mxl-validate',
|
||||
'role-compile', 'role-info', 'role-validate', 'skd-compile', 'skd-decompile', 'skd-edit',
|
||||
'role-compile', 'role-edit', 'role-info', 'role-validate', 'skd-compile', 'skd-decompile', 'skd-edit',
|
||||
'skd-info', 'skd-validate', 'subsystem-compile', 'subsystem-edit', 'subsystem-info',
|
||||
'subsystem-validate', 'support-edit', 'template-add', 'template-remove', 'web-info',
|
||||
'web-publish', 'web-stop', 'web-unpublish', 'xdto-compile', 'xdto-decompile', 'xdto-edit',
|
||||
@@ -502,7 +502,7 @@ const FAMILIES = [
|
||||
variants: [
|
||||
{ id: 'base', authority: 'interface-edit',
|
||||
consumers: ['cf-edit', 'form-compile', 'form-edit', 'meta-compile', 'meta-edit', 'mxl-compile',
|
||||
'role-compile', 'skd-compile', 'skd-decompile', 'subsystem-compile', 'subsystem-edit'] },
|
||||
'role-compile', 'role-edit', 'skd-compile', 'skd-decompile', 'subsystem-compile', 'subsystem-edit'] },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -510,7 +510,7 @@ const FAMILIES = [
|
||||
variants: [
|
||||
{ id: 'base', authority: 'interface-edit',
|
||||
consumers: ['cf-edit', 'form-compile', 'form-edit', 'meta-compile', 'meta-edit', 'mxl-compile',
|
||||
'role-compile', 'skd-compile', 'skd-decompile', 'subsystem-compile', 'subsystem-edit'] },
|
||||
'role-compile', 'role-edit', 'skd-compile', 'skd-decompile', 'subsystem-compile', 'subsystem-edit'] },
|
||||
],
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user