在javascript代码中根据crm2011中的角色编辑字段

时间:2017-11-25 06:51:13

标签: http dynamics-crm dynamics-crm-2011

任何人都知道,如何在crm2011中编写一个javascript代码,根据安全角色在一个字段中提供编辑选项?

1 个答案:

答案 0 :(得分:0)

您可以使用以下脚本检查表单加载和放大器上的用户角色。启用该字段。默认情况下,将字段设置为只读。

注意:它依赖于使用jQuery&要在此脚本库之前加载的Json脚本。

//Check login User has 'case title edit' role
function CheckUserRole() {
    var currentUserRoles = Xrm.Page.context.getUserRoles();
    for (var i = 0; i < currentUserRoles.length; i++) {
         var userRoleId = currentUserRoles[i];
    var userRoleName = GetRoleName(userRoleId);
        if (userRoleName == "case title edit") {

//make the field editable here...
 Xrm.Page.getControl("fieldname").setDisabled(false); 

            return true;
        }
    }
    return false;
}

//Get Rolename based on RoleId
function GetRoleName(roleId) {
    //var serverUrl = Xrm.Page.context.getServerUrl();
    var serverUrl = location.protocol + "//" + location.host + "/" + Xrm.Page.context.getOrgUniqueName();
    var odataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc" + "/" + "RoleSet?$filter=RoleId eq guid'" + roleId + "'";
    var roleName = null;
    $.ajax(
        {
            type: "GET",
            async: false,
            contentType: "application/json; charset=utf-8",
            datatype: "json",
            url: odataSelect,
            beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept", "application/json"); },
            success: function (data, textStatus, XmlHttpRequest) {
                roleName = data.d.results[0].Name;
            },
            error: function (XmlHttpRequest, textStatus, errorThrown) { alert('OData Select Failed: ' + textStatus + errorThrown + odataSelect); }
        }
    );
    return roleName;
}

Reference