IMetabaseObjectDescriptor.SecurityDescriptor

Syntax

SecurityDescriptor: ISecurityDescriptor;

SecurityDescriptor: Prognoz.Platform.Interop.Metabase.ISecurityDescriptor;

Description

The SecurityDescriptor property returns the control parameters of access to the current object.

Example

Executing the example requires that the repository contains an object with the OBJECT identifier.

Add a link to the Metabase system assembly.

Sub UserProc;
Var
    MB: IMetabase;
    ObjDesc: IMetabaseObjectDescriptor;
    SecDesc: ISecurityDescriptor;
    AcessCL: IAccessControlList;
    ACE: IAccessControlEntry;
    MS: IMetabaseSecurity;
    SS: ISecuritySubject;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    
// Get license to work with security manager
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    
// Get object
    ObjDesc := MB.ItemById("OBJECT");
    SecDesc := ObjDesc.SecurityDescriptor;
    MS := MB.Security;
    
// Get user
    SS := MS.AllUsers.Item(10);
    SecDesc.Edit;
    
// Enable full user access to object
    AcessCL := SecDesc.Acl;
    ACE := AcessCL.AddAce(AceType.AccessAllowed, SS.Sid, 
131071);
    SecDesc.Apply(
True);
    
// Save changes
    MS.Apply;
    
// Check in license
    Lic := Null;
End Sub UserProc;

Imports Prognoz.Platform.Interop.ForeSystem;


Public Shared Sub Main(Params : StartParams);
Var
    MB: IMetabase;
    ObjDesc: IMetabaseObjectDescriptor;
    SecDesc: ISecurityDescriptor;
    AcessCL: IAccessControlList;
    ACE: IAccessControlEntry;
    MS: IMetabaseSecurity;
    SS: ISecuritySubject;
    Lic: Object;
Begin
    MB := Params.Metabase;
    
// Get license to work with security manager
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    
// Get object
    ObjDesc := MB.ItemById["OBJECT"];
    SecDesc := ObjDesc.SecurityDescriptor;
    MS := MB.Security;
    
// Get user
    SS := MS.AllUsers.Item[10];
    SecDesc.Edit();
    
// Enable full user access to object
    AcessCL := SecDesc.Acl;
    ACE := AcessCL.AddAce(AceType.aceAccessAllowed, SS.Sid, 
131071);
    SecDesc.Apply(
True);
    
// Save changes
    MS.Apply();
    
// Check in license
    Lic := Null;
End Sub;

The user is added to the specified object after executing this example. User will get permissions according to the 131071 mask (full access) in additional security parameters.

See also:

IMetabaseObjectDescriptor