Ne pravis drugu tabelu vec u toj prvoj gde su polja naziv i sifra dodas polje Pravo koje ce da odredjuje sta taj korisnik moze da radi. Naravno prilikom logovanja nekog korisnika, ti u neku promenjljivu tipa integer izvadis i prava pristupa za tog korisnika koji se logovao.
Tabelu mozes da kreiras kako sam ti predlozio sa samo jednim poljem Pravo, a mogu da budu i vise polja. Tada bi svako polje odredjivalo nekakvo pravo (pisanje, citanje, brisanje....) i u zavisnosti da li je 1 ili 0, ti dopustas korisniku neku akciju.
Sada nesto malo o prvom nacinu (kada imas samo jedno polje za prava i tu smestas sve privilegije). Svaki bit je jedna privilegija. Npr. 1 bit - pisanje, 2 - citanje, 3-brisanje, 4-admin ....
napravis ovako:
Code:
const
CanRead=1;
CanWrite=2;
CanDelete=4;
Admin=8;
u programu ide varijabla:
var
privilegija: integer;
setovanje prava:
privilegija:=canRead+CanWrite+Admin;
...ovde ide zapis u bazu...
ispitivanje prava (pretpostavka je da su vec sva prava u varijabli privilegija koja je postavljena prilikom logina):
if (privilegija and Admin)<>0 then .... da li je admin
if (privilegija and CanDelete)<>0 then .... da li moze da brise