Sunday 15 June 2014

Microsoft CRM 2011, Get origin of privileges for a user -



Microsoft CRM 2011, Get origin of privileges for a user -

i'm retrieving privileges user retrieveuserprivilegesrequest. works fine, , privileges assigned user.

in add-on need know origin of each of privileges. meaning want know securityrole (can multiple) every privilege derives. in next step need know if securityrole straight assigned user or if derives team user part of.

any help much appreciated!

you can create , should work.

the relashionship goes in way:

privilege --> privilege.role <-- role --> role.user <-- user.

and

privilege --> privilege.role <-- role --> role.team <-- team --> team.user <-- user

so this, show fetchxml, can utilize linq or qe. need ask, first roles user have:

<fetch mapping="logical" count="50" version="1.0"> <entity name="role"> <attribute name="roleid" /> <link-entity name="systemuserroles" from="roleid" to="roleid"> <link-entity name="systemuser" from="systemuserid" to="systemuserid"> <filter> <condition attribute="systemuserid" operator="eq" value="{your-user-guid}" /> </filter> </link-entity> </link-entity> </entity> </fetch>

now have user's roles, those, each rol, inquire privileges user have.

<fetch mapping="logical" count="50" version="1.0"> <entity name="privilege"> <attribute name="privilegeid" /> <link-entity name="roleprivileges" from="privilegeid" to="privilegeid"> <link-entity name="role" from="roleid" to="roleid"> <filter> <condition attribute="roleid" operator="eq" value="{the-role-guid}" /> </filter> <link-entity name="systemuserroles" from="roleid" to="roleid"> <link-entity name="systemuser" from="systemuserid" to="systemuserid"> <filter> <condition attribute="systemuserid" operator="eq" value="{foreach-your-guid}" /> </filter> </link-entity> </link-entity> </link-entity> </link-entity> </entity> </fetch>

if need know privileges team have, need query against team, because team owner of roles. first teams user belongs to:

<fetch mapping="logical" count="50" version="1.0"> <entity name="team"> <attribute name="teamid" /> <link-entity name="teammembership" from="teamid" to="teamid"> <link-entity name="systemuser" from="systemuserid" to="systemuserid"> <filter> <condition attribute="systemuserid" operator="eq" value="{your-user-guid}" /> </filter> </link-entity> </link-entity> </entity> </fetch>

and then, each team user belongs to, inquire roles teams have:

<fetch mapping="logical" count="50" version="1.0"> <entity name="role"> <attribute name="roleid" /> <link-entity name="teamroles" from="roleid" to="roleid"> <link-entity name="team" from="teamid" to="teamid"> <filter> <condition attribute="teamid" operator="eq" value="{your-team-guid" /> </filter> </link-entity> </link-entity> </entity> </fetch>

i know, why trying this, because may improve approach, because quite heavy, if need know else allow me know, hope can help you.

dynamics-crm-2011

No comments:

Post a Comment