Linuchs: Tester gesucht

Beitrag lesen

problematische Seite

... aber wenn wir schon einmal dabei sind, erzähl mal bitte wie Du das machst.

User mit Kennwort A loggt sich ein. Programm liest den User-Stammsatz, prüft, ob das Passwort stimmt und weiss, dass User A die Daten des Mandanten 1 mit der Berechtigungsstufe 9 (1..9) sehen darf. Stammsatz bekommt einen Timestamp, der nun von Programm zu Programm mit dem Kennwort weitergereicht wird.

Es gibt nur ein (Haupt)Programm: index.php - dem muss mitgeteilt werden, welches (Ziel)Programm zp aufzurufen ist (per include). Ebenso wird das Kennwort kw und das Timestamp ll (last-login) mitgegeben. Dann werden noch Parameter für das Zielprogramm angehängt:

http://example.com/?kw=A&ll=1493860611&zp=p101&adr_kz=1

index.php liest bei jedem einzelnen Aufruf den User-Stammsatz und prüft das last-login. Wenn es nicht (mehr) gültig ist, wird das Login-Programm included, ansonsten das gewünschte Zielprogramm.

Jeder Datenzugriff bezieht sich auf den für User A festgelegten Mandanten, in der DB owner_id genannt:

SELECT
...
FROM  artikel
WHERE owner_id = $row_user['owner_id']
...

So hat also User A total andere Daten als User B, der Mandant 2 bearbeitet.

Das Zielprogramm kann nun noch Felder anzeigen, abhängig von der Berechtigung 9 (hoch) des Users A. User C möge auch Mandant 1 bearbeiten, aber nur die Berechtigung 4 (niedrig) haben.

Rest ist doch einfach, sinngemäß so:

echo $row_artikel['lagermenge'];
if ( $row_user['berechtigung'] > 5 ) echo $row_artikel['ek_preis'];

Das Konzept mit dem zentralen Programm index.php kann genutzt werden, um die URL extrem klein zu halten: http://remso.eu/?ORT=6817

Eine Dateiangabe fehlt, also wird Programm index.php genommen. Das checkt die mitgegebenen Parameter und weiss, dass für einen ORT das Zielprogramm p591b aufzurufen ist. Dieses wiederum wertet die ort_id 6817 aus und zeigt die Termine an.

Wenn ich nicht die Termine anzeigen, sondern den Orts-Stammsatz bearbeiten möchte, muss ich das Zielprogramm nennen: http://remso.eu/?zp=p152&kw=A&ll=1485935384&ORT=6817

Das Ganze ist ein Baukasten-System für Software-Kunden, an dem ich seit 1985 arbeite, damals noch mit Turbo-Pascal, in 2001 überarbeitet und übertragen nach PHP.

Linuchs