Перейти к содержанию

Система прав доступа к карточкам, включенным в типовое решение

Для карточек, включенных в типовое решение, автоматически начинает работать система прав доступа. В том числе в типовое решение можно включать карточки справочников и для них настраивать права доступа.

Основные принципы работы системы прав доступа

В данном разделе тезисно указаны принципы работы системы прав доступа в Tessa.

  • В системе нет запрещающих правил доступа (за исключением запретов для отдельных секций/вкладок в расширенных правилах доступа). По умолчанию в системе всё запрещено, а правилами доступа выдается доступ кому-либо к чему-либо.

  • Правила доступа никак не влияют на видимость строк в представлении. Видимость строк регулируется SQL запросом представления.

  • Доступ к кнопкам запуска/отзыва различных процессов настраивается в карточках вторичных процессов или в карточках шаблонов процессов.

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

  • Права доступа наследуются по замещению.

  • С помощью расширенных прав доступа можно:

    • настроить доступ к отдельных полям и секциям карточки или задания;

    • маскировать данные;

    • указать видимость контролов и обязательность заполнения полей;

    • гибко настроить доступ к файлам.

Общий механизм расчёта прав доступа к карточке

Доступ к карточкам документов осуществляется согласно карточкам правил доступа и заданиям процесса, которые находятся в карточке.

Система определяет, какие правила соответствуют типу карточки, состоянию процесса, ролям, в которые входит текущий пользователь, проверяет дополнительные условия, настроенные в правиле доступа, и рассчитывает права соответственно этим правилам.

Карточка правил доступа

Создавать и редактировать карточки правил доступа могут только сотрудники, имеющие уровень доступа “Администратор”. Создать новую карточку можно из правого меню “Создать карточку → Настройки → Правило доступа” или кнопкой создания в представлении “Администратор → Типовое решение → Правила доступа”:

Внешний вид основной вкладки карточки:

В карточке правил доступа указывается:

  • Тема карточки – обязательное поле, указывается краткое название карточки.

  • Описание – необязательное поле, указывается информация, раскрывающая тему карточки.

  • Всегда проверять правила доступа - флаг указывает, что при расчёте прав доступа, если данное правило выполняется, то весь список разрешений, указанных в данном правиле, будет рассчитываться, а не только запрашиваемый набор прав.

    Пример

    Example

    Если в правиле доступа не выставлен флаг и при этом пользователь открывает карточку, находящуюся в состоянии, отличном от “Проект”, доступную ему по этому правилу доступа на чтение и редактирование, то карточка открывается только на чтение.

    Для перехода в режим редактирования пользователю необходимо в левом меню нажать на кнопку “Редактировать”, система выполнит расчёт прав и если есть какие-либо права, помимо чтения карточки, эти права буду предоставлены. В данном примере, после нажатия на кнопку “Редактировать”, поля карточки откроются на редактирование.

    Если в этом же правиле доступа выставить флаг, то та же карточка документа (доступная по правилу доступа на чтение и редактирование и находящаяяся в состоянии, отличном от “Проект”) откроется сразу на редактирование, т.е. нет необходимости пользователю нажимать кнопку “Редактировать” в левом меню системы.

    Note

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

    Warning

    Не рекомендуется выставлять данный флаг в правилах доступа без острой необходимости, потому что каждое правило доступа с таким флагом даёт ощутимую нагрузку на БД (особенно в системе с большим количеством пользователей), т.к. при каждом открытии карточки любым пользователем будет выполняться дополнительный расчёт по таким правилам, хотя в большинстве случаев пользователи открывают карточки только для просмотра информации или выполнения заданий, т.е. без необходимости редактирования карточки. Для карточек в состоянии “Проект”, не зависимо от данного флага, права всегда рассчитываются сразу при открытии.

  • Отключить правило доступа - флаг указывает, что данное правило отключено и его настройки не учитываются при расчёте прав доступа.

  • Типы – обязательное поле, типы карточек, включенных в типовое решение, к которым применяется правило.

  • Состояния карточек – состояния карточек, в которых будут работать определенные ниже разрешения.

  • Список ролей – обязательное поле; роли, для которых выдаются указанные права для указанных типов карточек в указанных состояниях. В списке ролей можно указать, в том числе, и контекстные роли, например, “Инициатор” или “Создатель карточки”.

    Note

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

  • Список условий - список дополнительных условий, которые проверяются при проверке правила. Более подробно про список условий можно посмотреть в разделе Заполнение таблицы с условиями.

  • Список разрешений – разрешения, выдаваемые для указанных типов карточек в указанных состояниях для пользователей, состоящих в указанных ролях. Право на создание карточки не зависит от указанных состояний.

