Get_data_rights

Internφ programovacφ jazykC/C++Pascal

function Get_data_rights(table : ttablenum; var username : string; var rights : short; var rd_ri : short; var wr_ri : short) : Boolean;
BOOL Get_data_rights(ttablenum table, const char * username, tright * rights, tdright * rd_ri, tdright * wr_ri);
function Get_data_rights(table : ttablenum; username : PChar; var rights : tright; var rd_ri : tdright; var wr_ri : tdright) : Boolean;

Parametry

table tabulka deklarovanß v programu - viz podrobnosti
username jmΘno u₧ivatele;
rights v²stupnφ parametr: zßkladnφ prßva u₧ivatele k dat∙m;
rd_ri v²stupnφ parametr: rozÜi°ujφcφ prßva ke Φtenφ sloupc∙;
wr_ri v²stupnφ parametr: rozÜi°ujφcφ prßva k p°episovßnφ dat.

Popis

Od verze 5.0 se jednß o funkci zastaralou, pln∞ nahrazenou obecn∞jÜφ funkcφ GetSet_privils, nicmΘn∞ mnohem jednoduÜÜφ a v jednoduch²m p°φpadech pou₧itelnou.

Funkce p°eΦte p°φstupovß prßva u₧ivatele k dat∙m obsa₧en²m v tabulce. Je-li parametr username prßzdn² °et∞zec, funkce pracuje s prßvy p°ihlßÜenΘho u₧ivatele.

Parametr rights nabude hodnotu rovnou souΦtu t∞chto prßv: RIGHT_READ (1), RIGHT_WRITE (2), RIGHT_INSERT (4), RIGHT_DEL (8), RIGHT_GRANT (128).

RozÜi°ujφcφ prßva nemajφ od verze 5.0 v²znam.

Hodnota funkce

Funkce vracφ p°i ·sp∞chu FALSE, p°i ne·sp∞chu TRUE.

P°φklad 1

var
   a,b,c, pozice : short;
begin
   Find_object("tab1",categ_table,pozice);   
{ do prom. pozice se zapsalo Φφslo tabulky TAB1 }
   Get_data_rights(pozice,"honza",a,b,c);
{ do prom. a,b,c se zapsala prßva skupiny EVERYBODY k TAB1 }
   Info_box("prßva k obsahu",int2str(a));
end.

Nech¥ mß HONZA k tabulce TAB1 prßvo Φφst vÜechny sloupce a vklßdat zßznamy;

V prom∞nnΘ a bude hodnota 5 (RIGHT_READ + RIGHT_INSERT),

P°φklad 2

function TestPrav : Boolean;
{**************************************}
{ov∞°enφ, mß-li p°ihlßÜen² u₧ivatel dostatek prßv k tabulce Tab1
var
 a,b,c : short;
 jmeno : string[31];
begin
  TestPrav := true;
  jmeno := Who_am_I;
  Get_data_rights(Tab1,jmeno,a,b,c); 
  if (a and Right_read = 0) or (a and Right_write = 0) or 
     (a and Right_insert = 0) or (a and Right_del = 0) 
  then if not YesNo_box("Upozorn∞nφ",
       "Nemßte vÜechna pot°ebnß prßva,"#10"program nebude sprßvn∞ fungovat."#10#10"PokraΦovat?")
       then TestPrav := False;
end;

Viz