AccessRights – права доступа
<< Click to Display Table of Contents >> Объектная модель > Действия с репозиториями и сущностями > AccessRights, AccessRightsTypes – права доступа AccessRights – права доступа |
Доступ к данным может быть назначен как вручную, так и программно. Например, при создании сущности на нее могут быть выданы программно полные права тому, кто ее создал. В редакторе типа сущности в узле «Авторизация» можно создать операции авторизации и задать способы проверки прав.
Доступ к управлению правами на сущность выполняется через свойство AccessRights сущности. Если объектом безопасности является тип сущности, то доступ к управлению правами на тип сущности выполняется через свойство AccessRights репозитория сущности.
Количество доступных методов Can<Имя операции>() может меняться в зависимости от типа сущности.
Методы
Имя |
Описание |
---|---|
+ 2 перегрузки |
Проверить возможность подписания документа ЭП с результатом Утверждено |
+ 2 перегрузки |
Проверить возможность выполнения операции Создание |
+ 2 перегрузки |
Проверить возможность создания версии документа |
+ 2 перегрузки |
Проверить возможность выполнения операции Передача прав доступа |
+ 2 перегрузки |
Проверить возможность выполнения операции Удаление |
+ 2 перегрузки |
Проверить возможность удаления версии документа |
+ 2 перегрузки |
Проверить возможность подписания документа ЭП с результатом Согласовано |
+ 2 перегрузки |
Проверить возможность выполнения операции «Экспорт данных из списка» для текущего пользователя |
Проверить возможность выдачи определенного типа прав |
|
+ 2 перегрузки |
Проверить возможность выполнения операции Управление правами доступа |
+ 2 перегрузки |
Проверить возможность выполнения операции Управление правами доступа или Передача прав доступа |
+ 2 перегрузки |
Проверить возможность установки связи между документами |
+ 2 перегрузки |
Проверить возможность выполнения операции Чтение |
+ 2 перегрузки |
Проверить возможность чтения документа |
+ 2 перегрузки |
Проверить возможность выполнения операции Регистрация |
+ 2 перегрузки |
Проверить возможность отправки документа контрагенту через сервис обмена |
Проверить возможность изменения режима строгого доступа |
|
+ 2 перегрузки |
Проверить возможность выполнения операции Изменение |
+ 2 перегрузки |
Проверить возможность редактирования документа |
Получить список отсутствующих пользователей, которых замещает текущий пользователь и получает от них права на выполнение операции. Если текущий пользователь имеет свои права на выполнение операции, то он тоже будет в списке |
|
Выдать права указанного типа |
|
Проверить, выданы ли права |
|
Проверить, выданы ли права субъекту прав. Без учета вхождения в группы и роли |
|
Проверить, выданы ли права субъекту прав. Без учета замещения |
|
Изъять права указанного типа. Если субъект входит в группу или роль, у которой есть права на объект, то изъятие этих прав у пользователя не лишит его доступа к объекту, т.к. пользователь наследует права группы (роли), в которую он входит. Чтобы запретить доступ к объекту, необходимо с помощью метода Grant() назначить пользователю запрещающие права |
|
Изъять все права доступа у субъекта прав |
|
Сохранить изменения прав доступа, сделанные через методы Grant() и Revoke() |
|
Установить режим работы строгого доступа |
Свойства
Имя |
Тип |
Описание |
---|---|---|
Current |
IEnumerable<GrantedAccessRights> |
Текущий список выданных прав |
StrictMode |
AccessRightsStrictMode |
Режим работы строгого доступа. Возможные значения: •None – строгий доступ выключен; •Strict – включен строгий доступ; •Enhanced – включен усиленный строгий доступ |
Пример 1. Проверка возможности создания версии документа
// Проверить, можно ли создать новую версию документа из последней.
// Возвращаемое значение: true, если версию создать можно, иначе – false.
public bool CanCreateVersionFromLastVersion()
{
return this.ElectronicDocument.HasVersions &&
!this.ElectronicDocument.VersionsLocked &&
!this.ElectronicDocument.State.IsInserted &&
!this.ElectronicDocument.State.IsCopied &&
this.ElectronicDocument.AccessRights.CanReadBody() &&
this.ElectronicDocument.AccessRights.CanCreateVersion();
}
Пример 2. Выдача прав на чтение документа в событии «После сохранения» типа документа
// Выдать права на документ сотруднику, указанному в поле
// «Ответственный» (Responsible) карточки документа.
public override void AfterSave(Sungero.Domain.AfterSaveEventArgs e)
{
// Проверить, есть ли у сотрудника права на чтение документа.
if (!_obj.AccessRights.CanRead(_obj.Responsible))
// Если нет – выдать.
_obj.AccessRights.Grant(_obj.Responsible, DefaultAccessRightsTypes.Read);
}
Пример 3. Проверка прав пользователя на объект
// Проверить, выданы ли права на исходную задачу, и при необходимости выдать их.
if (!_obj.MainTask.AccessRights.IsGranted(accessRight.AccessRightsType, accessRight.Recipient))
_obj.MainTask.AccessRights.Grant(accessRight.Recipient, accessRight.AccessRightsType);
Пример 4. Выдача прав доступа в зависимости от режима строгого доступа
// Если для документа выключен строгий доступ, то выдать права на изменение документа.
if(document.AccessRights.StrictMode == Sungero.Core.AccessRightsStrictMode.None)
{
document.AccessRights.Grant(user, DefaultAccessRightsTypes.Change)
}
© Компания Directum, 2024 |