Модель прав документа · P48-C04

Черновики редактора: матрица доступа и передача в команду

Личный черновик открывается автору; передача в команду меняет доступ только при действии владельца.

Задача и принятое решение

УАнны есть личный текст и общий материал команды A. Борис состоит в A, Вера — в B. Попытка чужого пользователя расшарить личный документ должна завершиться отказом.

Я сделал переход personal → team отдельной операцией с проверкой владельца. После нее пересчитывается матрица для трех пользователей. Отзыв возвращает документ в личный режим и закрывает прежнюю общую ссылку.

Все тексты публичные учебные. Это проверка переходов политики, а не защищенное хранилище редакции.

Проверить решение

Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.

Без измененияОперация
4Разрешенных пар
ПользовательДокументРежимДоступ
annaDRAFT1personalРазрешен
annaTEAM1teamРазрешен
annaTEAM2teamЗакрыт
borisDRAFT1personalЗакрыт
borisTEAM1teamРазрешен
borisTEAM2teamЗакрыт
veraDRAFT1personalЗакрыт
veraTEAM1teamЗакрыт
veraTEAM2teamРазрешен

Исходный набор

Авторский контрольный набор; не клиентские документы и не результаты внешней модели.

Изменить входные строки
Посмотреть исходные строки
IDАвторКомандаРежимТекст
DRAFT1annaApersonalЧерновик описания упаковки. Нужно уточнить внутренний размер и состав вкладыша.
TEAM1annaAteamПамятка команды A: перед публикацией сверяем артикул, размер, комплектацию и источник каждого числового условия.
TEAM2veraBteamПамятка команды B: сохраняем версию исходника и список измененных утверждений после редактуры.

Что получилось

Исходная матрица открывает DRAFT1 только Анне. Ее передача разрешает чтение Борису из A, но не Вере из B. Чужая попытка изменения отклоняется; отзыв вновь закрывает доступ Бориса.

Выполненная проверка

ПроверкаРезультат
Личный DRAFT1 доступен только annaПройдена
Владелец открывает DRAFT1 команде A, но не BПройдена
Борис не может открыть чужой личный документПройдена
Отзыв владельца закрывает прежний командный доступПройдена

Здесь нет серверной сессии, криптографии или защищенного хранения. Проверяется детерминированная политика доступа на несекретном наборе.

Скачать материалы и повторить проверку

source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css

Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.