Quantcast
Channel: CRM Development forum
Viewing all articles
Browse latest Browse all 8223

JScript to adjust form by User Security Role

$
0
0

Hopefully someone can help.

I am trying to write some JScript to update a field on a form based on if the user has the relevant security role.
I have done some searches online but I just cant get the code to work. As I am fairly new to Java can someone please help?
Currently on CRM 2015 Online.

Error Message:

One of the scripts for this record has caused an error. For more details, download the log file.
ReferenceError: ShowHideDispatchSection is not defined at eval (eval at RunHandlerInternal (https://lvlissdev.crm4.dynamics.com/form/ClientApiWrapper.aspx?ver=941619645:150:32),<anonymous>:1:1)

Below is my code:

function ShowHideDispatchSection() {
    if (UserHasRole("System Administrator")) {
Xrm.Page.getAttribute("liss_lifearea").setValue(131090003);
}
    } else {
Xrm.Page.getAttribute("liss_lifearea").setValue(131090000);

    }
}

function UserHasRole(roleName) {
    var currentUserRoles = Xrm.Page.context.getUserRoles();
    var serverUrl = Xrm.Page.context.getClientUrl();
    var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/RoleSet?$select=RoleId&$filter=Name eq '" + roleName + "'";
    var result = false;
    var retrieveReq = new XMLHttpRequest();
    retrieveReq.open("GET", oDataSelect, false);
    retrieveReq.setRequestHeader("Accept", "application/json");
    retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8");
    retrieveReq.onreadystatechange = function () {
        if (retrieveReq.readyState === 4) {
            if (retrieveReq.status === 200) {
                var retrieved = JSON.parse(retrieveReq.responseText).d;
                if (retrieved.results.length > 0) {
                    for (var i = 0; i < currentUserRoles.length; i++) {
                        for (var j = 0; j < retrieved.results.length; j++) {
                            if (GuidsAreEqual(currentUserRoles[i], retrieved.results[j].RoleId)) {
                                result = true;
                            }
                        }
                    }
                }
            }
        }
    };

    retrieveReq.send();
    return result;
};

function GuidsAreEqual(guid1, guid2) {
    var isEqual;
    isEqual = false;
    if (guid1 == null || guid2 == null) {
        isEqual = false;
    } else {
        isEqual = (guid1.replace(/[{}]/g, "").toLowerCase() == guid2.replace(/[{}]/g, "").toLowerCase());
    }
    return isEqual;
};


Viewing all articles
Browse latest Browse all 8223

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>