判斷用戶是否擁有角色
//roleNames是數組
function UserHasRole(roleNames) {
var ODataResult = ODataRetrieve("SystemUserSet?$select=systemuserroles_association/Name&$expand=systemuserroles_association&$filter=SystemUserId eq guid'" + Xrm.Page.context.getUserId() + "'");
if (ODataResult != null && ODataResult.results.length == 1 && ODataResult.results[0].systemuserroles_association.results.length > 0) {
var oDataRoles = ODataResult.results[0].systemuserroles_association.results;
for (var i = 0; i < oDataRoles.length; i++) {
for (var j = 0; j < roleNames.length; j++) {
if (oDataRoles[i].Name == roleNames[j]) {
return true;
}
}
}
}
return false;
}
function ODataRetrieve(oDataString)
{
var ServerUrl = Xrm.Page.context.getClientUrl();
if (ServerUrl.match(/\/$/))
{
ServerUrl = ServerUrl.substring(0, ServerUrl.length - 1);
}
var retrieveReq = new XMLHttpRequest();
retrieveReq.open("GET", ServerUrl + "/XRMServices/2011/OrganizationData.svc/" + oDataString, false);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8");
retrieveReq.send();
return JSON.parse(retrieveReq.responseText).d;
}