Внешний вид вкладки с расширенными настройками правил доступа:

Более подробно расширенные настройки прав доступа описаны в раздел Расширенные настройки прав доступа.

Права доступа к карточке

Существуют следующие права доступа к карточке:

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

    Note

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

    Important

    После создания и до сохранения карточки учитываются правила доступа, в которых выставлен флаг “Создание карточки”. Для корректного создания карточек необходимо, чтобы в правиле доступа помимо флага “Создание карточки”, был выставлен флаг “Редактирование карточки” (и прочие минимально необходимые права для файлов и т.п.), при этом состояния значения не имеют, они будут учитываться только после сохранения карточки документа. Если в правиле на создание карточки не выставить флаг “Редактирование карточки”, то по такому правилу, создав карточку, пользователю она будет не доступна для редактирования (и сохранения, если в карточке есть обязательные поля).

  • Создание шаблона и копирование - пользователь может создаваь шаблоны карточек и копировать существующие в системе и доступные ему карточки.

  • Чтение карточки – пользователь может открывать карточку и просматривать ее содержимое.

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

  • Редактирование маршрута – пользователь может редактировать маршрут (кроме активных и завершенных этапов).

  • Полный пересчёт маршрута - пользователь может выполнять пересчёт маршрута в карточке документа (доступна кнопка “Пересчитать” на вкладке “Маршрут”).

  • Пропуск этапов - пользователь может пропускать этапы в маршруте согласования. Имеет более высокий приоритет, чем флаг “Разрешён пропуск” в настройках этапа.

  • Ручное редактирование номера – пользователь может изменять номер документа.

  • Подписание файлов - пользователь сможет подписывать электронной подписью приложенные файлы для для указанных типов документов.

  • Добавление файлов – пользователь может добавлять файлы в карточку.

  • Редактирование собственных файлов - пользователь может редактировать только файлы, которые он сам добавил к карточке.

  • Редактирование всех файлов – пользователь может редактировать любые файлы карточки.

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

  • Удаление всех файлов – пользователь может удалять любые файлы карточки.

  • Удаление карточки – пользователь может удалить карточку.

  • Инициация типового процесса отправки задач – пользователь может создавать задачи для этого документа, а также отправлять документ на ознакомление.

  • Добавление обсуждений - пользователь может создавать новые обсуждения.

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

  • Подписка на уведомления - пользователь может включать/отключать подписку на уведомления по карточке.

  • Редактировать мои сообщения - пользователь может редактировать свои сообщения в обсуждениях, которые ему доступны.

  • Редактировать все сообщения - пользователь может редактировать все сообщения в обсуждениях, которые ему доступны.

    Note

    На работу флагов Редактировать мои сообщения и Редактировать все сообщения влияет поле Редактировать сообщения не старше, чем в карточке Настройки сервера, в котором можно указать период в минутах, в течении которого можно редактировать сообщения, начиная с момент отправки. При этом значение 0 означает, что редактировать разрешено без ограничения времени, а пустое значение - редактировать запрещено.

Расширенные настройки прав доступа

Подсистема прав доступа поддерживает расширенные настройки прав доступа.

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

Note

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

