Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Add-ins for Outlook (http://www.outlookbanter.com/add-ins-outlook/)
-   -   Determining permission to another mailbox using RDO when user isin permission group (http://www.outlookbanter.com/add-ins-outlook/55434-determining-permission-another-mailbox-using.html)

tEst August 24th 07 10:40 AM

Determining permission to another mailbox using RDO when user isin permission group
 
Hi all,
I am currently using RDO to read the current permission rights to a
delegate´s mailbox. I´m currently struggling on one particular situation:
we use groups to set permissions to users instead of setting them
directly to the acl.
Here´s an excerpt of what I did so far:

Dim Folder As RDOFolder =
Sess.GetFolderFromPath(applicationObject.ActiveExp lorer.CurrentFolder.FolderPath)
Dim ace As RDOACE
For Each ace In Folder.ACL
If ace.Name = Sess.CurrentUser.Name Then
MsgBox(CStr(ace.Rights))
If ace.CanDeleteAll = True And ace.CanCreateItems =
True Then
NAR(ace)
ace = Nothing
Folder = Nothing
Return True
End If
End If
Next
ace = Nothing
Folder = Nothing

But this returns only the rights of the current entry. If the user is in
a permission group (I think we ar talking about public dist lists) I
cannot determine the actual permission level of that particular user.
Does anybody have an idea on how to detect the correct permission level
of a particular user?
Am I completely wrong with my code above? Does there exist another
(maybe low level) MAPI property where I can read the current permission,
or is there an entry in the active directory which I can access?

Thanks for any tip!

-Mike

Dmitry Streblechenko August 24th 07 04:59 PM

Determining permission to another mailbox using RDO when user is in permission group
 
What do you see in Outlook when you look at that folder (RMB, Permissions
tab)?
What do you see in OutlookSpy (click IMAPIFolder, PR_ACL_TABLE tab)?

BTW, why are you using GetFolderFromPath? Use GetFolderFromID:

Dim Folder As RDOFolder =
Sess.GetFolderFromID(applicationObject.ActiveExplo rer.CurrentFolder.EntryID)

Make sure you set RDOSession.MAPIOBJECT to Namespace.MAPIOBJECT from OOM to
make sure RDO and OOM use the same MAPI session.


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"tEst" wrote in message ...
Hi all,
I am currently using RDO to read the current permission rights to a
delegate´s mailbox. I´m currently struggling on one particular situation:
we use groups to set permissions to users instead of setting them directly
to the acl.
Here´s an excerpt of what I did so far:

Dim Folder As RDOFolder =
Sess.GetFolderFromPath(applicationObject.ActiveExp lorer.CurrentFolder.FolderPath)
Dim ace As RDOACE
For Each ace In Folder.ACL
If ace.Name = Sess.CurrentUser.Name Then
MsgBox(CStr(ace.Rights))
If ace.CanDeleteAll = True And ace.CanCreateItems = True
Then
NAR(ace)
ace = Nothing
Folder = Nothing
Return True
End If
End If
Next
ace = Nothing
Folder = Nothing

But this returns only the rights of the current entry. If the user is in a
permission group (I think we ar talking about public dist lists) I cannot
determine the actual permission level of that particular user.
Does anybody have an idea on how to detect the correct permission level of
a particular user?
Am I completely wrong with my code above? Does there exist another (maybe
low level) MAPI property where I can read the current permission, or is
there an entry in the active directory which I can access?

Thanks for any tip!

-Mike




tEst August 24th 07 08:03 PM

Determining permission to another mailbox using RDO when useris in permission group
 
Hi Dmitry,

I´m sorry to ask: what do you mean by RMB?

In OutlookSpy I can see the following as Rows:
Row # 0
Maibox123-Reviewers
Mailbox123-PublishingEditors

Within the Rows there are five entries for each row:
PR_EntryID
PR_Instance_Key
PR_Member_ID
PR_Member_Name
PR_Member_Rights

I understand that I can read the actual entry of each of these rows with
ace.rights, but there are two questions left:
1 - how can I determine that an entry is a group instead of a person ?
2 - how can I resolve such permission groups to determine if a
particular user has sufficient permissions(I need to determine if the
user has delete permission) on that folder ?

Thanks again,

Mike

Dmitry Streblechenko schrieb:
What do you see in Outlook when you look at that folder (RMB, Permissions
tab)?
What do you see in OutlookSpy (click IMAPIFolder, PR_ACL_TABLE tab)?

BTW, why are you using GetFolderFromPath? Use GetFolderFromID:

Dim Folder As RDOFolder =
Sess.GetFolderFromID(applicationObject.ActiveExplo rer.CurrentFolder.EntryID)

Make sure you set RDOSession.MAPIOBJECT to Namespace.MAPIOBJECT from OOM to
make sure RDO and OOM use the same MAPI session.


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"tEst" wrote in message ...
Hi all,
I am currently using RDO to read the current permission rights to a
delegateŽs mailbox. IŽm currently struggling on one particular situation:
we use groups to set permissions to users instead of setting them directly
to the acl.
HereŽs an excerpt of what I did so far:

Dim Folder As RDOFolder =
Sess.GetFolderFromPath(applicationObject.ActiveExp lorer.CurrentFolder.FolderPath)
Dim ace As RDOACE
For Each ace In Folder.ACL
If ace.Name = Sess.CurrentUser.Name Then
MsgBox(CStr(ace.Rights))
If ace.CanDeleteAll = True And ace.CanCreateItems = True
Then
NAR(ace)
ace = Nothing
Folder = Nothing
Return True
End If
End If
Next
ace = Nothing
Folder = Nothing

But this returns only the rights of the current entry. If the user is in a
permission group (I think we ar talking about public dist lists) I cannot
determine the actual permission level of that particular user.
Does anybody have an idea on how to detect the correct permission level of
a particular user?
Am I completely wrong with my code above? Does there exist another (maybe
low level) MAPI property where I can read the current permission, or is
there an entry in the active directory which I can access?

Thanks for any tip!

-Mike




Dmitry Streblechenko August 24th 07 10:19 PM

Determining permission to another mailbox using RDO when user is in permission group
 
By RMB I mean "right mouse button click", sorry about being cryptic.
When accessing ACE in RDO, you can use RDOACE.AddressEntry property to get
back the corresponding RDOAddressEntry object. You can them access the
RDOAddressEntry.DisplayType property and RDOAddressEntry.Members collection
to figure out the type of fthe address entry and (in case of a DL) access
its members.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"tEst" wrote in message ...
Hi Dmitry,

I´m sorry to ask: what do you mean by RMB?

In OutlookSpy I can see the following as Rows:
Row # 0
Maibox123-Reviewers
Mailbox123-PublishingEditors

Within the Rows there are five entries for each row:
PR_EntryID
PR_Instance_Key
PR_Member_ID
PR_Member_Name
PR_Member_Rights

I understand that I can read the actual entry of each of these rows with
ace.rights, but there are two questions left:
1 - how can I determine that an entry is a group instead of a person ?
2 - how can I resolve such permission groups to determine if a particular
user has sufficient permissions(I need to determine if the user has delete
permission) on that folder ?

Thanks again,

Mike

Dmitry Streblechenko schrieb:
What do you see in Outlook when you look at that folder (RMB, Permissions
tab)?
What do you see in OutlookSpy (click IMAPIFolder, PR_ACL_TABLE tab)?

BTW, why are you using GetFolderFromPath? Use GetFolderFromID:

Dim Folder As RDOFolder =
Sess.GetFolderFromID(applicationObject.ActiveExplo rer.CurrentFolder.EntryID)

Make sure you set RDOSession.MAPIOBJECT to Namespace.MAPIOBJECT from OOM
to make sure RDO and OOM use the same MAPI session.


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"tEst" wrote in message ...
Hi all,
I am currently using RDO to read the current permission rights to a
delegateZs mailbox. IZm currently struggling on one particular
situation:
we use groups to set permissions to users instead of setting them
directly to the acl.
HereZs an excerpt of what I did so far:

Dim Folder As RDOFolder =
Sess.GetFolderFromPath(applicationObject.ActiveExp lorer.CurrentFolder.FolderPath)
Dim ace As RDOACE
For Each ace In Folder.ACL
If ace.Name = Sess.CurrentUser.Name Then
MsgBox(CStr(ace.Rights))
If ace.CanDeleteAll = True And ace.CanCreateItems = True
Then
NAR(ace)
ace = Nothing
Folder = Nothing
Return True
End If
End If
Next
ace = Nothing
Folder = Nothing

But this returns only the rights of the current entry. If the user is in
a permission group (I think we ar talking about public dist lists) I
cannot determine the actual permission level of that particular user.
Does anybody have an idea on how to detect the correct permission level
of a particular user?
Am I completely wrong with my code above? Does there exist another
(maybe low level) MAPI property where I can read the current permission,
or is there an entry in the active directory which I can access?

Thanks for any tip!

-Mike





All times are GMT +1. The time now is 03:43 AM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com