IRubricatorSegment.GetSubjectEffectiveRights

Синтаксис

GetSubjectEffectiveRights(Subject: ISecuritySubject): Integer;

Параметры

Subject. Субъект безопасности, эффективные права которого необходимо получить.

Описание

Метод GetSubjectEffectiveRights возвращает эффективные права указанного пользователя.

Комментарии

Эффективные права включают в себя все операции, на которые для пользователя установлено явное разрешение. Значение, возвращаемое данным методом, представляет из себя маску доступа. Значение маски является 8-ми байтовым двоичным числом, приведенным в десятичную форму. Для проверки значения маски необходимо использовать значения перечислимого типа MetabaseObjectPredefinedRights в комбинации с CubeSpecificRights. Для разбора значения маски необходимо реализовать пользовательскую функцию, которая позволит сопоставить отдельные биты маски соответствующим значениям перечислений. Пример работы с маской доступа представлен в разделе Примеры: Работа с маской доступа. При раздаче прав на сегмент используются соответствующие операции Read и Write.

Пример

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором OBJ_RUBRICATOR, в которой должны быть определены сегменты.

Sub UserProc;
Var
    Mb: IMetabase;
    RubInst: IRubricatorInstance;
    Segs: IRubricatorSegments;
    Seg: IRubricatorSegment;
    User: IMetabaseUser;
Begin
    Mb := MetabaseClass.Active;
    RubInst := Mb.ItemById("OBJ_RUBRICATOR").Open(NullAs IRubricatorInstance;
    Segs := RubInst.Segments;
    Seg := Segs.Item(0);
    User := MB.Security.ResolveName("ADMIN"As IMetabaseUser;
    Debug.WriteLine(Seg.GetSubjectEffectiveRights(User));
End Sub UserProc;

После выполнения примера эффективные права пользователя ADMIN на первый сегмент данных будут выведены в окно консоли в десятичной форме.

См. также:

IRubricatorSegment