HasAccessMandatory: Boolean;
HasAccessMandatory: boolean;
Свойство HasAccessMandatory возвращает признак использования мандатного контроля доступа для элементов табличного справочника НСИ.
True. Для элементов табличного справочника НСИ применяется мандатный контроль доступа. Для отключения мандатного контроля доступа используйте метод IAccessObjectSecurity.RevokeHasAccessMandatory;
False. Мандатный контроль доступа не используется для элементов табличного справочника НСИ.
Значение свойства соответствует значению IRdsDictionary.HasMandatoryAccess.
Признак того, применяется ли дискреционный контроль доступа к элементам справочника НСИ, определяет свойство ISecurityDescriptor.AccessSecured.
Для выполнения примера необходимо наличие репозитория НСИ с идентификатором «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.
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;
См. также: