Parametrizzazione > Utenti > Restrizioni accesso 

La gestione dei ruoli permette di definire, in gestione d’oggetto, dei filtri dei dati in modo molto selettivo, in funzione dell'utente. E' particolarmente utile per filtrare dei dati che devono essere presentati a degli utenti collegati dall'esterno (per esempio tramite interfaccia Web). Permette infatti, per esempio, di presentare in inserimento degli ordini, solo gli ordini passati da un cliente o pagati da questo cliente (che si suppone sia l'utente).

Principi di funzionamento

Questa gestione si basa su :

  • la definizione di codici ruoli (cliente, pagatore, rappresentante, fornitore...) in modo molto libero in una tabella diversa (la tabella numero 60)
  • l’associazione, per gli oggetti su cui si desidera stabilire un filtro, di un campo della tabella principale con il codice ruolo. Sarà questa associazione che permetterà di stabilire il criterio di filtro dei dati. La gestione dei ruoli qui documentata permette di definire queste associazioni.
  • in modo operativo, l'attribuzione, nella scheda utente, di uno o più ruoli con i codici corrispondenti (30 al massimo). Sarà questa assegnazione a definire i filtri automatici nelle gestioni di oggetti interessati.

Una volta definite queste parametrizzazioni, e definiti dei ruoli (con i corrispondenti codici) nella scheda utente :

  • Viene effettuato un filtro nell'oggetto (lista di selezione, finestre di selezione) sul o sui codici definiti nella scheda utente
  • Viene effettuato un controllo al momento della creazione sui campi filtrati.
  • Un filtro può essere effettuato nella consultazione.

Osservazioni e limiti

Attenzione, il filtro ha i seguenti limiti :

  • Il filtro lista di selezione si fa solo sui campi della tabella principale dell'oggetto (nessun filtro neanche sul picking)
  • In caso di inserimento di chiave vietata senza passaggio dalla selezione, l'inserimento è in un primo tempo accettato, dato che il controllo si fa alla fine. Per aggirare questo limite, è possibile realizzare dei controlli di ruoli in tempo reale su alcuni campi in specifico, ed in modo molto semplice, usando l'azione CROLE come azione di controllo. Ciò non viene realizzato in standard perchè la generalizzazione su tutti i campi provocherebbe numerosi scambi tra client e server quando in generale si fa questo tipo di controllo su pochissimi campi.
  • il filtro indotto da dei ruoli non è gestito dalle stampe standard (ciò sarebbe impossibile viste le possibilità estreme di parametrizzazione), nè dalle consultazioni standard. Occorre dunque creare delle stampe particolari se si vuole renderle accessibili a degli utenti esterni (ma ciò è possibile giocando sui codici di accesso per dedicare delle stampe specificamente filtrate a questi utenti).
  • un filtro globale di dati in una tabella la cui lista di selezione non è forzatamente ordinata secondo il criterio filtrante, può essere penalizzante in termini di tempi di risposta. E' quindi consigliato utilizzare degli indici di ottimizzazione e dichiararli nel browser di sinistra.

Nel caso in cui più ruoli siano definiti nella scheda utente, la regola è la seguente :

  • se i ruoli sono identici e la chiave associata è diversa, si fa un o logico tra le condizioni.
  • se i ruoli sono diversi, si fa un e logico tra le condizioni.

Esempi

