|
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 |
|