Hi,
es hat etwas gedauert, da ich erst den ganzen Kram umsetzten und austesten mußte. Dabei hat ein fast vollständig neu gestalltetes Template die meiste Zeit gekostet. Inzwischen ist das Board aber seit einer Woche online und es scheint ohne Probleme zu funktionieren.
Also, der ursprüngliche Link für den Mod ist von
phpbb.com
Das erste Posting enthält den eigendlichen Hack, auf der 2.Seite des Threads findet sich eine zip-Datei mit eines ausführlich ausgearbeiteten MOD.
Die Idee ist folgende:
Es wird lediglich ein Stück Code in die index.php eingefügt, welches prüft ob bereits eine SessionID vergeben wurde und wenn nicht, ob ein 'REMOTE_USER' vom Webserver übergeben wurde. Dann wird für diesen REMOTE_USER eine SessionID erzeugt, falls dieser in der Datenbank angelegt ist.
Dieser Code ist vollkommen OK und für meine Zwecke ausreichend gewesen. Dennoch will ich kurz auf die Hints eingehen:
a) Als einzige Veränderung habe ich in dem MOD die Variable $autologin = TRUE; gesetzt.
b) Eine Authorisierung findet nur in der index.php statt. Und nicht wenn jemand direkt in viewtopic.php oder viewforum.php springt ohne vorher jemals auf der index.php gewesen zu sein.
c) Eine Nacharbeit im Template ist nötig, damit die login/logout/register-Buttons verschwinden. (i.d.R. lediglich in 'overall_header.tpl')
d) Sicherheitshalber kann man noch ein 'exit;' in die login.php setzten. Und wer ganz sicher gehen will, kann in profile.php eine Abfrage auf $mode == 'register' einsetzten um dort ebenfalls ein exit zu setzen. Alternativ kann man statt exit auch ein 'message_die(CRITICAL_ERROR, "blabla");' oder gar ein 'redirect('index'.$phpEx);' nehmen.
e) Man muß die User irgendwie in die Datenbank bringen. Entweder manuell (dazu gibt es entsprechende Admin-Mods) oder (wie ich) per eigenen Script, welches regelmässig die Personal-DB auf die user-DB schreibt. Dabei verwende ich als user_id unsere Personal-Nummern. Folgende Felder setze ich auf sinnvolle Werte wärend der der Rest auf std. Einstellung bleibt:
user_id, username, user_style=1, user_email, user_from, user_lang='german', user_allowhtml=0, user_notify_pm=1, user_popup_pm=1, user_viewemail=1, user_regdate, user_timezone=4, user_dateformat='d.m.Y, H:i', user_attachsig=1
Da bei uns starke Restrinktionen bei den einzelnen geschlossenen Foren herrschen, müssen auch die Gruppen und die Zugehörigkeiten gesetzt werden. Aber das führt hier jetzt zu weit...
huschi.