Qualche esempio permetterà di illustrare questa logica. Si vuole filtrare :

  • gli articoli per codice acquirente (campo BUY associato all'oggetto ITM per il ruolo acquirente)
  • gli ordini di acquisto per fornitore (campo BPSNUM associato all'oggetto POH per il ruolo fornitore)
  • gli ordini di acquisto anche per codice acquirente (campo BUY associato all'oggetto POH per il ruolo acquirente)

Se l'utente MARIOROSSI ha il ruolo acquirente per i codici BIANCHI e VERDI, ed il ruolo fornitore per i codici DELPONTE, DELMONTE, e RUSSO, si avranno i seguenti filtri :

  • In inserimento di ordine fornitore, si vedranno solo gli ordini passati al fornitore DELPONTE, DELMONTE, o RUSSO, e questo dagli acquirenti BIANCHI o VERDI.
  • Se si crea un ordine, la finestra di selezione degli acquirenti e dei fornitori filtrerà in modo corretto gli acquirenti ed i fornitori autorizzati. In compenso, se viene inserito un codice vietato, verrà controllato solo quando si cerca di validare l'ordine.
  • Gli articoli ordinati saranno anch'essi filtrati direttamente alla loro selezione in funzione degli acquirenti. Infine, se viene inserito un articolo non acquistato da uno degli acquirenti, il controllo si farà in validazione d'ordine.
  • Invece, non si filtra la visualizzazione di un ordine sugli articoli (se sono stati passati degli ordini fornitori su articoli normalmente filtrati per l'utente, si potranno selezionare, ma alla fine la loro modifica verrà rifiutata).

L’implementazione tecnica si fa in modo automatico con l'aggiunta di filtri sulla tabella gestita nella gestione d'oggetto. Questi filtri sono attivi sia nella selezione standard che nella lista di selezione. Si consideri un esempio più tecnico. Se si definiscono le seguenti associazioni per il ruolo cliente (definito per esempio con il codice BPC) ed il ruolo commerciale (definito per esempio con il codice REP) :

  • nell'oggetto SIH (fattura cliente), il ruolo BPC causa un filtro sul campo BPR (codice terzo fatturato).
  • sull'oggetto SOH (ordine cliente), il ruolo BPC provoca un filtro sul campo BPCORD (cliente ordinante).
  • sull'oggetto BPC (cliente), il ruolo BPC provoca un filtro sul campo BPCNUM (codice cliente).
  • sull'oggetto SOH (ordine cliente), il ruolo REP, provoca un filtro sul campo REP (rappresentante).

Se un utente ha nella sua scheda il ruolo BPC associato al codice BIANCHI, si avrà automaticamente un filtro sull'oggetto SIH : (BPR="BIANCHI"), sull'oggetto SOH (BPCORD="BIANCHI"), e sull'oggetto BPC (BPCNUM="BIANCHI").

Ovviamente, vengono attivati solo i filtri corrispondenti ad un ruolo associato all'utente. Così, se l'utente non ha un ruolo BPC nella sua scheda, i filtri definiti qui sopra non verranno fatti : l'utente vedrà quindi tutti gli ordini, tutte le fatture e tutti i clienti (a patto che non siano stati definiti altri filtri - per gruppo di siti, per esempio per altri ruoli - per l'utente).

La spiegazione dell'esempio della composizione di più filtri è la seguente :

  • se l'utente ha tre volte il ruolo BPC con i clienti BIANCHI, VERDI, e RUSSO, il filtro sulla scheda cliente sarà :
    (BPCNUM="BIANCHI" or BPCNUM="VERDI" or BPCNUM="RUSSO")
  • se l'utente ha contemporaneamente il ruolo BPC associato al codice BIANCHI, ed il ruolo REP associato al codice RUSSO, il filtro realizzato sulla gestione degli ordini sarà :
    (BPCORD="BIANCHI") and (REP="RUSSO")

Prerequisiti

SEEREFERTTO Riferirsi alla documentazione di Implementazione

Gestione videata

Videata di inserimento

Presentazione

La definizione dei ruoli si fa in un inserimento globale nel riquadro, nel quale si definisce, per ciascun codice ruolo e per oggetto interessato, su quale campo agisce il filtro.

Chiudi

 

Campi

I seguenti campi sono presenti in questo folder :

Riquadro

Il ruolo permette di controllare l'accesso a più funzioni (Oggetti).

E' possibile collegare ad uno stesso ruolo più oggetti. Per esempio, è possibile definire il ruolo modifica di un movimento cliente e considerare che l'oggetto BIC inserimento di una fattura e l'oggetto SOH inserimento di un ordine cliente siano accessibili solo per alcuni clienti.

Per ogni oggetto, occorre definire un campo sul quale si effettuerà il controllo. Nell'esempio qui sopra, si potranno definire i campi BPR Terzo e BPCORD Cliente ordine.

Le autorizzazioni di accesso sono definite nella gestione degli utenti.

I ruoli sono registrati nella tabella diversa 60.

 

  • Campo (campo FLD)

 

Chiudi

 

Bottoni specifici

Questo bottone permette di copiare un ruolo su un altro dossier accessibile dal server dove si trova il dossier corrente.

Messaggi di errore

Non esistono messaggi di errore ad eccezione di quelli generici.

Tabelle utilizzate

SEEREFERTTO Riferirsi alla documentazione di Implementazione