Location: Symbol Reference > Classes > TJwSAccessControlList Class
JWSCL Documentation
ContentsIndexHome
PreviousUpNext
TJwSAccessControlList Class
Pascal
TJwSAccessControlList = class(TJwSecurityAccessControlList);

TJwSAccessControlList provides methods for an audit access control list. For more information on the methods see TJwSecurityAccessControlList .

 
Name 
Description 
 
Create creates an empty access control list. The list items will not be owned. 
 
Destroy destroys the list and all it items. 
TJwSAccessControlList Class
 
Name 
Description 
 
This is the overview for the Create constructor overload. 
Name 
Description 
The following tables list the members exposed by TJwSecurityAccessControlList. 
The methods of the TJwSecurityAccessControlList class are listed here. 
The properties of the TJwSecurityAccessControlList class are listed here. 
TJwSAccessControlList Class
Name 
Description 
The following tables list the members exposed by TJwSAccessControlList. 
The methods of the TJwSAccessControlList class are listed here. 
The properties of the TJwSAccessControlList class are listed here. 
 
Name 
Description 
 
Add 
Add adds an ACE instance to into the list. The ACE property ListOwner will be set to this list.
Where the new item is inserted depends on its type:
  1. If the ACE is a direct allow ACE it is added at the bottom of the list
  2. If the ACE is a inherited allow ACE it is added after the last deny ACE or at the top of list if no deny ACE exists
  3. If the ACE is a deny ACE it is added at the top of list


The following list shows a full access control list
  1. deny ACE
  2. allow... more 
 
AddACEs adds ACEs from another list to this one. The ACEs will be added using Add so the ACL order will be correct.
 
 
Assign clears all ACEs in the instance and adds new instances of then ACEs from AclInstance. All ACE SIDs are copied. If an exception is raised the old ACEs are removed but the newly added ACEs are preserved.  
 
Clear removes all ACEs from the list and frees them if ownObject is True. 
 
ConvertInheritedToExplicit removes the inheritance flag from all ACEs. This is useful if a DACL with inherited ACEs must be converted into a DACL with only explicit ACEs. This stops the inheritance flow. 
 
Create_PACL creates a new access control list for using in winapi functions. The created memory block must be freed by Free_PACL. The list order in the new ACL will be the same like the list in Items
 
Deprecated. Do not use. 
 
Delete removes an object give by index from the list. The object will be freed automatically if OwnsObject is true.  
 
FindEqualACE seeks for a ACE in the ACList.
 
 
FindSID searches for a SID in a access control list.  
 
First returns the first ACE from the list.  
 
Free_PACL frees an access control list created by Create_PACL.
 
 
This is the overview for the GetEffectiveRights method overload. 
 
GetExplicitAccessArray creates an array of explicit access structure that represents the ACEs. 
 
GetTextMap returns the ACL content in a new string. Additionally the access rights are mapped into string using a defined mapping. 
 
IndexOf returns the list index of a ACE from the list.  
 
Insert inserts a ACE into the list.  
 
IsCanonical checks whether the ACL is in canonical order.
The following list shows a access control list in canonical order:
  1. deny ACE (direct)
  2. allow ACE (direct)
  3. deny ACE (inherited)
  4. allow ACE (inherited)
 
 
IsEqual compares two ACL and returns true if they are equal. This method uses FindEqualACE to compare two access control entries.
 
 
Checks whether the ACL is valid. E.g. contains no entries with nil SID.
 
 
Last 
Last returns the last ACE of the list. If the list is empty the return value is nil. 
 
MergeElements merges duplicate ACE elements. The ACE must have same SID, same type and same flags to be merged. The duplicates are removed from list. 
 
This is the overview for the Remove method overload. 
 
RemoveExplicits removes all explicit entries from the list using Remove. See Remove for information about how the entries are removed. 
 
RemoveInherited removes all inherited entries from the list using Remove. See Remove for information about how the entries are removed. 
TJwSAccessControlList Class
 
Name 
Description 
 
GetExplicitAccessArray creates an array of explicit access structure that represents the ACEs. 
 
HasMandatoryLabel checks whether the SACL has a mandatory level.
 
 
SetMandatoryLabel removes, adds or replaces a mandatory label.
  • If a label already exists in the SACL the new label will replace the old one.
  • If no label exists the label will be added to the list. There is no order in a system acl so do not depend on it.
  • If parameter NewLabel is nil the old label will be removed

Removing: The old label will be erased depending on how OwnObjects. If OwnObjects is true the old label instance will be freed otherwise it will just be removed from list.
 
 
Name 
Description 
 
This is Items, a member of class TJwSecurityAccessControlList. 
 
Revision gets or sets or gets the revision of the ACL. The version is used to set the ACL structure revision in Create_PACL. The revision version is always updated to the highest ACE revision version.
Can be one of the revision levels: ACL_REVISION, ACL_REVISION1, ACL_REVISION2, ACL_REVISION3, ACL_REVISION4 or ACL_REVISION_DS
Default value is ACL_REVISION.
This property raises an exception EJwsclInvalidRevision on setting if the Revision is not in range of 1..4 
 
Text 
Text returns a humand readable text that contains information about this ACL. 
TJwSAccessControlList Class
 
Name 
Description 
 
Items[Index contains the audit ACEs. 
 
MandatoryLabel gets or sets the mandatory label of this SACL. If the mandatory label is retrieved it returns the mandatory label instance directly. Do not free it! If no label was found (HasMandatoryLabel = false) the return value is nil.
The label can be changed whithout regarding access checks. Access checks are performed in SetSecurityInfo. Only the first label is changed. Any additional labels are ignored. The given mandatory label instance will be copied into a new instance and added automatically to the list. Do not use the parameter ListOwner of the Create constructor. Do not write this:  
Copyright (c) 2010. All rights reserved.
This help was created by Doc-O-Matic sponsored by toolsfactory software inc.
What do you think about this topic? Send feedback!