IABACAttributeInstance.Value

Синтаксис

Value: Variant;

Описание

Свойство Value определяет значение атрибута.

Комментарии

Данное свойство актуально при редактировании значения пользовательского атрибута. Указываемое значение должно иметь тот тип данных, который задан для атрибута. Для определения множественного значения атрибута укажите в свойстве Value массив значений. Массив также должен быть того типа, который определён для атрибута.

Для определения значения атрибута по умолчанию используйте свойство IABACAttribute.DefaultValue.

Пример 1

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

Добавьте ссылки на системные сборки: ABAC, Metabase.

Sub UserProc;
Var
    Insts: IABACAttributeInstances;
    Inst: IABACAttributeInstance;
    MB: IMetabase;
    MS: IMetabaseSecurity;
    User: IMetabaseUser;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    // Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    MS := MB.Security;
    // Получим атрибуты первого пользователя
    User := MS.Users.Item(0);
    Insts := User.Attributes;
    // Найдем атрибут с идентификатором WORKDAYS
    Inst := Insts.FindById("WORKDAYS");
    // Проверим множественное ли значение найденного атрибута
    If Inst.IsArray = False Then
        // Изменим значение атрибута, если оно не множественное
        Inst.Value := 20;
    End If;
    // Сохраним изменения в менеджере безопасности
    MS.Apply;
    // Освободим лицензию
    Lic := Null;
End Sub UserProc;

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

Пример 2

Для выполнения примера предполагается, что для пользователей добавлен целочисленный пользовательский атрибут с идентификатором VALUES. В менеджере безопасности создан пользователь TEST_USER.

Добавьте ссылки на системные сборки: ABAC, Metabase.

Sub UserProc;
Var
    Insts: IABACAttributeInstances;
    Inst: IABACAttributeInstance;
    MB: IMetabase;
    MS: IMetabaseSecurity;
    User: IMetabaseUser;
    AttrValues: Array Of Integer;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    // Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    MS := MB.Security;
    // Получим атрибуты указанного пользователя
    User := MS.ResolveName("TEST_USER"As IMetabaseUser;
    Insts := User.Attributes;
    // Найдем атрибут с идентификатором VALUES
    Inst := Insts.FindById("VALUES");
    // Создадим массив со множеством значений
    AttrValues := New Integer[3];
    AttrValues[0] := 1;
    AttrValues[1] := 2;
    AttrValues[2] := 3;
    // Изменим значение атрибута
    Inst.Value := AttrValues;
    // Сохраним изменения в менеджере безопасности
    MB.Security.Apply;
    // Освободим лицензию
    Lic := Null;
End Sub UserProc;

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

См. также:

IABACAttributeInstance