Newsgroup: it.comp.lang.visual-basic
Titolo: sviluppo procedura controllo permessi

Salve,
stavo analizzando una soluzione per implementare una gestione utenti e  
permessi di inserimento, modifica e cancellazione. 
Volevo utilizzare una gestione del tipo:
Inserisci = 1
Modifica = 2
Cancellazione = 4
Poi mettere in xOr i campi e salvare il risultato nella tabella utente.
Al momento del controllo per vedere se posso fare una delle operazioni 
previste che tipo di controllo dovrei fare ?
Avete altre soluzione da consigliarmi.
Grz a tutti


Non è che ho capito benissimo cosa intendi fare ma credo che tu possa 
utilizzare una tabella di DB dove tra i vari campi metterai Inserimento, 
Modifica e Cancellazione di tipo Boolean.
Ciao, Vincenzo 

 
Ho cercato di essere il piů chiaro possibile, cmq l'idea non era di 
creare n campi per gestire i permessi anche perché se mi viene in mente 
un nuovo evento dovrei cambiare il db. L'idea era di mettere in XOr i 
valori in questo modo 1 XOr 2 XOr 4. A livello binario si ottiene un 
seguenta di questo tipo "00000111" dove gli 1 attivano la procedura.
Spero di essere stato un po + chiaro.
Grz

, x...@xxx.xx 
says...

Forse ho trovato la soluzione :-)
Esempio:
Dec	Binario	Operazione
1	00000001	Inserisci
2	00000010	Modifica
4	00000100	Cancella
Utente1 abilitato alla Modifica e alla Cancellazione
2 XOR 4 = 6
Nel programma per verificare se l'Utente1 puo' fare l'inserimento e' 
sufficente fare 1 AND 6 = 0 inserimento NON consentito, mentre se puo' 
fare la modifica sara' 2 AND 6 = 2 consentito.
Motivo:
Dec	binario
1	00000001
	   AND
6	00000110
----------------
0	00000000
Dec	Binario
2	00000010
	   AND
6	00000110
---------------
2	00000010
Puo' funzionare, ci sono degli errori nel ragionamento ?
Grz a tutti

 Puo' funzionare, ci sono degli errori nel ragionamento ?
Magari il ragionamento è giusto, non ho capito bene bene, ma ho il sospetto
che ci sia qualcosa che avanza :)
-- 
Greg


Attenzione! Essendo un Vero dilettante, cerca prima suggerimenti migliori
:-(
Sono sicuro che con una frazione del codice si può ottenere lo stesso
effetto.
se ho capito bene:
'per salvare il valore, crei delle costanti con le potenze di 2:
Const Inserisci = 1
Const Modifica = 2
Const Cancellazione = 4
Const Riserva = 8
'Quando devi scrivere il campo, sommi tra loro le costanti settate
Campo = Inserisci + Cancellazione + Modifica
'Dopo puoi estrarre i bit con delle sottrazioni:
If Campo >= 8 Then '(il flag Riserva è settato)
    '............
    Campo = Campo - 8
End If
If Campo >= 4 Then  '(il flag Cancellazione è settato)
    '............
    Campo = Campo - 4
End If
If Campo >= 2 Then  '(il flag Modifica è settato)
    '............
    Campo = Campo - 2
End If
If Campo = 1 Then  '(il flag Cacellazione è settato)
    '............
End If
Ciao
FM

 End If
E' errato perchè le condizioni che seguono la prima possono essere 
vere anche se il flag non è corretto:
quando controlli il 4, ad esempio, la condizione è vera anche se il 
byte vale 8, idem per le altre.
-- 
Debugger: A tool that substitutes afterthought for forethought.
News 2000 [v 2.06] - 
http://www.akapulce.net/socket2000

 
Al momento del confronto non sottraggo, ma utilizzo l'operatore logico 
AND, che mette a confronto i due valori.
Cosa ne pensi ?
Grz


hai ragione... devo sottrarre fuori dagli IF.
Come blanda scusa, non l'ho provato...
FM

 Grz
Bč, penso che tutte le strade portano a Roma (anche se in maniera piů o meno
veloce o confortevole).
Il mio esempio era comunque errato (quarda la risposta al post di Due Di
Picche).
FM


Però, a ripensarci, dovrebbe funzionare cos' com'è.
Non posso sottrarre fuori dagli IF e, sottraendo quando è maggiore, presento
all' IF successivo un numero già "ripulito" della potenza superiore.
Sbaglio? Se si, puoi spiegarmi dove? (cos'ì dormo tranquillo :-)  ).
Ciao
FM

 Però, a ripensarci, dovrebbe funzionare cos' com'è.
LOL, hai ragione, non avevo visto quel decremento...
-- 
For peace and quiet, get a phoneless cord. 
News 2002 [v 2.07] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net