Roles – роли
<< Click to Display Table of Contents >> Объектная модель > CoreEntities – администрирование Roles – роли |
Роли предназначены для группировки сотрудников компании по функциональным обязанностям. Отличие роли от группы в том, что группы используются для группировки пользователей в соответствии с организационной структурой предприятия, а роли – для произвольной группировки пользователей. Например, роли используются, чтобы быстро выдавать права на документы сотрудникам из разных подразделений или указывать их исполнителями заданий. Также роли используются в механизме авторизации, согласно роли, назначаются права доступа.
Роль может включать в себя пользователей, группы, другие роли.
В системе по умолчанию существуют предопределенные роли, для которых права доступа на объекты уже настроены. Например, предопределенная роль «Аудитор» позволяет сотрудникам, которые включены в состав роли, просматривать любые объекты системы.
Для программной работы с ролями используется репозиторий типа сущности «Роль» – Sungero.CoreEntities.Roles. Наследник от Sungero.CoreEntities.Group.
Для создания, изменения и удаления используйте методы репозитория:
•создание, удаление, изменение сущности
Методы
Имя |
Описание |
---|---|
Получить идентификаторы всех субъектов прав, правами которых обладает указанный пользователь |
|
Получить идентификаторы безопасности SID всех субъектов прав, правами которых обладает указанный пользователь |
|
Получить идентификаторы пользователей, которых напрямую замещает указанный пользователь |
|
Получить список всех пользователей, которые входят в группу |
|
IncludedIn() |
Признак того, что субъект прав входит в группу |
Получить идентификаторы субъектов прав, правами которых непосредственно обладает указанный пользователь |
|
Получить идентификатор указанного пользователя и идентификаторы пользователей, которых он напрямую замещает |
Свойства
Имя |
Тип |
Описание |
---|---|---|
Administrators |
IRole |
Роль «Администраторы». Идентификаторы пользователей, ответственных за настройку структуры компании, документооборота, прав доступа и т.д. и контроль работы системы |
AllRecipientIds |
IEnumerable<int> |
Идентификаторы всех субъектов прав, правами которых обладает текущий пользователь |
AllRecipientSids |
IEnumerable<Guid> |
Идентификаторы безопасности SID всех субъектов прав, правами которых обладает текущий пользователь |
AllUsers |
IRole |
Роль «Все пользователи». Идентификаторы всех пользователей |
Auditors |
IRole |
Роль «Аудиторы». Идентификаторы пользователей, у которых есть права на просмотр любых объектов системы. Осуществляют контроль работы сотрудников в системе |
Description |
string |
Текстовое описание, комментарий |
DirectSubstitutionRecipientIds |
IEnumerable<int> |
Идентификаторы пользователей, которых напрямую замещает текущий пользователь |
History |
История работы с сущностью |
|
Info |
Информация о типе сущности |
|
IsPredefinedRole |
bool |
Признак того, что роль является предопределенной |
IsSingleUser |
Nullable<bool> |
Признак того, что в роль входит только один пользователь |
IsSystem |
Nullable<bool> |
Признак того, что субъект прав является системным |
Name |
string |
Имя |
Null |
IRole |
Пустое значение типа сущностей репозитория |
OwnRecipientIds |
IEnumerable<int> |
Идентификаторы субъектов прав, правами которых непосредственно обладает текущий пользователь |
Parent |
Родительская группа |
|
RecipientLinks |
IChildEntityCollection<IGroupRecipientLinks> |
Список субъектов прав, которые входят в группу |
Resources |
IRecipientResources |
Ресурсы типа сущности |
Sid |
Nullable<Guid> |
Идентификатор субъекта прав |
State |
Состояние роли |
|
Status |
Nullable<Enumeration> |
Состояние сущности. Возможные значения: Действующая, Закрытая |
UserAndDirectSubstitutionRecipientIds |
IEnumerable<int> |
Идентификатор текущего пользователя и идентификаторы пользователей, которых он напрямую замещает |
Пример 1. Проверка того, входят ли текущие пользователи в роль «Администраторы»
public virtual bool HighAsgVisibilityHandler()
{
return Users.Current.IncludedIn(Roles.Administrators);
}
Пример 2. Получить первого пользователя из состава участников роли
public static IEmployee GetEmployeeFromRole(IRole role)
{
if (role == null)
return null;
var groupRecipientLink = role.RecipientLinks.FirstOrDefault();
return groupRecipientLink == null ? null : Employees.As(groupRecipientLink.Member);
}
© Компания Directum, 2024 |