code to check user in Role

if(UserHasRole(“System Administrator”)) {  alert(‘System Administrator’);}

 

 

function

 

 

 

 

UserHasRole(roleName)

 

{

 

 

 

var serverUrl = Xrm.Page.context.getServerUrl();

 

 

 

var oDataEndpointUrl = serverUrl + “/XRMServices/2011/OrganizationData.svc/”;

 

oDataEndpointUrl +=

 

 

“RoleSet?$top=1&$filter=Name eq ‘” + roleName + “‘”;

 

 

 

var service = GetRequestObject();

 

 

 

if (service != null) {

 

 

 

//alert(service);


service.open(

 

 

“GET”, oDataEndpointUrl, false);

 

service.setRequestHeader(

 

 

“X-Requested-Width”, “XMLHttpRequest”);

 

service.setRequestHeader(

 

 

“Accept”, “application/json, text/javascript, */*”);

 

service.send(

 

 

null);

 

 

 

//alert(service.responseText);


 

 

var requestResults = eval(‘(‘ + service.responseText + ‘)’).d;

 

 

 

 

if (requestResults != null && requestResults.results.length == 1) {

 

alert(requestResults);

 

 

 

var role = requestResults.results[0];

 

alert(role);

 

 

 

var id = role.RoleId;

 

alert(id);

 

 

 

var currentUserRoles = Xrm.Page.context.getUserRoles();

 

 

 

for (var i = 0; i < currentUserRoles.length; i++)

 

{

 

 

 

var userRole = currentUserRoles[i];

 

alert(userRole);

 

 

 

if (GuidsAreEqual(userRole, id))

 

{

 

 

 

returntrue;

 

}

 

}

 

}

 

}

 

 

 

returnfalse;

 

}

 

function

 

 

 

 

GetRequestObject()

 

{

 

 

 

if (window.XMLHttpRequest)

 

{

 

 

 

returnnew window.XMLHttpRequest;

 

}

 

 

 

else


{

 

 

 

try


{

 

 

 

returnnew ActiveXObject(“MSXML2.XMLHTTP.3.0″);

 

}

 

 

 

catch (ex)

 

{

 

 

 

returnnull;

 

}

 

}

 

}

 

function

 

 

 

 

GuidsAreEqual(guid1, guid2)

 

{

 

 

 

var isEqual = false;

 

 

 

if (guid1 == null || guid2 == null)

 

{

 

isEqual =

 

 

false;

 

}

 

 

 

else


{

 

isEqual = guid1.replace(/[{}]/g,

 

 

“”).toLowerCase() == guid2.replace(/[{}]/g, “”).toLowerCase();

 

}

 

 

 

return isEqual;

 

}

 

This entry was posted in MS Dynamic CRM 2011. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>