Загрузка...

5. Действия / 5.02. Действие Доступ

Доступ к документам можно настраивать двумя способами: на вкладке "Доступ" типа документа и через действие "Доступ". Первый вариант позволяет предоставлять доступ к документам определенного автора или созданным в конкретном подразделении. Если этот вариант удовлетворяет стоящим требованиям следует предпочесть его второму варианту, который позволяет управлять правами намного более гибко, но способен создавать дополнительную нагрузку на сервер.

Действие Доступ можно запустить отовсюду - из кнопок документов и журналов, и из контекстов маршрута. Действие позволяет предоставить доступ к документу. По умолчанию, доступ к документу имеет только автор, потому что при создании документа в соответствующую матрицу вносится запись о его праве на доступ к этому документу. Управление этой матрицей доступа и осуществляет действие Доступ (забегая вперед, через действие Доступ можно легко запретить доступ к документу даже автору).

Администратору для настройки действия доступны следующие параметры:

  • Кому предоставляется доступ. Здесь выбираются одно или несколько полей, содержащих идентификаторы структуры. Обычно, это ссылочные поля (тип ссылки Структура), но можно использовать и строку, и текст, и любое иное поле, способное вернуть структурный идентификатор.
  • Объект. Определяем на какой документ или группу документов настраиваем доступ. Это может быть: - Текущий документ - Документ по ссылке из поля. Поле должно содержать один или несколько идентификаторов документов, доступ к которым нужно настроить. - Тип документа из списка. Будем работать со всеми документами, который выберет администратор при настройке действия. - Тип документа по ссылке из поля. А можно выбор типа документа переложить и на пользователя, записав тем или иным образом этот тип (типы, через запятую) в некое поле документа и указав его в описываемом параметре Объект.
  • Автор объекта. Определенный предыдущим параметров круг документов можно еще более сузив, задействовав возможность указания авторства документов (параметр неактуален, если в качестве объекта выбран текущий документ - там автор и так уже известен). Например, в качестве объекта администратор выбрал тип документа "Заявки", а в данном параметре указал Отдел X. В результате такого примера доступ будет применен к заявкам, которые были созданы в Отделе X, но не в отделах Y, W, Z и т.д. Автор объекта передается действию через поле, содержащее структурные идентификаторы сотрудников или подразделений.
  • Доступ можно предоставить или удалить. В самом начале мы упомянули о том, что автора можно лишит доступа к созданному им документу. Для этого в параметре Кому указываем поле, которое будет содержать структурный идентификатор автора (его можно записать, скажем, через действие Запись), в качестве объекта выбираем текущий документ, а доступа устанавливаем в Удалить.
    При удалении доступа действие проверяет все дочерние элементы Структуры субъекта (поле Кому). Если, к примеру, удаляется доступ для некоего подразделения, в котором находятся 5 сотрудников, то доступ будет удален как для этого подразделения, так и для всех пяти сотрудников. Таким образом, чтобы удалить доступ к документу вообще для всех, достаточно в поле Кому указать корневую точку Структуры (как правило, это сама организация). Учтите, что при таком вызове действия будут удалены права доступа полностью для всех сотрудников, включая автора документа. 

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

Матрица безопасности

В системе существует матрица безопасности, определяющая доступ к документу субъектов структуры: пользователя и подразделений. Каждый пользователь в системе имеет несколько идентификаторов - свой собственный и всех подразделений, в которых он присутствует (организация, департамент, отдел и пр). При попытке доступа к документу система проверяет все эти идентификаторы в матрице безопасности и, при их наличии, разрешает загрузку документа.

Действие Доступ занимается тем, что добавляет и удаляет записи в матрицу безопасности. При добавлении доступа для конкретного пользователя или подразделения действие просто добавляет запись, содержащую идентификаторы пользователя или подразделения и документа (если доступ настраивается для типа документа, то получаются все документа данного типа, существующие на момент запуска действия). При удалении доступа действие удаляет все записи, содержащие идентификатор заданного документа и пользовательский идентификатор. Если отменяется доступ для подразделения, то действие удаляет все записи, относящиеся к заданному документу и имеющие идентификаторы как самого подразделения, так и его дочерних, а также пользователей. Таким образом, чтобы отменить доступ к документу для всех можно просто запустить действие Доступ, где в качестве субъекта указать организацию.

См. также:

3.06. Доступ