Code Snippets

  • Dynamically Disable Fields Based on Security Roles
    JavaScript
    Disable Fields Based on Security Roles: Use JavaScript to disable or hide fields based on the user's security role, enforcing field-level security on the client side.
Disable Fields Based on Security Roles: Use JavaScript to disable or hide fields based on the user's security role, enforcing field-level security on the client side.

// Disable Fields Based on Security Roles security on the client side. function disableFieldsForRoles(executionContext) { const userRoles = Xrm.Utility.getGlobalContext().userSettings.roles; const restrictedRoles = ["GUID_of_role_1", "GUID_of_role_2"]; const formContext = executionContext.getFormContext(); if (userRoles.some(role => restrictedRoles.includes(role.id))) { formContext.getControl("restrictedField").setDisabled(true); } }


Now let's suppose you don't have the GUIDs of the security roles, but only the names, you can proceed as described below :

// Code description function disableFieldsForRoles(executionContext) { // List of restricted role names const restrictedRolesNames = ["Role Name 1", "Role Name 2"]; // Get the form context const formContext = executionContext.getFormContext(); // Get the roles of the current user const userRoles = Xrm.Utility.getGlobalContext().userSettings.roles; // Check if the user has a restricted role userRoles.forEach(function (role) { Xrm.WebApi.retrieveRecord("role", role.id).then(function (result) { if (restrictedRolesNames.includes(result.name)) { // Disable the field if the role is restricted formContext.getControl("restrictedField").setDisabled(true); } }).catch(function (error) { console.error("Error retrieving role:", error); }); }); }
cookie
Cookies Consent

We use our own and third-party cookies to personalize content and to analyze web traffic.

Reject all