2017-11-25 13 views
-1

아무도, crm2011에서 자바 스크립트 코드를 작성하여 보안 역할에 따라 하나의 필드에서 편집 옵션을 제공 할 수 있습니까?자바 스크립트 코드에서 crm2011의 역할을 기반으로 편집 필드

+0

내 필드 이름은 대소 제목이며, 또한이 분야에서 일부 드롭 다운 옵션을 가지고 있고, 내 역할 이름은 필드 레벨 보안을 사용할 수 경우 제목 편집 –

+0

입니까? https://community.dynamics.com/crm/b/dynamics101trainingcentercrm/archive/2013/09/03/how-to-configure-field-level-security-in-microsoft-dynamics-crm-2011 –

답변

0

양식로드 & 필드에서 사용자 역할을 확인하려면 아래 스크립트를 사용할 수 있습니다. 기본적으로 필드를 읽기 전용으로 설정하십시오.

참고 :이 스크립트 라이브러리 전에 json 스크립트 & 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