Регламенты: пять проверок доступа до поиска и по прямой ссылке
Роль, статус документа и версия прав проверяются до выдачи текста; прямой идентификатор не является разрешением.
Задача и принятое решение
Регламент цены открыт продажам, регламент возврата — поддержке. В наборе есть отозванный документ. Обычный поиск и известный ID должны соблюдать одну политику.
Для каждой попытки я вычисляю разрешение до чтения текста. Пустая или чужая роль дает отказ. Отозванный источник исключается даже при сохраненном идентификаторе.
Тексты составлены для открытого стенда, настоящих закрытых регламентов здесь нет.
Проверить решение
Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.
| Попытка | Документ | Решение | Текст |
|---|---|---|---|
| T1 | PRICE | Разрешен | Цена называется только по действующему прайсу. Без цены запрос передается менеджеру. |
| T2 | PRICE | Закрыт | |
| T3 | RETURN | Разрешен | Возврат получает номер обращения. Срок решения не обещается без статуса проверки. |
| T4 | OLD | Закрыт | |
| T5 | RETURN | Закрыт |
Исходный набор
Авторский набор событий и полные тексты. Все решения выполняются локальным кодом, внешняя модель не вызывается.
Изменить входные строки
Посмотреть исходные строки
| Попытка | Роль | Документ | Статус | Доступ | Текст |
|---|---|---|---|---|---|
| T1 | sales | PRICE | active | sales | Цена называется только по действующему прайсу. Без цены запрос передается менеджеру. |
| T2 | support | PRICE | active | sales | Цена называется только по действующему прайсу. Без цены запрос передается менеджеру. |
| T3 | support | RETURN | active | support | Возврат получает номер обращения. Срок решения не обещается без статуса проверки. |
| T4 | sales | OLD | revoked | sales | Устаревшая контрольная строка DO-NOT-RETURN. |
| T5 | RETURN | active | support | Возврат получает номер обращения. Срок решения не обещается без статуса проверки. |
Что получилось
Из пяти попыток текст получают только T1 и T3. Чужая роль, пустая роль и отзыв дают пустой результат, включая запрос по известному ID. Оба изменения прав проверены повторным выполнением.
Выполненная проверка
| Проверка | Результат |
|---|---|
| Разрешены T1 и T3; закрытый текст не выдается | Пройдена |
| Отзыв ранее открытого источника сразу закрывает ответ | Пройдена |
| Смена роли не переносит прежнее разрешение | Пройдена |
Проверяется правило выдачи. Устойчивость реального сервера, сессии и кэша требует отдельной интеграционной проверки.
Скачать материалы и повторить проверку
source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css
Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.