Newsgroup: it.comp.appl.access
Titolo: Come realizzare gestione utenti dell'applicazione?

Per le applicazioni gestionali multiutente e' spesso utile inserire una 
qualche sorta di gestione utenti nel senso di poter limitare le 
funzionalita' disponibili per alcuni utenti
A parte la creazione archivio utenti, oggetti, e diritti disponibili, 
poi a livello di codice nelle varie form utilizzabili, come eseguireste 
la limitazione delle funzionalita' ?
Ho gia' scritto delle procedure che ottengono risultati simili ma basate 
semplicemente sulla possibilita' di avviare oppure no alcune form
Vorrei ora realizzare un sistema piu' completo che consenta di definire 
per qualsiasi 'oggetto' contenuto nella procedura i diritti di quell'utente
Personalmente pensavo ai classici read/write/execute da definire su ogni 
oggetto dell'applicazione, quindi per ogni form/report/modulo, per ogni 
utente, definirei dei record che consentono di limitare l'operativita' 
di quell'utente
Solo che quando si tratta di inserire nelle form/report la possibilita' 
di limitare l'operativita' per un certo utente diventa una cosa 
mega-elaborata che va a sconvolgere il codice attuale
Pensando anche al fatto che alcune form dispongono di sub-form (tipo la 
schermata Fatture dispone delle righe-fatture in una sotto-maschera) non 
e' cosi' semplice ottenere una procedura applicabile ad un programma 
gia' esistente e funzionante
Voi come fareste?
Ciao e grazie
RobertoA

Una cosa abbastanza rudimentale ma espandibile a piacere può essere questa:
 
http://forum.masterdrive.it/access-79/login-sicurezza-form-44771/
 
 
Un demo un po datato ... a titolo di esempio.
La logica è sempre quella di avere un MANAGER di gestione.
 
@ALEX


Si, grazie
Avevo gia' visto il tuo esempio
Molto interessante la  FormPermissionRicorsiva, non ci avevo pensato
Molto istruttivo ma troppo semplice per quello che vorrei realizzare
Nel senso che nel demo il nucleo del tutto si attua nella procedura 
SetPermissionProperties che setta/resetta le property 
AllowEdit/Addition/Deletions della form passata come parametro
Ma non e' detto che un'aggiunta venga eseguita da un Addnew nella form
Potrebbe essere un'istruzione diretta sql "update Clienti set Ditta='...' "
Quello che vorrei realizzare e' un metodo generale per modificare 
vecchie procedure aggiungendo loro la gestione permessi utente, magari 
aggiungendo quella manciata di form e tabelle per identificare 
utente/oggetti/permessi ma lasciando il piu' invariato possibile il resto
Non ho ancora ben chiaro i permessi da applicare penso un 
Add/Update/Delete sui record ed un Load su form/report, per impedire 
l'utilizzo di alcune form ad alcuni utenti o meglio gli utenti 
appartenenti ad un certo gruppo, quindi spostare sui gruppi i permessi 
applicabili agli oggetti del db
 
 
 

Non vorrei deluderti... ma se tu sviluppi male... non è colpa di nessuno...!
Che sia LIMITATA e MIGLIORABILE l'ho premesso... infatti era uno spunto di riflessione... sul "SEMPLICE", sorrido, dal momento che 9 su 10 non lo capiscono... ;-)
 
In sostanza, battute a parte, è evidente che in base a come uno sviluppa debba trovare un METODO, di solito tuttavia se si imposta una GESTIONE utenti... questa deve avere EFFETTO PRIMA di consentire un'azione e non durante.
Sicchè se esegui Update/Addnew da procedure remote, ci sarebbe da capire perchè uno USER che non ne ha i permessi ha potuto lanciare la procedura...!
 
L'abitudine di generare codice DISPERSIVO è tipica di approcci non completamente strutturati..., e le MODIFICHE si gestiscono dalle MASCHERE proprio perchè sono gestibili anche per questi aspetti.
 
In ogni caso la risposta alla tua DOMANDA non troverà MAI un esempio fatto, un po per come ognuno di NOI realizza il proprio metodo di lavoro, un po perchè è evidente che ti si da uno spunto ma poi ci devi lavorare tu per adattere il sistema... o farlo custom.
 
Buon lavoro
 
@Alex

 
"@Alex"

Era da tempo che non ti si vedeva così incazzato    ;-)
 
Saluti!
 
 

 
"RobertoA" <>

La cosa piů semplice per ottenere ciň č stata implementata lustri fa:
 
http://mirror.masterdrive.it/alessandrobaraldi/DettaglioFaq.asp%3FIdFAQ=198.html
 
 
Saluti.
 
 
 
 

 Saluti!
 
Nooooo assolutamente sono calmissimo... ognuno limitatamente alla larghezza di vedute che riesce ad avere giustamente pone in essere quanto riesce.
 
Ciao Simone.
 
Il Demo che linki sotto è un gioiello... anche se datato...
 
@Alex