home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 April
/
Chip_1997-04_cd.bin
/
tema
/
602propc
/
disk5
/
data.5
/
WINTIME
/
APPS
/
I_PRAVA.PGM
< prev
next >
Wrap
Text File
|
1996-12-03
|
3KB
|
69 lines
INCLUDE
procedure PravaAplikace;
{**************************************}
type
object = record
name : string[10];
categ : short;
end;
var
spom : string[100];
cpom : cursor object;
i,pocetpom : integer;
objnum,tabnum : short;
skupuziv : string[10];
a : boolean;
strpom : string[100];
aplname : string[10];
begin
if myName <> 'DB_ADMIN' then Info_box('Nelze',' Nastavenφ prßv m∙₧e provΘst pouze sprßvce databßze!')
else begin
a := Input_box('jmΘno u₧ivatele nebo skupiny',skupuziv,10);
if a then begin
Set_cursor(1);
if Find_object('I_prava', CATEG_PGMSRC, objnum) then Signalize
else aplname := Objtab[objnum].apl_name; // zjiÜt∞nφ jmΘna aktußlnφ aplikace
if Find_object(skupuziv,CATEG_USER,objnum) then begin // skupina se nenaÜla
strpom := 'U₧ivatel nebo skupina > '+skupuziv+' < nenφ dosud zalo₧en(a).'#10'Chcete ho (ji) zalo₧it prßv∞ te∩ a pokraΦovat?';
if not YesNo_box('Varovßnφ',strpom) then halt // zastavφ se vno°en² b∞h, tj. prßv∞ tato propcedura
else if Create_group(skupuziv) then Signalize;
end;
strpom := 'Nastavuji prßva skupiny '+skupuziv+' k objekt∙m aplikace '+aplname+'...';
Set_status_text(strpom);
spom := "SELECT obj_name, Ord(category) FROM Objtab WHERE Apl_name="""+aplname+"""";
if Open_sql_cursor(cpom, spom) then Signalize
else begin
Rec_cnt(cpom, pocetpom);
if pocetpom <> -1 then
for i := 0 to pocetpom-1 do begin
Set_status_nums(i,pocetpom-1);
if Set_object_rights(cpom[i].name,cpom[i].categ,skupuziv, RIGHT_READ) then Signalize;
end;
Close_cursor(cpom);
end;
strpom := 'Nastavuji prßva skupiny '+skupuziv+' k tabulkßm aplikace '+aplname+'...';
Set_status_text(strpom);
spom := "SELECT tab_name, Ord(category) FROM Tabtab WHERE Apl_name="""+aplname+"""";
if Open_sql_cursor(cpom, spom) then Signalize
else begin
Rec_cnt(cpom, pocetpom);
if pocetpom <> -1 then
for i := 0 to pocetpom-1 do begin
Set_status_nums(i,pocetpom-1);
if Set_object_rights(cpom[i].name,CATEG_TABLE,skupuziv, RIGHT_READ) then Signalize;
if not Find_object(cpom[i].name, CATEG_TABLE, tabnum) then
if Set_data_rights(tabnum,skupuziv,RIGHT_READ+RIGHT_WRITE+RIGHT_INSERT+RIGHT_DEL,0,0) then Signalize;
end;
Close_cursor(cpom);
end;
Info_box('Provedeno','OK');
end;
end;
end;