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

Cosa sono gli OSGi Remote µServicesOSGi Framework come alternativa ai Microservices

In questo articolo ho voluto dimostrare come il framework OSGi con i suoi veri µServices sia in grado di favorire lo sviluppo di sistemi distribuiti leggeri, affidabili e puliti.