ISecurityDescriptor.ApplyO

Синтаксис

ApplyO(Options: SecurityDescriptorApplyFlags);

Параметры

Options. Элемент перечисления SecurityDescriptorApplyFlags, определяющий, каким образом будут применяться права к текущему объекту.

Описание

Метод ApplyO осуществляет выход из режима редактирования с сохранением изменений параметров безопасности объекта и определяет, будут ли применяться новые параметры безопасности для внутренних объектов и объектов, для которых установлен признак отложенной загрузки описания.

Комментарии

Примером внутреннего объекта является внутренняя модель, которая включена в цепочку расчета метамодели. Пример создания внутренней модели приведен в описании метода IMsCalculationChainEntries.AddExclusiveModel.

При применении прав по иерархии права на внутренние объекты и объекты, для которых установлен признак отложенной загрузки описания, не применяются.

Пример

Для выполнения примера в репозитории должен находиться объект, содержащий внутренние объекты (например, контейнер моделирования), с идентификатором «Obj1». Подключите ссылку на системную сборку Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    ObjDesc: IMetabaseObjectDescriptor;
    SecDesc: ISecurityDescriptor;
    AcessCL: IAccessControlList;
    ACE: IAccessControlEntry;
    Sec: IMetabaseSecurity;
    SS: ISecuritySubject;
    Sid: ISid;
Begin
    MB := MetabaseClass.Active;
    ObjDesc := MB.ItemById("Obj1");
    SecDesc := ObjDesc.SecurityDescriptor;
    Sec := MB.Security;
    SS := Sec.AllUsers.Item(10);
    Sid := SS.Sid;
    SecDesc.Edit;
    AcessCL := SecDesc.Acl;
    ACE := AcessCL.AddAce(AceType.AccessAllowed, Sid, 131071);

    SecDesc.ApplyO(SecurityDescriptorApplyFlags.ToInternal);
End Sub UserProc;

После выполнения примера в параметрах управления доступом для указанного объекта и для всех внутренних объектов будет добавлен пользователь. В дополнительных параметрах безопасности ему будут назначены разрешения в соответствии с маской "131071" (Полный доступ). Данные изменения будут применены для указанного объекта и включенных в него внутренних объектов.

См. также:

ISecurityDescriptor