Il est parfois nécessaire de rajouter des champs sur le module User mais qui doivent être uniquement éditables par les administrateurs. Certains champs standards sont déjà comme cela et Sugar a tout prévu dans la classe SugarACLUsers pour permettent d’étendre cela à des champs custom.
Pour avoir ce même comportement sur les champs custom, il suffit d’effectuer les 3 opérations ci-dessous :
1 – Créer un ACL custom dans le répertoire custom/data/acl qui étend la class SugarACLUsers.
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
require_once('data/acl/SugarACLUsers.php');
class SugarACLCustomUsers extends SugarACLUsers
{
/**
* Fields non admin cannot edit
*/
public $no_edit_fields = array(
'custom_field_c' => true,
);
}
2 – Créer dans custom/Extensions/modules/Users/vardefs un vardef qui ajoute le custom ACLs dans vardefs
<?php $dictionary['User']['acls']['SugarACLCustomUsers'] = array();
3 – Effectuer une reconstruction et réparation rapide.