Trick 54: Von Rechts
wegen ...
Prüfen,
ob Schreibrecht besteht
Aufgabe: Beim Start automatisch
prüfen, ob die Rechte ausreichen.
Warum: Es kommt vor, daß z.B.
der Administrator einem Nutzer von a99
zu geringe Rechte zugeteilt hat. Der wundert sich dann, daß er
keine Daten korrigieren kann oder die TBL nicht freigeben etc,
Derlei Irritation sollte sich verhüten lassen.
Lösung: Dafür kann man
sich folgende Sequenz in den _start.flx
einbauen. An die ausgelieferte kann man dies einfach
unten anhängen.
------------------------------------------------------------
1./2.
Schreibrecht auf Temp- und Start-Verz. prüfen
var M
"testdatei"
open x
if no perform
nom
close x
var W
"\\testdatei"
open x
if no jump now
close x
3.
Prüfen, ob access-Zahl und tatsächliche Berechtigung gleich
sind
Tatsächl. Berechtigung:
var A
ins #uzB
Trick
17, um die INI-Einstellung access=... zu ermitteln:
var "F" V
var
var
(b"~access=" e"^M" e" " f" ")
Beides
vergleichen:
if not =#uzB
mes Berechtigung auf Datenverz. reicht nicht zum Schreiben!
end
:nom
var "Kein
Schreibrecht auf dem temp. Verzeichnis " M
mes
return
:now
var "Kein
Schreibrecht auf dem Arbeitsverzeichnis " W
mes
end
------------------------------------------------------------
Der Trick ist nur, daß die
tatsächliche Berechtigung A beim Start
automatisch auf 0 geht, wenn auf
dem Datenverzeichnis kein Schreibrecht
besteht. Die INI-Einstellung
"access=..." wird mit Trick 17 ermittelt.
Sie gilt dann aber womöglich
nicht, weil der Admin das Schreibrecht auf
dem DbDir nicht eingeräumt hat.