Работа в системе с учетом прав доступа

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

Выполнение действий

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

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

Права на выполнение отдельных действий описаны в соответствующих подразделах:

Просмотр карточки

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

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

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

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

Карточка объекта, на просмотр которого нет прав, из списка объектов не открывается.