# Advanced Permissions

Unitamente alla modifica della query per il recupero dei dati, si può inserire un controllo dei permessi personalizzato registrando un’ulteriore funzione:

**SDK::setAdvancedPermissionFunction($module, $func, $src);**  
*$module : modulo a cui associare la funzione*  
*$func : nome della funzione da chiamare (da isPermitted())*  
*$src : file php in cui è definita la funzione*

Per de-registrarla c’è il metodo:

**SDK::unsetAdvancedPermissionFunction($module);**  
*$module : il modulo a cui è associata la funzione*

La funzione deve essere definita in questo modo:

**function f($module, $actionname, $record\_id = '')**  
*$module : il modulo da cui è chiamata*  
*$actionname : il nome dell’azione (ListView, DetailView…)*  
*$record\_id : l’ID del record che viene analizzato*

E deve restituire una stringa i cui valori determinano l’esito del controllo:

*"no" : l’accesso al record NON è consentito*  
*"" : (stringa vuota) accesso di default per quel campo*  
*? : (qualsiasi stringa) l’accesso al record è consentito*

<p class="callout info">**Hooks** include/utils/UserInfoUtil.php</p>