Учебник: Управление доступом к печати с Doconut
8/21/2026

Учебник: Управление доступом к печати с Doconut

Пошаговое руководство по печати с Doconut, авторизации, управляемой приложением, элементам управления просмотрщиком и тестированию без использования вымышленных фрагментов API.

Официальный каталог функций Doconut перечисляет печать из браузера и экспорт в PDF как возможности просмотрщика. Управление доступом к этим функциям всё равно требует двух отдельных решений: будет ли Doconut показывать соответствующее действие и авторизует ли хост‑приложение эту операцию для текущего пользователя и документа.

Путь печати документа, завершающийся на контролируемом шлюзе авторизации
Путь печати документа, завершающийся на контролируемом шлюзе авторизации

Чтобы узнать точные возможности, поддерживаемые вашей установленной сборкой, начните с документации Doconut и образцов, доступных на официальной странице загрузки Doconut. Не копируйте ключи конфигурации или исходный код из несоответствующей версии или непроверенной статьи.


1. Сначала определите политику печати

Запишите, кто может печатать и при каких условиях, прежде чем менять панель инструментов. Полезная политика отвечает на такие вопросы:

  • Разрешена ли печать для всех просмотрщиков, только для определённых ролей или конкретных документов?
  • Зависит ли решение от арендатора, статуса дела, классификации документа или срока действия?
  • Требуется ли водяной знак на печатном выводе?
  • Нужно ли вести аудит событий печати?
  • Может ли пользователь печатать более старую ревизию документа?
  • Что должно происходить, если разрешения изменятся, пока предварительный просмотр открыт?

Избегайте единого глобального Boolean, когда реальное правило контекстуально. Моделируйте печать как отдельную операцию, чтобы её можно было авторизовать независимо от просмотра и скачивания.

2. Разделите состояние UI от авторизации

Хост‑страница может решить, показывать ли элемент управления печатью после получения результата авторизации, управляемого приложением. Это повышает ясность для пользователей, которым печать недоступна.

Однако скрытие элемента не является границей авторизации. Пользователь всё равно может вызвать известный конечный пункт напрямую, повторно отправить прежний запрос или инициировать печать через браузер на видимом контенте. Каждый серверный маршрут, генерирующий печатный вывод, должен применять ту же политику.

Используйте отдельные состояния в UI:

СостояниеПоведение просмотрщикаПоведение сервера
Печать разрешенаПоказать поддерживаемое действие печатиАвторизовать и создать запрошенный вывод
Печать запрещенаСкрыть или отключить действие с чётким объяснениемВернуть ответ «Запрещено»
Политика неизвестнаОставить действие недоступным, пока загружаются разрешенияНе создавать вывод
Сессия истеклаПопросить пользователя повторно аутентифицироватьсяОтклонить устаревший запрос

3. Защитите конечный пункт печати

Защитите операцию приложения, которая инициирует печать или возвращает печатный вывод. Решение об авторизации должно учитывать принадлежность к арендатору, владение, классификацию, состояние рабочего процесса и ревизию документа. Разрешайте документ на сервере, а не принимайте путь или адрес хранилища, переданные клиентом.

Если ваше приложение печатает через маршрут, специфичный для просмотрщика, а не создаёт PDF, примените ту же авторизацию перед вызовом этого маршрута.

4. Настройте установленную версию просмотрщика

После того как серверное правило готово, настройте UI Doconut, используя точный параметр, задокументированный для пакета и образцов, поставляемых с вашей версией. Онлайн‑демонстрации Doconut позволяют увидеть поддерживаемое поведение просмотрщика до того, как вы зафиксируете конкретную интеграцию. Проверьте:

  1. Где задаётся параметр: серверная конфигурация, модель представления или инициализация клиента.
  2. Скрывает ли он элемент панели, отключает действие или влияет на генерируемый вывод.
  3. Применяется ли значение к каждому экземпляру просмотрщика отдельно или глобально.
  4. Являются ли печать и экспорт отдельными операциями.
  5. Не изменилось ли название параметра или значение по умолчанию в обновлении.

Считайте официальные образцы источником истины. Похожее название свойства не является достаточным доказательством того, что установленный просмотрщик его распознаёт.

5. Честно относитесь к печати через браузер

