RDOACL object |
RDOACL object represents the Access Control List (ACL) of an Exchange folder. This object along with the RDOACE object (representing an ACL entry) allows to define the list of Exchange users who have access to a given folder.
Returned by:
RDOFolder.ACL
The example below logs to the default MAPI session and adds an Exchange user to a list of users who have access to the Calendar folder. The user is given the editor rights.
set Session =
CreateObject("Redemption.RDOSession")
'make sure we get back an Exchange user |
The following example logs to the default MAPI session and enumerates all users who have access to the Calendar folder along with their rights
set Session =
CreateObject("Redemption.RDOSession")
for each ACE in Folder.ACL |
Derived from: IDispatch |
||
|
||
|
||
Properties |
||
|
||
BatchMode |
Boolean, read/write. ACL is saved automatically when an ACE (RDOACE object) is modified. Modifying a large number of ACEs in a folder thus represented a major performance problem. When BatchMode property is set to true, ACL will be saved only when RDOACL.Save method is called. See Save method below. |
ROLE_PUBLISH_EDITOR = &H4FB set Session = CreateObject("Redemption.RDOSession") Session.MAPIOBJECT = Application.Session.MAPIOBJECT set Folder = Session.GetFolderFromID(Application.ActiveExplorer.CurrentFolder.EntryID) set ACL = Folder.ACL ACL.BatchMode = true 'select new members and add them set ABDialog = Session.GetSelectNamesDialog ABDialog.AllowMultipleSelection = true ABDialog.ToLabel = "Members" ABDialog.InitialAddressList = Session.AddressBook.GAL ABDialog.ForceResolution = true ABDialog.NumberOfRecipientSelectors = 1 ABDialog.ShowOnlyInitialAddressList = true 'make sure the existing members are shown by the address book for each ACE in ACL if (not ACE.IsDefault) and (not ACE.IsAnonymous) Then 'otherwise there is no corresponding address entry ABDialog.Recipients.Add(ACE.AddressEntry) End If next 'display the address book if ABDialog.Display Then 'add each selected member as a publishing editor for each recip in ABDialog.Recipients set ACE = ACL.Add(recip.AddressEntry) ACE.Rights = ROLE_PUBLISH_EDITOR next 'all done, save ACL.Save End If |
Count |
integer, read-only. Returns the number of folders in the list |
set Session =
CreateObject("Redemption.RDOSession") for i = 1 to Folder.ACL.Count |
_Item(Index) |
returns RDOACE object with a given index. Default object property. Index - integer, 1 through Count. |
see the example above |
Folder |
Returns the parent folder (RDOFolder object) |
|
RawTable |
IUnknown, read-only. Returns the IMAPITable Extended MAPI interface used internally by the RDOACL collection |
|
Session |
RDOSession, read-only. Returns the parent MAPI session represented by the RDOSession object |
|
MAPITable |
MAPITable, read-only. Returns the MAPITable Redemption object which can be used to manipulate the collection (restrict, find, etc). |
|
Methods |
||
|
||
Add(AddressEntryObjOrEntryID) |
Adds an Exchange user to the folder ACL list. Returns the RDOACE object. AddressEntryObjOrEntryID - variant. Either an RDOAddressEntry object or a (hex) string representing an Exchange user's entry id. |
set Session =
CreateObject("Redemption.RDOSession")
'make sure we get back an Exchange user
|
Item(Index) |
returns RDOACE object with a given index. Index - integer, 1 through Count. |
|
Remove(Index) |
Removes an ACL entry with a given index. Index - integer, 1 through Count. |
|
Save |
Saves the ACL. Applicable only when BatchMode property is set to true. |
See BatchMode example above |
ACEofAddressEntry(AddressEntryObjOrEntryID) |
Returns an RDOACE object corresponding to a given Exchange user. If the user is not in the ACL list, NULL is returned. AddressEntryObjOrEntryID - variant. Either an RDOAddressEntry object or a (hex) string representing an Exchange user's entry id. |
'check if a given Exchange user is in the ACL list 'and remove it set Session =
CreateObject("Redemption.RDOSession") |