Во всех командах ниже {python} означает python в Windows и python3 в macOS/Linux/WSL. Выбирай команду сразу по текущей ОС, не запускай оба варианта.
Назначение
Показывает сводку прав доступа по проекту и позволяет установить значение
КонтрольДоступа.Разрешения.ПоУмолчанию с dry-run и подтверждением.
Алгоритм
Шаг 1 — Показать текущее состояние
{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
--root <корень-проекта> [--object <ИмяОбъекта>]
Скрипт выводит JSON. Сформируй таблицу для пользователя:
| Объект | Тип | ПоУмолчанию |
|---|---|---|
| Склады | Справочник | null → дефолт = РазрешеноАдминистраторам |
| Заказы | Документ | РазрешеноАутентифицированным |
| Задачи | Справочник | РазрешенияВычисляютсяДляКаждогоОбъекта |
null = секция КонтрольДоступа отсутствует — платформа применяет РазрешеноАдминистраторам.
Шаг 2 — Определить целевое значение
Если пользователь явно указал значение в запросе — использовать его. Иначе спросить:
Какое значение установить? 1.
РазрешеноАутентифицированным— только вошедшие пользователи (рекомендуется) 2.РазрешеноВсем— все, включая анонимных 3.РазрешеноАдминистраторам— только администраторы
⚠️ Если пользователь хочет РазрешенияВычисляютсяДляКаждогоОбъекта (построчный RLS) — направь в скилл xbsl-pattern-rls.
Шаг 3 — Проверить exit-код при работе с одним объектом
{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
--root <корень> --set <значение> --object <Имя>
- exit(3) → объект использует
РазрешенияВычисляютсяДляКаждогоОбъекта. Сообщи пользователю:Объект
<Имя>настроен на построчный RLS. ИзменениеПоУмолчаниюможет нарушить логику доступа. Используйте скиллxbsl-pattern-rls.
Завершить работу, не применять изменений.
- exit(0) → продолжить к Шагу 4.
Шаг 4 — Dry-run
{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
--root <корень> --set <значение> [--object <Имя>]
Отобразить вывод скрипта (список изменений + пропущенных).
Шаг 5 — Показать план и ОСТАНОВИТЬСЯ
Показать вывод dry-run и завершить ответ. Не выполнять --apply в этом же ходу.
Спросить:
Применить изменения? 1. Да 2. Нет
Шаг 6 — Apply (только после подтверждения пользователя)
{python} .claude/skills/xbsl-access-set/scripts/access_state.py \
--root <корень> --set <значение> [--object <Имя>] --apply
Аргументы скрипта
| Аргумент | Описание |
|---|---|
--root |
Корень проекта (по умолчанию .) |
--set <значение> |
Целевое значение ПоУмолчанию. Без флага — режим сводки |
--object <Имя> |
Ограничить одним объектом |
--apply |
Применить изменения (без флага — dry-run) |
Допустимые значения --set:
РазрешеноВсем, РазрешеноАутентифицированным, РазрешеноАдминистраторам, РазрешенияВычисляются.
Значение РазрешенияВычисляютсяДляКаждогоОбъекта напрямую установить нельзя — используй xbsl-pattern-rls.
Коды выхода
- 0 — успех
- 1 — ошибка (проект не найден, объект не найден, недопустимое значение)
- 3 — объект с
--objectиспользуетРазрешенияВычисляютсяДляКаждогоОбъекта→ направить вxbsl-pattern-rls
Примечания
- Объекты с
РазрешенияВычисляютсяДляКаждогоОбъектапри пакетном обновлении автоматически пропускаются с предупреждением. - Если объект уже имеет целевое значение — пропускается (файл не изменяется).
- Секция вставляется перед
Реквизиты:/Измерения:/ШаблоныUrl:в зависимости от типа объекта. - HttpСервис: обновляется только верхнеуровневый
КонтрольДоступа(не вложенные вШаблоныUrl).