Устройство системы полномочий

Основные объекты

Агенты (Agent): пользователи, роли, группы. Пользователь входит в роли, роли также могут входить в роли. Иерархия ролей динамически настраивается. Группы используются, когда у пользователей одинаковые логины, тогда можно развести их с помощью групп. Пользователей может заводить администратор, они могут автоматически создаваться сервером, подтягиваться с помощью active directory и т.д.

Субъекты полномочий (Subject): типы данных (классы), операции. Операция – строка, любое имя. Обычно операции влияют на доступность кнопок.

Разрешения (Permission) - объект, куда добавляются ссылки на агента, которому выдаются права, и на объект, к которому выдаются права (тип данных, операция).

Доступ (Access) - сюда добавляется ссылка на разрешение и устанавливается уровень доступа: Full, Read, Delete, Update.

Возможности установления полномочий

  • На уровне типов
  • На уровне строк, атрибутов (через фильтр LangDef)
  • Ограничение по операциям

Интерфейс полномочий

Для работы полномочий ORM нужна имплементация интерфейса ISecurityManager, который содержит:

  • Права на объекты
  • Права на атрибуты
  • Проверку полномочий на выполнение операции
  • Функцию получения ограничения
  • Проверку существующего логина
  • Проверку доступа на атрибут

EmptySecurityManager – имплементация интерфейса по умолчанию без проверки полномочий.

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