Вкладка содержит следующие поля и таблицы:

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

  • Расширенные настройки прав доступа карточки - таблица с настройками доступа к секциям и полям карточки, для которой производится расчёт прав доступа. В данной таблице можно запретить редактировать поле или секцию карточки, а также выдать доступ на редактирование конкретных полей или секций карточки даже при отсутствии права доступа Редактирование карточки. Также через данные настройки можно скрыть контрол по полю/секции карточки.

  • Расширенные настройки прав доступа заданий - таблица с настройками доступа к секциям и полям заданий карточки, для которой производится расчёт прав доступа. Аналогично настройкам для карточки, только применяется к заданиям карточки.

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

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

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

Расширенные настройки прав доступа карточки

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

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

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

Каждое правило содержит следующие настройки:

  • Секция - секция карточки, к которой применяется данное правило. Обязательное для заполнения поле. Если карточка не использует данную секцию (секция не добавлена в типе карточки), то данное правило применяться не будет.

  • Поля - набор полей из секции, для которых применяется данное правило. Если не заполнено, то правило применяется ко всей секции.

  • Настройка доступа - определяет настройку доступа для секции/полей данного правила. Если не заполнено, то настройка доступа не применяется (но все еще может быть применена настройка скрытия контрола, настроенного на данную секцию/поле карточки).

    Может иметь одно из следующих значений:

    • Разрешить редактирование - доступ на редактирование секции/полей карточки разрешен, даже если в правиле не установлен флаг доступа “Редактирование карточки”.

    • Запретить редактирование - доступ на редактирование секции/полей карточки запрещен, даже если в правиле установлен флаг доступа “Редактирование карточки”. Для коллекционных секций также запрещает добавление и удаление строк.

    • Запретить редактирование строк (только для коллекционных секций) - доступ на редактирование строк секции запрещен, однако все еще есть возможность добавления и удаления существующих строк секции.

    • Запретить добавление строк (только для коллекционных секций) - доступ на добавление строк секции запрещен, однако все еще есть возможность редактирования и удаления существующих строк секции.

    • Запретить удаление строк (только для коллекционных секций) - доступ на удаление строк секции запрещен, однако все еще есть возможность редактирования и добавления новых строк секции.

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

  • Заменить данные на - значение, на которое заменяются замаскированные данные. Поле доступно только при установке в качестве Настройки доступа значения Замаскировать данные.

  • Скрыть контрол - флаг определяет, что контролы для данной секции/полей должны быть скрыты при просмотре карточки. Физически данные передаются в пакете карточки (если не установлена настройка доступа Замаскировать данные).

Расширенные настройки прав доступа заданий

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

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

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

Каждое правило содержит следующие настройки:

  • Типы заданий - список типов заданий, для которых применяется данное правило.

  • Секция - секция задания, к которой применяется данное правило. Обязательное для заполнения поле. Если задание не использует данную секцию (секция не добавлена в типе задания), то данное правило применяться не будет.

  • Поля - набор полей из секции, для которых применяется данное правило. Если не заполнено, то правило применяется ко всей секции.

  • Настройка доступа - определяет настройку доступа для секции/полей данного правила. Если не заполнено, то настройка доступа не применяется (но все еще может быть применена настройка скрытия контрола, настроенного на данную секцию/поле карточки).

    Может иметь одно из следующих значений:

    • Разрешить редактирование - доступ на редактирование секции/полей карточки разрешен, даже если в правиле не установлен флаг доступа “Редактирование карточки”.

    • Запретить редактирование - доступ на редактирование секции/полей карточки запрещен, даже если в правиле установлен флаг доступа “Редактирование карточки”. Для коллекционных секций также запрещает добавление и удаление строк.

    • Запретить редактирование строк (только для коллекционных секций) - доступ на редактирование строк секции запрещен, однако все еще есть возможность добавления и удаления существующих строк секции.

    • Запретить добавление строк (только для коллекционных секций) - доступ на добавление строк секции запрещен, однако все еще есть возможность редактирования и удаления существующих строк секции.

    • Запретить удаление строк (только для коллекционных секций) - доступ на удаление строк секции запрещен, однако все еще есть возможность редактирования и добавления новых строк секции.

  • Скрыть контрол - флаг определяет, что контролы для данной секции/полей должны быть скрыты при просмотре задания. Физически данные передаются в пакете задания.

