136  /  175

Пример динамического назначения прав на документ

Просмотров: 3987 (Статистика ведётся с 06.02.2017)

Рассмотрим пример динамического изменения прав на документ по мере выполнения бизнес-процесса на базе списков.

Изначально, конкретный пользователь будет иметь один уровень прав, который задаются на весь список. В ходе выполнения бизнес-процесса, который будет запускаться при создании нового элемента списка этим пользователем, права для него на этот элемент поэтапно будут изменяться.

Особенности назначения прав в системе:

Создадим простой пример бизнес-процесса на базе списка, который будет рассчитан на конкретного пользователя из определенной группы и наглядно продемонстрирует работу с правами:

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

    Это право подразумевает, что пользователь из этой группы может создать новый элемент списка, но не может ни просматривать, ни редактировать его. Поэтому сразу после создания такого элемента, он даже не будет отображаться в общем списке.
  • Создадим простой последовательный шаблон бизнес-процесса, который будет запускаться при создании элемента списка.

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

      Утверждение документа, в нашем случае, позволит реализовать изменение сценария назначения прав, в зависимости от того, будет ли утвержден или отклонен документ.

    • В ветку положительного утверждения документа добавим действие Установка прав, в котором отметим опцию Перезаписать и только для операции Право на операцию "Чтение" имеют укажем нужного пользователя:

      Этим самым, после выполнения данного действия пользователь будет наделен правом на просмотр созданного им, и ранее недоступного, элемента списка.

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

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

В результате получится такая схема:


Как это работает?

Требуемый пользователь создает элемент списка, который не будет для него сразу отображаться:

После чего для него будет создано первое задание бизнес-процесса по утверждению документа:

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

В случае утверждения, пользователь получит права на чтение, о чем будет свидетельствовать появление как самого элемента в списке, так и соответствующих элементов управления для него:

После чего будет создано второе задание бизнес-процесса по утверждению документа:

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

В случае утверждения, пользователь получит права на изменение, о чем будет свидетельствовать появление соответствующих элементов управления:

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

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

Документация по теме:


4
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии