1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
PACKET erfbenutzerberechtigungenDEFINES erfassungbenutzerberechtigungen:LET
maskenname="mu erf benutzerdaten",fnrschluessel=2,maxschluessellaenge=0,
fnrgeheimwort=3,fnrberechtigunganfang=4,fnrberechtigungende=43,
meldungkeineberechtigung=75,trenner=" = ";TEXT VAR felderinstring:="",bestand
:="s";INT VAR dateinummer:=0;#25.03.87#PROC erfassungbenutzerberechtigungen(
INT CONST proznr):systemdbon;SELECT proznrOF CASE 1:setzeerfassungsparameter
CASE 2:zeigeschluesselfuerbearbeitungCASE 3:pruefeplausibilitaetCASE 4:
setzewertefuerdbspeicherungCASE 5:setzeidentiobjektfuerobjektlisteCASE 6:
benutzerlesenCASE 7:benutzeraendernCASE 8:benutzereinfuegenCASE 9:
benutzerloeschenENDSELECT ;#systemdboff;##26.03.87#END PROC
erfassungbenutzerberechtigungen;PROC setzeerfassungsparameter:dateinummer:=
dnrbenutz;bestand:=benutzerbestandSUB 1;setzeerfassungsparameter(dateinummer,
maxschluessellaenge,maskenname,fnrberechtigungende)END PROC
setzeerfassungsparameter;PROC zeigeschluesselfuerbearbeitung:
setzeerfassungsfeld(wert(fnrbenutzgeheimwort),fnrgeheimwort);
berechtigungeninfeldersetzen(wert(fnrbenutzberecht),fnrberechtigunganfang)
END PROC zeigeschluesselfuerbearbeitung;PROC berechtigungeninfeldersetzen(
TEXT CONST berechtstring,INT CONST i):TEXT VAR t:=subtext(berechtstring,2);
INT VAR p:=pos(t,"/");INT VAR l:=length(t);INT VAR j;IF p>0THEN
setzeerfassungsfeld(subtext(t,1,p-1),i);berechtigungeninfeldersetzen(subtext(
t,p),i+1)ELSE setzeerfassungsfeld(subtext(t,1,l),i);FOR jFROM i+1UPTO
fnrberechtigungendeREP setzeerfassungsfeld("",j)PER FI END PROC
berechtigungeninfeldersetzen;PROC pruefeplausibilitaet:INT VAR fehlerstatus:=
0;concatenation(felderinstring);erstellebenutzungsberechtigung(anzahl,
fehlerstatus,felderinstring);IF fehlerstatus<>0THEN melde(erfassungsmaske,
meldungkeineberechtigung);setzefehlerstatus(fnrberechtigunganfang+
fehlerstatus-1);LEAVE pruefeplausibilitaetFI .anzahl:fnrberechtigungende-
fnrberechtigunganfang+1.END PROC pruefeplausibilitaet;PROC concatenation(
TEXT VAR t):INT VAR i;INT VAR l:=length(erfassungsmaske,fnrberechtigunganfang
);t:="";FOR iFROM fnrberechtigunganfangUPTO fnrberechtigungendeREP IF
erfassungswert(i)<>""THEN tCAT text(erfassungswert(i),l)FI PER END PROC
concatenation;PROC setzewertefuerdbspeicherung:putwert(fnrbenutzbestand,
bestand);putwert(fnrbenutzname,erfassungswert(fnrschluessel));putwert(
fnrbenutzgeheimwort,erfassungswert(fnrgeheimwort));putwert(fnrbenutzberecht,
felderinstring)END PROC setzewertefuerdbspeicherung;PROC
setzeidentiobjektfuerobjektliste:LET trennsymbolfuerobli="$";TEXT VAR
identizeile;identizeile:=wert(fnrbenutzname)+trenner+wert(fnrbenutzberecht);
identizeile:=subtext(identizeile,1,maxidentizeilenlaenge);setzeidentiwert(
identizeilemitschluesselanhang).identizeilemitschluesselanhang:identizeile+
trennsymbolfuerobli+wert(fnrbenutzname).END PROC
setzeidentiobjektfuerobjektliste;PROC benutzerlesen:inittupel(dnrbenutz);
putwert(fnrbenutzbestand,bestand);putwert(fnrbenutzname,erfassungswert(
fnrschluessel));search(dnrbenutz,TRUE );IF dbstatus=okTHEN saveupdateposition
(dnrbenutz)FI END PROC benutzerlesen;PROC benutzeraendern:
restoreupdateposition(dnrbenutz);update(dnrbenutz);logbucheintrag("Änderung")
END PROC benutzeraendern;PROC benutzereinfuegen:insert(dnrbenutz);
logbucheintrag("Neueinfügen")END PROC benutzereinfuegen;PROC benutzerloeschen
:delete(dnrbenutz);logbucheintrag("Entfernen")END PROC benutzerloeschen;PROC
logbucheintrag(TEXT CONST logergaenzung):TEXT VAR eintrag:="Anw. 10.5.1 ";
eintragCAT logergaenzung;eintragCAT " """;eintragCAT schluessel;eintragCAT
"""";logeintrag(eintrag)END PROC logbucheintrag;TEXT PROC schluessel:
erfassungswert(fnrschluessel)END PROC schluessel;END PACKET
erfbenutzerberechtigungen
|