Настройка просмотрщика не может гарантировать, что видимая информация никогда не будет распечатана или захвачена. Печать через браузер может затронуть хост‑страницу, а пользователи могут делать скриншоты или фотографии. Перехват клавиш и CSS, специфичный для печати, могут улучшить ожидаемый опыт, но они обходятся мерами на клиенте.

Если хост‑страница не должна создавать полезную бумажную копию, ваше приложение может использовать собственную презентацию для печати, заменяя предварительный просмотр пояснительным сообщением. Держите такое поведение хост‑страницы отдельно от документированных элементов управления Doconut.

Не описывайте это как «защиту документа». Используйте серверный рендеринг, авторизацию, контролируемый экспорт и видимые водяные знаки, когда ваша оценка риска требует более сильного сдерживания.

6. Держите загрузку, экспорт и печать раздельными

Пользователи и разработчики часто рассматривают их как один «режим только для чтения», но это разные потоки данных:

  • View отображает отрендеренный контент.
  • Download возвращает исходный файл или другой сохранённый файл.
  • Export создаёт производный формат.
  • Print генерирует печатное представление или инициирует печать через браузер.

Авторизуйте каждую операцию явно. Пользователь, которому запрещена печать, может всё ещё иметь право на загрузку, и наоборот. Ваша панель инструментов должна отражать решения сервера, а не определять их.

7. Добавьте полезные события аудита

Если печать чувствительна, фиксируйте решение без записи самого документа. Событие может включать пользователя, арендатора, идентификатор документа, ревизию, результат политики, метку времени и correlation ID.

Записывайте как успешные, так и отклонённые попытки. Если сервис печати создаёт временный файл, также фиксируйте, завершилась ли его очистка. Держите пути к файлам, токены, названия документов, содержащие персональные данные, и печатный контент вне обычных журналов.

8. Тестируйте не только отсутствие кнопки

Панель инструментов — лишь первое утверждение. Добавьте тесты для всей операции:

Авторизованный пользователь

  • Предназначенное действие печати видно.
  • Запрос печати выполняется успешно для разрешённого документа.
  • Используется правильная ревизия.
  • Требуемые пометки присутствуют в сгенерированном выводе.
  • Событие аудита фиксирует успех.

Неавторизованный пользователь

  • Действие отсутствует или отключено.
  • Прямой запрос к маршруту печати возвращает ответ «Запрещено».
  • Изменение идентификатора документа не обходя правило.
  • Скопированный адрес из авторизованной сессии нельзя использовать неправомерно.
  • Отказ не раскрывает, принадлежит ли документ другому арендатору.

Изменения состояния

  • Отзыв разрешения в ходе сессии применяется к следующему запросу печати.
  • Истёкшая сессия не может печатать.
  • Удалённый или заменённый документ выдаёт контролируемую ошибку.
  • Временный печатный вывод следует настроенному правилу удержания.

Автоматизация через браузер может проверить видимое состояние и код ответа. Интеграционные тесты должны независимо проверять оценку политики и авторизацию на уровне документа.

Часто задаваемые вопросы

Прекратит ли скрытие кнопки печати работу сочетания клавиш браузера?
Нет. Оно удаляет только преднамеренное действие просмотрщика, если установленный просмотрщик реализует такое поведение. Печать через браузер и захват экрана требуют отдельного рассмотрения и не могут быть полностью предотвращены клиентским кодом.

Следует ли включать разрешение на печать в адрес просмотра?
Отдавайте предпочтение серверному решению авторизации, связанному с аутентифицированным пользователем, документом и операцией. Если временная ссылка несёт разрешения, ограничьте её область, защитите от журналов и рефереров и повторно проверяйте чувствительные действия.

Достаточно ли отключить печать для конфиденциальных документов?
Нет. Это лишь один из элементов управления удобством или сдерживанием. Конфиденциальные рабочие процессы также требуют защиты хранилища, авторизации на уровне объектов, контролируемого экспорта, правил удержания, мониторинга и принятой модели остаточного риска.

Заключение

Надёжная реализация контроля печати Doconut начинается на сервере и заканчивается в интерфейсе. Определите политику, защитите операцию, настройте только задокументированный параметр для установленного просмотрщика, объясните результат пользователям и протестируйте прямые запросы, а также видимость кнопки. Используйте официальную страницу функций, документацию, загрузки и демонстрации как источники реализации, а не воссоздавайте код продукта в статье.