Tuesday, 7 April 2015

Check whether User has specific role or not


The below code will be used to find whether the user has specific or not. "Edit Address Info" is the role name that we are checking.

function checkRole()
{
   IsUserHaveRequiredRole("Edit Address Info")
}
function IsUserHaveRequiredRole(rolename) {
    var currentUserRoles = Xrm.Page.context.getUserRoles();
    var Query = "/RoleSet?$filter=Name eq '" + rolename + "'";
    var Result = getRESTQueryResult(Query);

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

    for (role in currentUserRoles) {
        for (allowedrole in Result.results) {
            if (currentUserRoles[role] == Result.results[allowedrole].RoleId) {
                HasRole = true;
            }
        }
    }
    return HasRole;
}
function getRESTQueryResult(RESTQuery) {
    var oDataEndPointUrl = serverUrl + "/XRMServices/2011/OrganizationData.svc/";
    oDataEndPointUrl += RESTQuery;
    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;
        return requestResults;
    }
    return '';
}

function GetRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    }
    else {
        try {
            return new ActiveXObject("MSXML2.XMLHTTP.3.0");
        }
        catch (ex) {
            return null;
        }
    }
}

No comments:

Post a Comment