2017-11-25 6 views
-1

誰でも知っている、どのように1つのフィールドにセキュリティロールに基づいて編集オプションを与えるcrm2011のjavascriptコードを書くことができますか?JavaScriptのコード内の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スクリプト&を使用する依存関係があります。

//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

関連する問題