ISecurityDescriptor.HasAccessMandatory

Синтаксис Fore

HasAccessMandatory: Boolean;

Синтаксис Fore.NET

HasAccessMandatory: boolean;

Описание

Свойство HasAccessMandatory возвращает признак использования мандатного контроля доступа для элементов табличного справочника НСИ.

Комментарии

Значение свойства соответствует значению IRdsDictionary.HasMandatoryAccess.

Признак того, применяется ли дискреционный контроль доступа к элементам справочника НСИ, определяет свойство ISecurityDescriptor.AccessSecured.

Пример Fore

Для выполнения примера необходимо наличие репозитория НСИ с идентификатором «MDM», содержащего табличный справочник НСИ с идентификатором «DICT». Для пользователя, выполняющего пример, должна быть выдана привилегия «Изменение метки безопасности и списка контроля доступа любого объекта».

Добавьте ссылку на системную сборку «Metabase».

Sub UserProc;
Var
    MB: IMetabase;
    Object: IMetabaseObjectDescriptor;
    SD: ISecurityDescriptor;
    AOS: IAccessObjectSecurity;
Begin
    MB := MetabaseClass.Active;
    Object := MB.ItemByIdNamespace("DICT", MB.ItemById("MDM").Key);
    SD := Object.SecurityDescriptor;
    If SD.HasAccessMandatory Then
        AOS := Object.GetSecurity;
        AOS.RevokeHasAccessMandatory;
    End If;
End Sub UserProc;

Результат выполнения примера: для табличного справочника НСИ будет отключен мандатный контроль доступа для элементов, если ранее он был включен.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Object: IMetabaseObjectDescriptor;
    SD: ISecurityDescriptor;
    AOS: IAccessObjectSecurity;
Begin
    MB := Params.Metabase;
    Object := MB.ItemByIdNamespace["DICT", MB.ItemById["MDM"].Key];
    SD := Object.SecurityDescriptor;
    If SD.HasAccessMandatory Then
        AOS := Object.GetSecurity();
        AOS.RevokeHasAccessMandatory();
    End If;
End Sub;

См. также:

ISecurityDescriptor