Расширенные настройки обязательности полей

Каждая строка таблицы определяет отдельное правило проверки обязательности заполнения полей карточки или задания при сохранении карточки или при завершении задания.

Каждое правило содержит следующие настройки:

  • Секция - секция карточки или задания, к которой применяется данное правило. Обязательное для заполнения поле. Для коллекционной секции, если не заданы Поля, то проверяется наличие строк в данной секции.

  • Поля - набор полей из секции, для которых применяется данное правило. Обязательно для заполнения для строковой секции. Для коллекционной секции, если не задано, то проверяется наличие строк в секции.

  • Тип проверки обязательности - определяет настройку проверки обязательности секции/полей данного правила. Обязательно для заполнения.

    Может иметь одно из следующих значений:

    • Всегда - проверка обязательности выполняется всегда, когда сохраняется карточки.

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

    • При завершении задания - проверка обязательности выполняется, когда завершается задания с заданным вариантом завершения.

  • Типы заданий - список типов заданий для которых должна выполняться проверка обязательности при завершении задания. Доступно и обязательно для заполнения при указании типа проверки обязательности При завершении задания.

  • Варианты завершения - список вариантов завершения для которых при завершении задания с одним из заданных вариантов должна выполняться проверка обязательности при завершении задания. Если не заполнено, то проверка выполняется при завершении задания с любым вариантом завершения.

  • Текст сообщения об ошибке - текст ошибки, который выводится пользователю, когда проверка обязательности не выполнена.

Расширенные настройки видимости

Каждая строка таблицы определяет правило видимости элементов управления (контролов, блоков, вкладок) на карточке, которую видит пользователь. Данные правила могут как скрыть элементы управления, так и показать скрытые (ограничение, нельзя показывать скрытые вкладки).

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

Для правил с одинаковым приоритетом при воздействии на один и тот же элемент управления поведение не определено.

Каждое правило содержит следующие настройки:

  • Тип контрола - определяет тип элемента управления, для которого применяется правило (контрол, блок, вкладка).

  • Имя контрола - определят имя элемента управления (алиас), для которого применяется правило. Данное поле поддерживает символ подстановки “*” в начале и в конце. Например, строка “Button**” скрывает/показывает все элементы управления, имя которых содержит слово “Button”.

  • Скрыть контрол (если флаг снят, то контрол будет показан) - флаг определяет, должно ли данное правило скрыть элемент управления или показать, если он был скрыт через настройки типа карточки.

Расширенные настройки доступа к файлам

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

Каждое правило содержит следующие настройки:

  • Категории файла - список категорий файлов, для которых будет применено данное правило. Если не задано, то данное правило применяется для файлов любой категории.

  • Расширение файла - список расширений файлов, записанные через пробел, для которых будет применено данное правило. Если не заполнено, то правило применяется для файлов с любым расширением.

    Tip

    Пример заполнения поля - “txt pdf docx” (без кавычек). Правило будет применено к файлам с расширением txt, pdf и docx.

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

  • Настройка доступа к файлу - определяет доступ к файлу, для которого применимо данное правило.

    Может иметь одно из следующих значений:

    • Доступна только последняя версий файла - пользователь видит только последнюю версию файла.

    • Доступны только свои версии и последняя версия файла - пользователь видит только те версии, которые добавил он, и последнюю версию файла.

    • Содержимое файла недоступно - пользователь не может просмотреть файл, однако видит атрибуты файла (размер, название, кем создан, категорию). Просмотр истории версий недоступен.

    • Файл недоступен и скрыт - пользователь не видит данный файл в карточке. Информация о файле даже физически не передается пользователю в пакете карточки.

Представление правил доступа

Просмотреть и открыть карточки правил доступа можно в соответствующем представлении “Правила доступа”, которое находится в рабочем месте администратора, в папке “Типовое решение”. В представлении отображается вся информация, указанная в карточке правил:

Для представления доступны сабсеты по указанным разрешениям, состояниям карточки, указанным ролям и типам карточек:

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

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

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

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

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

