// JScript source code
GetCurrentUserRoles = function () {
var requestMain = ""
requestMain += "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
requestMain += " <s:Body>";
requestMain += " <Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">";
requestMain += " <request i:type=\"a:RetrieveMultipleRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\">";
requestMain += " <a:Parameters xmlns:b=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <b:key>Query</b:key>";
requestMain += " <b:value i:type=\"a:QueryExpression\">";
requestMain += " <a:ColumnSet>";
requestMain += " <a:AllColumns>false</a:AllColumns>";
requestMain += " <a:Columns xmlns:c=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">";
requestMain += " <c:string>name</c:string>";
requestMain += " </a:Columns>";
requestMain += " </a:ColumnSet>";
requestMain += " <a:Criteria>";
requestMain += " <a:Conditions />";
requestMain += " <a:FilterOperator>And</a:FilterOperator>";
requestMain += " <a:Filters />";
requestMain += " </a:Criteria>";
requestMain += " <a:Distinct>false</a:Distinct>";
requestMain += " <a:EntityName>role</a:EntityName>";
requestMain += " <a:LinkEntities>";
requestMain += " <a:LinkEntity>";
requestMain += " <a:Columns>";
requestMain += " <a:AllColumns>false</a:AllColumns>";
requestMain += " <a:Columns xmlns:c=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\" />";
requestMain += " </a:Columns>";
requestMain += " <a:EntityAlias i:nil=\"true\" />";
requestMain += " <a:JoinOperator>Inner</a:JoinOperator>";
requestMain += " <a:LinkCriteria>";
requestMain += " <a:Conditions>";
requestMain += " <a:ConditionExpression>";
requestMain += " <a:AttributeName>systemuserid</a:AttributeName>";
requestMain += " <a:Operator>Equal</a:Operator>";
requestMain += " <a:Values xmlns:c=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\">";
requestMain += " <c:anyType i:type=\"d:string\" xmlns:d=\"http://www.w3.org/2001/XMLSchema\">" + Xrm.Page.context.getUserId() + "</c:anyType>";
requestMain += " </a:Values>";
requestMain += " </a:ConditionExpression>";
requestMain += " </a:Conditions>";
requestMain += " <a:FilterOperator>And</a:FilterOperator>";
requestMain += " <a:Filters />";
requestMain += " </a:LinkCriteria>";
requestMain += " <a:LinkEntities />";
requestMain += " <a:LinkFromAttributeName>roleid</a:LinkFromAttributeName>";
requestMain += " <a:LinkFromEntityName>role</a:LinkFromEntityName>";
requestMain += " <a:LinkToAttributeName>roleid</a:LinkToAttributeName>";
requestMain += " <a:LinkToEntityName>systemuserroles</a:LinkToEntityName>";
requestMain += " </a:LinkEntity>";
requestMain += " </a:LinkEntities>";
requestMain += " <a:Orders />";
requestMain += " <a:PageInfo>";
requestMain += " <a:Count>0</a:Count>";
requestMain += " <a:PageNumber>0</a:PageNumber>";
requestMain += " <a:PagingCookie i:nil=\"true\" />";
requestMain += " <a:ReturnTotalRecordCount>false</a:ReturnTotalRecordCount>";
requestMain += " </a:PageInfo>";
requestMain += " <a:NoLock>false</a:NoLock>";
requestMain += " </b:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " </a:Parameters>";
requestMain += " <a:RequestId i:nil=\"true\" />";
requestMain += " <a:RequestName>RetrieveMultiple</a:RequestName>";
requestMain += " </request>";
requestMain += " </Execute>";
requestMain += " </s:Body>";
requestMain += "</s:Envelope>";
var req = new XMLHttpRequest();
req.open("POST", _getServerUrl(), false)
// Responses will return XML. It isn't possible to return JSON.
req.setRequestHeader("Accept", "application/xml, text/xml, */*");
req.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
req.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
var successCallback = null;
var errorCallback = null;
//req.onreadystatechange = function () { RetrieveMultipleResponse(req, successCallback, errorCallback); };
req.send(requestMain);
var resultXml = req.responseXML;
return (resultXml);
}
function rolename() {
var oXml = GetCurrentUserRoles();
if (oXml != null) {
//select the node text
var roles = oXml.selectNodes("//a:Entities/a:Entity/a:Attributes/a:KeyValuePairOfstringanyType");
if (roles != null) {
for (j = 0; j < roles.length; j++) {
alert(roles[j].childNodes[1].text);
}
}
}
}
No comments:
Post a Comment