Устройство системы полномочий
Основные объекты
Агенты (Agent): пользователи, роли, группы. Пользователь входит в роли, роли также могут входить в роли. Иерархия ролей динамически настраивается. Группы используются, когда у пользователей одинаковые логины, тогда можно развести их с помощью групп. Пользователей может заводить администратор, они могут автоматически создаваться сервером, подтягиваться с помощью active directory и т.д.
Субъекты полномочий (Subject): типы данных (классы), операции. Операция – строка, любое имя. Обычно операции влияют на доступность кнопок.
Разрешения (Permission) - объект, куда добавляются ссылки на агента, которому выдаются права, и на объект, к которому выдаются права (тип данных, операция).
Доступ (Access) - сюда добавляется ссылка на разрешение и устанавливается уровень доступа: Full, Read, Delete, Update.
Возможности установления полномочий
- На уровне типов
- На уровне строк, атрибутов (через фильтр LangDef)
- Ограничение по операциям
Интерфейс полномочий
Для работы полномочий ORM нужна имплементация интерфейса ISecurityManager, который содержит:
- Права на объекты
- Права на атрибуты
- Проверку полномочий на выполнение операции
- Функцию получения ограничения
- Проверку существующего логина
- Проверку доступа на атрибут
EmptySecurityManager – имплементация интерфейса по умолчанию без проверки полномочий.
Нет запрещающих полномочий. По умолчанию все закрыто, нужно давать доступ к каждому объекту отдельно.