SugarCRM readonly custom field based on user role

Qualche giorno addietro ho risposto a una domanda posta su stackoverflow.com sulla creazione di un campo personalizzato che sia reso in sola lettura a utenti che dispongono di un determinato ruolo. La realizzazione di questo comportamento sulle versioni commerciali di SugarCRM è pressochè banale ma non è così sulla Community Edition. 

Mettiamo di voler aggiungere un campo custom di tipo checkbox chiamato Processor SignOff  sul modulo Task di SugarCRM e voler rendere in sola lettura l’accesso a questo campo ai membri del ruolo ITOperation. Il campo deve essere disponibile sul layout di edit-view. Per raggiungere facilmente il risultato occorre procedere nel modo seguente:

  1. Step 1: Creare il campo custom di tipo checkbox dall’ambiente Studio di SugarCRM;
  2. Step 2: Creare o modificare i metadati della edit view su editviewdefs.php dove indicare come renderizzare il nuovo campo personalizzato;
  3. Step 3: Creare o modificare il SugarView::display() per fare in modo che sul template smarty sia possibile sapere quando visualizzare il campo personalizzato in sola lettura o non.

Il Listato 1 mostra il frammento di codice della editviewdefs.php responsabile del rendering del controllo sulla maschera di modifica del modulo Task, mentre il Listato 2 mostra l’estensione del metodo SugarView::display()  dov’è recuperato il ruolo dell’utente e impostate le variabili per lo Smarty Template.

Listato 1.  Frammento di codice della definizione del campo personalizzato.

Listato 2. Implementazione del metodo SugarView::display()

Questa personalizzazione andrebbe fatta in modalità safe per cui i due file oggetto della modifica andranno sulla “famosa” custom directory e esattamente su:

  1. File dei metadati della edit view in custom/modules/Tasks/metadata/editviewdefs.php;
  2. File della classe SugarView view.edit.php in  custom/modules/Tasks/views/view.edit.php

Per applicare la nuova personalizzazione basta fare un bel Quick and Repair e il vostro nuovo campo personalizzato basato sul ruolo è fatto.

Enhanced by Zemanta
0 Condivisioni

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...