Docs

Docs

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

Роли и полномочия

Роли и полномочия

Назначение

Сервис обеспечивает управление ролями, ограничениями доступа и полномочиями пользователей в Dinext. Включает роли (Role), User Permission (ограничение по полям связей), базовые проверки доступа в запросах (db_query), а также расширения: Dinext (ограничения на уровне тип документа), проверка прав от имени другого пользователя .

Цели и задачи

  • Назначать пользователям роли и ограничивать доступ к документам по правилам.
  • Ограничивать видимость данных через User Permission (например, только свои клиенты, свои проекты).
  • Управлять правами на уровне тип документа (чтение, создание, изменение, удаление, отправка) по ролям.
  • При необходимости проверять права от имени другого пользователя (для замещений и аудита).
  • Использовать дополнительные модели ограничений при установке соответствующих приложений.

Для кого

  • Администраторы системы, назначающие роли и User Permission.
  • Руководители при делегировании доступа к проектам и данным.
  • Разработчики при реализации проверок в коде и при интеграции с замещениями.
  • Все пользователи — доступ к данным определяется их ролями и разрешениями.

Основные понятия

  • Role — роль пользователя; определяет набор прав на тип документа (Read, Write, Create, Delete, Submit и т.д.) через настройки разрешений (Permission).
  • User Permission — ограничение видимости: пользователь видит только те документы, у которых связанное поле (например, Customer, Project) совпадает с разрешенным значением. Назначается для User + applicable for тип документа + allow документ/значение.
  • Permission — правило доступа к тип документа для роли: уровень доступа (Read/Write/Create/Delete/Submit) и при необходимости условия (если поддерживается).
  • Dinext — приложение с дополнительной моделью ограничений на уровне тип документа (README).
  • Dinext — проверка прав от имени другого пользователя (README).
  • Проверки доступа при выборках выполняются в db_query и при чтении документа.

Основные сущности / объекты

  • Role, User Permission ; db_query.py .
  • Dinext (README).
  • Dinext (README).

Основные сценарии / процессов

Назначение ролей пользователю

  1. Открыть карточку User; в блоке ролей добавить нужные роли (Project Manager, Sales User и т.д.).
  2. Сохранить; права на тип документа определяются матрицей Permission для этих ролей.
  3. Проверить доступ: войти под пользователем и убедиться, что видимы только нужные модули и действия.

Настройка User Permission

  1. Создать User Permission: User, Allow тип документа (тип документа, к которому применяется ограничение), for value (конкретный документ, например клиент или проект) или apply to all.
  2. При «for value» пользователь будет видеть только документы, у которых связь с этим тип документа совпадает с указанным значением (например, только документы своего проекта).
  3. Можно создать несколько User Permission для одного пользователя (несколько проектов, несколько клиентов — в зависимости от логики «allow»).
  4. Учесть: при строгих ограничениях пользователь не увидит документы без заполненной связи или с другим значением; тестовые данные должны соответствовать.

Дополнительные ограничения

  1. При установленном Dinext настроить правила ограничений на уровне тип документа по документации приложения.
  2. Правила могут дополнять стандартные Permission и User Permission для тонкой настройки доступа.
  3. Проверка прав от имени другого пользователя используется в сценариях замещения и аудита; вызывать только из доверенного кода с учетом политики безопасности.

Правила и ограничения

  • Пользователь получает объединение прав всех своих ролей (любая разрешенная роль дает право). Ограничения — пересечение: User Permission сужает видимость.
  • Отсутствие прав на тип документа скрывает его из меню и из поиска; при прямом обращении по ссылке система вернет ошибку доступа.
  • Изменение ролей и User Permission влияет на всех сеансы пользователя после следующего запроса; при необходимости пользователю перелогиниться.

Результаты / отчетность

  • Список пользователей с назначенными ролями.
  • Список User Permission с фильтрами по пользователю и тип документа.
  • Фактический доступ пользователя — проверка входа под его учетной записью и просмотр списков/документов.

Типовые вопросы и ошибки (FAQ)

Пользователь не видит документы, хотя роль назначена

Проверьте User Permission: если для пользователя задано ограничение (например, только Project = X), он увидит только документы с этим проектом. Убедитесь, что у документов заполнено поле проекта и значение совпадает с разрешенным. Временно отключите User Permission для проверки.

Как дать доступ только к своим документам?

Вариант 1: User Permission на тип документа с полем «Owner» или «Assigned to» — разрешить только документы, где owner/assignee = этот пользователь (если приложение поддерживает such Allow и for value). Вариант 2: в Permission для роли задать условие «owner» (если в вашей версии есть rule по owner). Вариант 3: кастомная проверка в коде или через Dinext.

Где настраиваются права на новый тип документа?

В списке Permission (или через тип документа > Permissions): добавить строки для каждой роли с уровнями Read, Write, Create, Delete, Submit, Cancel и т.д. Права наследуются от родительского тип документа при наличии; при необходимости переопределить для дочернего.

Связанные темы

Last updated 3 months ago
Was this helpful?
Thanks!