Расширенные настройки правил доступа можно посмотреть через отдельное представление “Расширенные правила доступа”, которое представляет из себя master-detail представление “Правила доступа” и набора представлений для отображения расширенных настроек доступа:

Также все представления с расширенными настройками правил доступа доступны отдельно для сквозного поиска расширенных правил доступа для каджого вида.

Права доступа, определяемые этапом согласования/подписания

Кроме правил доступа, определяемых соответствующими карточками, можно в этапе согласования или подписания дополнительно указать право на редактирование карточки и право на редактирование любых файлов карточки, отметив соответствующие настройки в форме этапа. Эти права будут выданы согласующим/подписантам этапа в последствии (если согласующий/подписант взял задание в работу).

Для параллельного этапа включение этих опций может стать причиной конфликта сохранения, о чем написано в информационном блоке около этих флагов.

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

Определение прав доступа при создании карточки

Пользователь, не имеющий прав на создание карточки определенного типа (на момент запуска TessaClient) не увидит элемента панели создания карточки этого типа. Тем не менее, при попытке создания карточки происходит проверка возможности действия – если есть правила доступа, в которых указан пользователь (или роль, в которую он входит) и отмечено право создания карточки типа создаваемой карточки, то пользователь успешно создаст карточку. Если пользователь после запуска клиента успел утратить права на создание карточки такого типа, будет отображено соответствующее сообщение об ошибке:

При расчёте правил доступа к карточке при ее создании фильтрация правил доступа не производится по состояниям и по таблице “Условия”, указанным в настройках правила. Вместо этого выполняются только те правила, в которых установлен флаг “Создание карточки”.

После создания карточки пользователь будет иметь доступ к карточке в соответствии с настройками правил доступа, без учета состояний. Т.е. если есть только одно правило доступа, где стоит только флаг “Создание карточки”, то при создании карточки пользователем - она будет без возможности редактировать поля (и скорее всего без возможности сохранить карточку, т.к. пользователь не сможет заполнить обязательные поля). Поэтому в правиле доступа на создание карточек обычно ставятся еще дополнительные флаги доступа: на редактирование, добавление файлов и т.д.

Note

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

Как было указано выше, при создании карточки не учитываются состояния и условия из правил доступа, однако, не запрещается создавать правила доступа, где стоит флаг “Создание карточки” и при этом указаны состояния и условия. Такое правило можно сделать и оно будет работать - до сохранения карточки без учета состояний и условий, после сохранения - с их учетом. Такие правила доступа настраиваются, как правило, когда нет необходимости разделять уровень прав для создаваемой и сохраненной карточки. Но такое правило доступа категорически не подойдет, например, при таком кейсе: документ могут создавать все пользователи, а редактировать могут только свои карточки - тут понадобится создавать два правила доступа.

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

Определение прав доступа при чтении карточки

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

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

  2. Если в карточке есть задание на доработку и текущий пользователь - исполнитель:

    • Если задание не в работе – пользователь может читать карточку.

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

  3. Если в карточке есть задание согласования или подписания и текущий пользователь – исполнитель:

    • Если задание не в работе – пользователь может читать карточку.

    • Если задание в работе – пользователь может читать карточку и добавлять файлы (и редактировать ранее добавленные им файлы). Также, этапом согласования/подписания могут быть даны права на редактирование карточки и редактирование файлов.

  4. Если в карточке есть задание комментирования и текущий пользователь исполнитель – пользователь может читать карточку и добавлять файлы (и редактировать ранее добавленные им файлы).

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

  6. Если пользователю карточка направлена на ознакомление - пользователь может читать карточку.

  7. Если в правиле доступа установлен флаг “Всегда проверять правило доступа”, то все настройки данного правила доступа будут применены при расчёте прав.

  8. Во всех иных случаях при чтении карточки проверяется только наличие прав на чтение, и карточка открывается только для чтения.

В случае если карточка открыта не со всеми правами, которые требуются пользователю, пользователь может нажать на кнопку “Редактировать” в левом меню системы:

