# Группа доступа "Секретные документы" для версии 5.Х.Х **Category:** [Группы доступа](https://community.tezis-doc.ru/c/gruppy-dostupa/67) **Created:** 2024-07-02 09:56 UTC **Views:** 306 **Replies:** 0 **URL:** https://community.tezis-doc.ru/t/gruppa-dostupa-sekretnye-dokumenty-dlya-versii-5-h-h/279 --- ## Post #1 by @d.slepnev **Группа доступа позволяет видеть только свои простые документы\договоры\задачи и при этом видеть все документы с грифом "секретно". Для создания такой группы необходимо:** При создании вида "Секретные документы" указать "Код", который в дальнейшем необходимо указать в скрипте. Такой подход позволяет нам сделать "секретными" определенные виды документов. Рекомендуется запрещать такие виды создавать не по шаблону или закрывать вид ограничением в группе по сущности df$DocKind. В качестве подготовки в настройках видов маркируем наши виды в поле "Код" значением "security". **В итоге для группы "Ограниченный доступ + все секретные" получаем такое ограничение (для сущности df$Doc):** ``` ({E}.id = acl.card.id and (acl.user.id = :session$userId or acl.global = true)) or ({E}.id = acl.card.id and {E}.docKind.code = 'security') ``` **Для группы "Ограниченный доступ - все секретные" получаем другое ограничение:** ``` ({E}.id = acl.card.id and (acl.user.id = :session$userId or acl.global = true)) or ({E}.id = acl.card.id and {E}.docKind.code = 'simple') ``` Таким образом, пользователи из группы доступа "Ограниченный доступ + все секретные" будут видеть свои объекты и все виды с кодом "security". Если пользователей из группы "Ограниченный доступ - все секретные" пригласят к секретному документу, то они все равно не получат к нему доступ на просмотр. **Вариант второй: по категории** Второй подход позволяет нам скрывать не определенные виды документов, а конкретные экземпляры. Для этого будет использоваться поле "Категория" в документе. В качестве подготовки в справочнике категорий создадим запись "Секретный" с кодом "security". Тогда при необходимости сделать документ секретным, достаточно будет выбрать эту категорию в поле. Рекомендуется в таком случае делать данное поле обязательным для заполнения, чтобы упростить дальнейшую работу с ограничением группы. **В итоге для группы "Ограниченный доступ + секретная категория" получаем такое ограничение:** ``` ({E}.id = acl.card.id and (acl.user.id = :session$userId or acl.global = true)) or ({E}.id = acl.card.id and {E}.docCategory.code = 'security') ``` **Для группы "Ограниченный доступ - секретная категория":** В предложение join добавить: ``` left outer join {E}.aclList acl left join {E}.docCategory ccat ``` В предложение where добавить: ``` {E}.id = acl.card.id and (acl.user.id = :session$userId or acl.global = true) and (ccat.code is null or ccat.code <> 'security') ``` Таким образом, пользователи из группы доступа "Ограниченный доступ + секретная категория" будут видеть свои объекты и все, что отмечено с категорией "Секретный". Пользователи из группы «Ограниченный доступ - секретная категория" будут видеть только свои объекты, которые не относятся к категории security. Если пользователей из группы "Ограниченный доступ - секретная категория" пригласят к секретному документу, то они все равно не получат к нему доступ на просмотр. **Альтернативное решение:** Запретить создавать вид документа не по шаблону. Убедиться, что ни у одного пользователя нет шаблона, кроме администратора. Администратором создать локальный шаблон (без галки "Доступен всем") и на вкладке "Безопасность" прописать всех тех, кто должен видеть шаблон и документы по нему созданные. В этом случае простые пользователи не создадут документ данного вида сами и не будут его видеть, пока им не дадут доступ к нему. --- **Canonical:** https://community.tezis-doc.ru/t/gruppa-dostupa-sekretnye-dokumenty-dlya-versii-5-h-h/279 **Original content:** https://community.tezis-doc.ru/t/gruppa-dostupa-sekretnye-dokumenty-dlya-versii-5-h-h/279