IABACAttribute.Predefined

Синтаксис

Predefined: Boolean;

Predefined: System.Boolean;

Описание

Свойство Predefined возвращает значение True, если атрибут является системным.

Комментарии

Атрибуты делятся на системные и пользовательские, используются при формировании цели и дополнительных условий проверки доступа.

Примечание. Изменение свойств системных атрибутов недоступно.

Пример

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

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

Sub UserProc;
Var
    ABACAttribute: IABACAttribute;
    ABACAttributes: IABACAttributes;
    MB: IMetabase;
    MS: IMetabaseSecurity;
    Str: String;
Begin
    MB := MetabaseClass.Active;

    MS := MB.Security;
    
// Проверим атрибуты пользователей
    ABACAttributes := MS.Users.Attributes;
    ABACAttribute := ABACAttributes.Item(
6);
    
If ABACAttribute.Predefined = True Then
        Str:= 
"системный";
        
Else Str:= "пользовательский";
    
End If;
    Debug.WriteLine(
"Атрибут " + "«" + ABACAttribute.Name(MB.CurrentLocale) + "»" + " - " + Str);
    ABACAttribute := ABACAttributes.Item(
7);
    
If ABACAttribute.Predefined = True Then
        Str:= 
"системный";
        
Else Str:= "пользовательский";
    
End If;
    Debug.WriteLine(
"Атрибут " + "«" + ABACAttribute.Name(MB.CurrentLocale) + "»" + " - " + Str);
End Sub UserProc;

Imports Prognoz.Platform.Interop.ABAC;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    ABACAttribute: IABACAttribute;
    ABACAttributes: IABACAttributes;
    MB: IMetabase;
    MS: IMetabaseSecurity;
    Str: String;
Begin
    MB := Params.Metabase;
    MS := MB.Security;
    
// Проверим атрибуты пользователей
    ABACAttributes := MS.Users.Attributes;
    ABACAttribute := ABACAttributes.Item[
6];
    
If ABACAttribute.Predefined = True Then
        Str:= 
"системный";
        
Else Str:= "пользовательский";
    
End If;
    System.Diagnostics.Debug.WriteLine(
"Атрибут " + "«" + ABACAttribute.Name[MB.CurrentLocale] + "»" + " - " + Str);
    ABACAttribute := ABACAttributes.Item[
7];
    
If ABACAttribute.Predefined = True Then
        Str:= 
"системный";
        
Else Str:= "пользовательский";
    
End If;
    System.Diagnostics.Debug.WriteLine(
"Атрибут " + "«" + ABACAttribute.Name[MB.CurrentLocale] + "»" + " - " + Str);
End Sub;

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

Атрибут «Администратор» - системный

Атрибут «ATTR16» - пользовательский

См. также:

IABACAttribute