При нажатии на кнопку “Редактировать” карточка будет открыта со всеми правами, определенными для пользователя. Выход из режима редактирования осуществляется путем обновления карточки с помощью соответствующей кнопки в левом меню системы или нажатием клавиши [F5]. Если при расчёте прав не было получено право на редактирование непосредственно карточки, пользователь увидит информационное сообщение со списком полученных прав:

Если на момент нажатия на кнопку “Редактировать” карточка содержала несохраненные изменения, система предложит на выбор предварительно сохранить изменения, отказаться от изменений или не переходить в режим редактирования (опции “Да”, “Нет”, “Отмена” соответственно):

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

Определение прав доступа при удалении карточки, возврате карточки на доработку, отзыве и отмене процесса

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

Права на удаление карточек определяются правилами доступа. Права на возврат карточки на доработку, отзыв и отмену процесса настраиваются в соответствующих вторичных процессах (вкладка Администратор → Маршруты → Вторичные процессы).

Некоторые примеры расчёта прав доступа на карточку

Пример 1 – чтение карточки

Карточка типа “Документ” создана и находится в состоянии “Проект”.

В карточке правил доступа “Правило 1” в типах указан “Документ”, в состояниях указан “Проект” и др., в ролях указан “Пользователь 1”, отмечено право на чтение карточки.

В карточке правил доступа “Правило 2” в типах указан “Документ”, в ролях указана роль “Отдел 1”, в которую входит пользователь, отмечено право на редактирование карточки.

В карточке правил доступа “Правило 3” в типах указан “Документ”, в ролях указана роль “Сотрудник отдела создателя карточки”, отмечено право на редактирование маршрута.

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

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

Далее будут выбраны контекстные роли для типа “Документ” и состояния “Проект” и соответствующие им наборы разрешений. Если “Пользователь 1” входит в роль “Сотрудник отдела создателя карточки”, то он получит право на редактирование маршрута.

Пример 2 – создание карточки

Пользователь “Пользователь 1” пытается создать карточку типа “Договор”

Определено правило доступа “Правило 1” для типа “Договор”, роли “Отдел 1” и “Отдел 2”, отмечено право на создание и редактирование карточки.

При попытке создания карточки “Договор” будет проверено наличие правил, в которых указан тип “Договор”, отмечено право на создание карточки и указаны роли, в которые входит пользователь. Т.к. карточка еще не создана – у нее нет состояния, поэтому правила будут выбираться без фильтрации по состоянию. Также будут игнорироваться контекстные роли, т.к. для несуществующей карточки невозможно определить содержание контекстной роли. Если такие правила существуют – пользователь сможет создать карточку. Таким образом, если пользователь входит в роль “Отдел 1” или в “Отдел 2”, он успешно создаст карточку и получит доступ к ней в соответствии с настройками правил доступа, а после первого сохранения доступ к карточке будет определяться стандартным для открытия карточки образом.

Пример 3 – чтение карточки, отмена согласования, удаление карточки

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

Определено правило доступа “Правило 1” для типа “Входящий”, состояния “Отмена”, для контекстной роли “Создатель карточки” и отмечено право удаления карточки.

В карточке вторичного процесса “Отменить процесс” не указаны типы (т.е. кнопка будет доступна для всех типов карточек), указана роль “Отдел 1”, в которую входит пользователь, состояние - “На согласовании”.

Карточка содержит не взятое в работу задание комментирования для роли “Все сотрудники”, в которую входит “Пользователь 1”.

Система дает пользователю “Пользователь 1” доступ на чтение карточки, т.к. есть задание комментирование для “Все сотрудники” и “Пользователь 1” является исполнителем задания, хотя оно еще не взято в работу.

“Пользователь 1” может отменить процесс согласования, и отмена пройдет успешно согласно настройкам карточки вторичного процесса, который отвечает за отмену процесса.

После отмены процесса пользователь может удалить карточку, т.к. он является создателем карточки и входит в контекстную роль “Создатель карточки”, для которой доступно удаление карточки в состоянии “Отмена”.

Back to top