ttajic
5/4/2016 - 3:05 PM

CheckUserRole

CheckUserRole

function CheckUserRole(roleName) {
	var currentUserRoles = Xrm.Page.context.getUserRoles();
	for (var i = 0; i < currentUserRoles.length; i++) {
		var userRoleId = currentUserRoles[i];
		var userRoleName = GetRoleName(userRoleId);
		if (userRoleName == roleName) {
			return true;
		}
	}
	return false;
}

function GetRoleName(userRoleId) {
	var selectQuery = "/RoleSet?$top=1&$filter=RoleId eq guid'" + userRoleId + "'&$select=Name";
	var odataSelect = Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc" + selectQuery;
	var roleName = null;
	$.ajax({
		type: "GET",
		async: false,
		contentType: "application/json; charset=utf-8",
		datatype: "json",
		url: odataSelect,
		beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
		success: function (data, textStatus, XmlHttpRequest) {
			var result = data.d;
			if (!!result) {
				roleName = result.results[0].Name;
			}
		},
		error: function (XmlHttpRequest, textStatus, errorThrown) {
		}
	});
	return roleName;
}