RDOACE object

 

RDOACE object represents an entry (Access Control Entry - ACE) in the the Access Control List (ACL) of an Exchange folder. This object along with the RDOACL object (representing the ACL list) allows to define the list of Exchange users who have access to a given folder.

 

Returned by:

RDOACL.Item, Add, ACEofAddressEntry

 

The following example logs to the default MAPI session and enumerates all users who access to the Calendar folder along with their rights

set Session = CreateObject("Redemption.RDOSession")
Session.Logon
set Folder = Session.GetDefaultFolder(olFolderCalendar)

for each ACE in Folder.ACL
  Debug.Print ACE.Name & " - " & ACE.Rights
next

 


Derived from: IDispatch



Properties


MemberID

Int64, read-only. Returns the id of the ACE entry. Corresponds to the PR_MEMBER_ID Extended MAPI property.

There are two, predefined IDs: 0 (Default) and -1 (Anonymous). These entries do not have entry ids

 

 

EntryID

The entry id of the corresponding Exchange address entry. Corresponds to the PR_MEMBER_ENTRYID Extended MAPI property.

 

 

AddressEntry

Returns an RDOAddressEntry object corresponding to the EntryID property.

If the entry id is missing (for the Default and Anonymous entries), this property returns NULL.

 

 

Name

String, read-only. The name of the ACE entry, e.g. "Anonymous". Corresponds to the PR_MEMBER_NAME Extended MAPI property.

 

 

Rights

Integer, read-write. The bitmask of the user rights. Each bit can be set/retrieved using the properties below.

Corresponds to the PR_MEMBER_RIGHTS Extended MAPI property.

 

Valid values are:


RIGHTS_EDIT_OWN = &H00000008
RIGHTS_EDIT_ALL = &H00000020
RIGHTS_DELETE_OWN = &H00000010
RIGHTS_DELETE_ALL = &H00000040
RIGHTS_READ_ITEMS = &H00000001
RIGHTS_CREATE_ITEMS = &H00000002
RIGHTS_CREATE_SUBFOLDERS = &H00000080
RIGHTS_FOLDER_OWNER = &H00000100
RIGHTS_FOLDER_CONTACT = &H00000200
RIGHTS_FOLDER_VISIBLE = &H00000400
RIGHTS_NONE = &H00000000
RIGHTS_ALL = &H000005FB

RIGHTS_FREEBUSY_DETAILED = &H00001000 (Outlook 2007 / Exchange 2007 specific)
RIGHTS_FREEBUSY_SIMPLE = &H00000800 (Outlook 2007 / Exchange 2007 specific)
ROLE_OWNER = &H000007FB
ROLE_PUBLISH_EDITOR = &H000004FB
ROLE_EDITOR = &H0000047B
ROLE_PUBLISH_AUTHOR = &H0000049B
ROLE_AUTHOR = &H0000041B
ROLE_NONEDITING_AUTHOR = &H00000413
ROLE_REVIEWER = &H00000401
ROLE_CONTRIBUTOR = &H00000402
ROLE_NONE = &H00000400

 

set Session = CreateObject("Redemption.RDOSession")
Session.Logon
set Folder = Session.GetDefaultFolder(olFolderCalendar)

'make sure we get back an Exchange user
set AddressEntry = Session.AddressBook.GAL.ResolveName("natalia")
set ACE = Folder.ACL.Add(AddressEntry)
ACE.Rights = ROLE_PUBLISH_EDITOR

CanEditOwn

Boolean, read-write. Corresponds to the RIGHTS_EDIT_OWN bit.

 

 

CanDeleteOwn

Boolean, read-write. Corresponds to the RIGHTS_DELETE_OWN bit.

 

 

CanEditAll

Boolean, read-write. Corresponds to the RIGHTS_EDIT_ALL bit.

 

 

CanDeleteAll

Boolean, read-write. Corresponds to the RIGHTS_DELETE_ALL bit.

 

 

CanReadItems

Boolean, read-write. Corresponds to the RIGHTS_READ_ITEMS bit.

 

 

CanCreateItems

Boolean, read-write. Corresponds to the RIGHTS_CREATE_ITEMS bit.

 

 

CanCreateSubFolders

Boolean, read-write. Corresponds to the RIGHTS_CREATE_SUBFOLDERS bit.

 

 

FreeBusyDetailed

Boolean, read-write. Corresponds to the RIGHTS_FREEBUSY_DETAILED bit. Outlook 2007 / Exchange 2007 specific.

 

'Allows access to the free/busy details of the default Calendar to an Exchange user named "natalia"

set Session = CreateObject("Redemption.RDOSession")
Session.Logon
set Folder = Session.GetDefaultFolder(olFolderCalendar)
set AddressEntry = Session.AddressBook.GAL.ResolveName("natalia")
set ACE = Folder.ACL.Add(AddressEntry)
ACE.FreeBusyDetailed = true

 

 

FreeBusySimple

Boolean, read-write. Corresponds to the RIGHTS_FREEBUSY_SIMPLE bit. Outlook 2007 / Exchange 2007 specific.

 

 

IsAnonymous Boolean, read-only. True if the entry corresponds to the anonymous user.
MemberID = -1
 
IsDefault Boolean, read-only. True if the entry corresponds to the default user.
MemberID = 0
 

IsFolderOwner

Boolean, read-write. Corresponds to the RIGHTS_FOLDER_OWNER bit.

 

 

IsFolderContact

Boolean, read-write. Corresponds to the RIGHTS_FOLDER_CONTACT bit.

 

 

IsFolderVisible

Boolean, read-write. Corresponds to the RIGHTS_FOLDER_VISIBLE bit.

 

 


Methods


Delete

Deletes the ACE entry

check if a given Exchange user is in the ACL list

'and remove it

set Session = CreateObject("Redemption.RDOSession")
Session.Logon
set Folder = Session.GetDefaultFolder(olFolderCalendar)
set AddressEntry = Session.AddressBook.GAL.ResolveName("natalia")
set ACE = Folder.ACL.ACEofAddressEntry(AddressEntry)
if not (ACE is Nothing) Then
  ACE.Delete
  'or one can set the ACE.Rights property to RIGHTS_NONE (0)
End If