Черновики редактора: матрица доступа и передача в команду
Личный черновик открывается автору; передача в команду меняет доступ только при действии владельца.
Задача и принятое решение
УАнны есть личный текст и общий материал команды A. Борис состоит в A, Вера — в B. Попытка чужого пользователя расшарить личный документ должна завершиться отказом.
Я сделал переход personal → team отдельной операцией с проверкой владельца. После нее пересчитывается матрица для трех пользователей. Отзыв возвращает документ в личный режим и закрывает прежнюю общую ссылку.
Все тексты публичные учебные. Это проверка переходов политики, а не защищенное хранилище редакции.
Проверить решение
Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.
| Пользователь | Документ | Режим | Доступ |
|---|---|---|---|
| anna | DRAFT1 | personal | Разрешен |
| anna | TEAM1 | team | Разрешен |
| anna | TEAM2 | team | Закрыт |
| boris | DRAFT1 | personal | Закрыт |
| boris | TEAM1 | team | Разрешен |
| boris | TEAM2 | team | Закрыт |
| vera | DRAFT1 | personal | Закрыт |
| vera | TEAM1 | team | Закрыт |
| vera | TEAM2 | team | Разрешен |
Исходный набор
Авторский контрольный набор; не клиентские документы и не результаты внешней модели.
Изменить входные строки
Посмотреть исходные строки
| ID | Автор | Команда | Режим | Текст |
|---|---|---|---|---|
| DRAFT1 | anna | A | personal | Черновик описания упаковки. Нужно уточнить внутренний размер и состав вкладыша. |
| TEAM1 | anna | A | team | Памятка команды A: перед публикацией сверяем артикул, размер, комплектацию и источник каждого числового условия. |
| TEAM2 | vera | B | team | Памятка команды 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; сетевые обращения не выполняются.