Code: Select all
function checkRole() {
var roleName = "Administrator";
if (currentUserHasRole(roleName)) {
return true;
}
else {
return false;
}
}
2. This function takes one argument-the roleName. Given the roleName-Administrator, hasRole(roleName) function can be able to get the GUID or the primary key of an Admin role. The function will use the GUID to check if the current user contains an Adminstrator Role.
Code: Select all
function hasRole(roleName) {
var serverUrl = Xrm.Page.context.getServerUrl();
var oDataEndpointUrl = serverUrl + "/XRMServices/2011/OrganizationData.svc/";
oDataEndpointUrl += "RoleSet?$filter=Name eq '" + roleName + "'";
var service = GetRequestObject();
if (service != null) {
service.open("GET", oDataEndpointUrl, false);
service.setRequestHeader("X-Requested-Width", "XMLHttpRequest");
service.setRequestHeader("Accept", "application/json, text/javascript, */*"); //this will ensure that the returned value is JSON
service.send(null);
var requestResults = eval('(' + service.responseText + ')').d;
if (requestResults != null) {
for (var z = 0; z < requestResults.results.length; z++) {
var role = requestResults.results[z];
var id = role.RoleId;
var strRoleName = role.Name;
var currentUserRoles = Xrm.Page.context.getUserRoles();
for (var i = 0; i < currentUserRoles.length; i++) {
var userRoleID = currentUserRoles[i];
if (RoleAreEqual(id, userRoleID)) {
return true;
}
}
}
}
}
return false;
}
function RoleAreEqual(roleID, userRoleID) {
var isEqual = false;
if (roleID == null || userRoleID == null) {
isEqual = false;
}
else {
if (roleID == userRoleID) {
isEqual = true;
}
}
return isEqual;
}