Check User Roles
Checking user role is a common requirement in MS CRM application. Here is the code using oData query.
Checking user role is a common requirement in MS CRM application. Here is the code using oData query.
//Get user roles
CustomcheckSecurityRole: function () {
//Getting the user id of the logged in
user
var user = Xrm.Page.context.getUserId();
var loggedInUserId = user.substring(1,
37);
flag = false;
//Getting the roles of logged in user
var odataSelect = "/SystemUserSet?$select=systemuserroles_association/Name,systemuserroles_association/RoleId&$expand=systemuserroles_association&$filter=SystemUserId
eq guid'" + loggedInUserId + "'";
var requestResults =
GetEntityData(odataSelect);
var roleName = "";
//Comparing the roles of logged in user,If
Display Role or Read All User is present return false
for (var
i = 0; i <
requestResults.results[0].systemuserroles_association.results.length; i++) {
roleName =
requestResults.results[0].systemuserroles_association.results[i].Name;
if
(roleName.toString() != "System
Administrator")
{
flag = true;
}
}
return (flag);
}
//Get entity data.
It requires oData query.
GetEntityData :function(OData) {
var serverURL =
getServerUrl();
var oDataEndpointUrl = serverURL + "/XRMServices/2011/OrganizationData.svc";
oDataEndpointUrl += OData;
var service = GetRequestObject();
if (service != null)
{
service.open("GET",
oDataEndpointUrl, false);
service.setRequestHeader("X-Requested-Width", "XMLHttpRequest");
service.setRequestHeader("Accept", "application/json,
text/javascript, */*");
service.send(null);
var
requestResults = eval('(' +
service.responseText + ')').d;
if
(requestResults != null)
return
requestResults;
else
return
null;
}
}
GetRequestObject: function () {
if
(window.XMLHttpRequest) {
return
new window.XMLHttpRequest;
}
else {
try
{
return
new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
catch
(ex) {
return
null;
}
}
}
getServerUrl: function {
var customServerURL =
document.location.protocol + "//" + document.location.host +
"/" + Xrm.Page.context.getOrgUniqueName();
return customServerURL;
}