ISecurityDescriptor.HasAccess

Syntax

HasAccess(Subject: ISecuritySubject; DesiredAccess: Integer): Boolean;

Parameters

Subject. Security subject, which is checked for presence of permissions for particular operations with the object.

DesiredAccess. Mask that determines operations, permissions for which must be checked for the Subject security subject. To create a mask value, one should use values of the MetabaseObjectPredefinedRights enumeration type. This enumeration contains basic and additional operations, on which permissions can be given and access auditing can be executed. The specific operations are available for specific object classes. To use specific operations depending on the object class, one can use values of the following enumerations in a mask:

Description

The HasAccess method checks and returns whether the security subject has permissions to execute the specified operations with the current object.

Comments

The method returns True if the Subject security subject can execute all operations specified in the DesiredAccess mask.

Example

Executing the example requires that the repository contains an object with the Obj_1 identifier. There is the TestUser user among the security subjects that were created in the security manager of the current repository.

Sub UserProc;
Var
    MB: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    SecDesc: ISecurityDescriptor;
    Subj: ISecuritySubject;
    b: Boolean;
Begin
    MB := MetabaseClass.Active;
    Subj := MB.Security.ResolveName("TestUser");
    MDesc := MB.ItemById("Obj_1");
    SecDesc := MDesc.SecurityDescriptor;
    b := SecDesc.HasAccess(Subj, MetabaseObjectPredefinedRights.Delete);
End Sub UserProc;

After executing the example the "b" variable determines whether the TestUser user can remove the specified object.

See also:

ISecurityDescriptor