Translate

Showing posts with label Get current user role and name in rollup 14. Show all posts
Showing posts with label Get current user role and name in rollup 14. Show all posts

Friday, 9 August 2013

Get current user role and name in rollup 14

  How to get "Current User Role and Role Name" in CRM for roll-up 14. 

     Hello CRM lovers, Here is my blog for  getting logged user Role and Role name for Roll-Up 12, Roll-Up 13, Roll-Up 14 and also in cross browser support. I will really help you. For achieving this you have to fallow these steps.

 

Step 1:-  First of all you have to add reference of J Query main file minimum version jquery1.4.1.min or higher version. you can download it from http://jquery.com/.

Step 2:-  Now you have to add reference of "json2" on your crm entity form, You can get it from sdk, you will find it in your sdk folder.

Step 3:-  Now add the fallowing code in your web resource. 



//******************************************************************************************
//*******Retrive Multiple recored on the basis of the criteria OData Rest Method************
//******************************************************************************************
function retrieveMultiple(odataSetName, filter, successCallback, errorCallback, _executionObj) {
    _executionObjMultiretrive = _executionObj;
    var context = Xrm.Page.context;
    var serverUrl = context.getServerUrl();
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
    //odataSetName is required, i.e. "AccountSet"  
    if (!odataSetName) {
        alert("odataSetName is required.");
        return;
    }
    //Build the URI 
    var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName;
    //If a filter is supplied, append it to the OData URI
    if (filter) {
        odataUri += filter;
    }
    //Asynchronous AJAX function to Retrieve CRM records using OData
    $.ajax({
        type: "GET",
        async: false,
        contentType: "application/json; charset=utf-8",
        datatype: "json", url: odataUri,
        beforeSend: function (XMLHttpRequest) {
            //Specifying this header ensures that the results will be returned as JSON.
            XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: function (data, textStatus, XmlHttpRequest) {
            if (successCallback) {
                if (data && data.d && data.d.results) {
                    successCallback(data.d.results, textStatus, XmlHttpRequest);
                }
                else if (data && data.d) {
                    successCallback(data.d, textStatus, XmlHttpRequest);
                }
                else {
                    successCallback(data, textStatus, XmlHttpRequest);
                }
            }
        },
        error: function (XmlHttpRequest, textStatus, errorThrown) {
            if (errorCallback)
                errorCallback(XmlHttpRequest, textStatus, errorThrown);
            else
                errorHandler(XmlHttpRequest, textStatus, errorThrown);
        }
    });
}
function errorHandler(xmlHttpRequest, textStatus, errorThrow) {
    alert("Error : " + textStatus + ": " + xmlHttpRequest.statusText);
}


Step 4 :-  Now add the fallowing three functions in your web resource, In third function you will get current logged user role name.

//**********************************************************************************
//***************** Function For getting the Current User Role********************
//**********************************************************************************
    function getOwnerRole(UserID) {
        var _Userid = UserID;
        if (_Userid != null) {
            var istrue = retrieveMultiple("SystemUserRolesSet", "?$filter=SystemUserId eq (guid'" + _Userid + "')", RetrieveDataFromSystemUser, null, null);
        }
    }

    function RetrieveDataFromSystemUser(data, textStatus, XmlHttpRequest) {
        //debugger;
        var executioncontext = _executionObjMultiretrive;
        var len = data.length;
        if (len > 0) {
            for (i = 0; i < len; i++) {
                if (data[i].RoleId != null) {

 //****************************************************************
//*** This is the first role user have
//*** User may have many roles so you can get all here during loop                    //******************************************************************************
      var userRoleId=data[0].RoleId;

      retrieveMultiple("RoleSet", "?$filter=RoleId eq (guid'" + data[i].RoleId + "')",         RetrieveRoleName, null, null);
                }
            }
        }
    }

    function RetrieveRoleName(data, textStatus, XmlHttpRequest) {
        //debugger;
        var executioncontext = _executionObjMultiretrive;
        var len = data.length;

        if (data[0].Name != null) {

              var userRoleName=data[0].Name;          
        }
    }           



So by fallowing all upper steps you can get current logged user Role Id and Role Name. It will work in cross browser and in all new Roll-Up 12,Roll-Up 13 and Roll-Up 14. 

Enjoy the great technology Dynamics CRM. Good luck.....!!!!! 
Thanks.