Login-Seite durch Übernahme von Session-Variablen erstzen Login-Seite durch Übernahme von Session-Variablen erstzen
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Login-Seite durch Übernahme von Session-Variablen erstzen

Started by Radioven, September 27, 2013, 04:01:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Radioven

Hallo Forum,

seit einiger Zeit lese ich hier bereits mit und habe nun selbst ein Problem. Ich nutze die CPG-Version 1.5.24 und habe ausschließlich Alben angelegt, die nur für bestimmte User-Gruppen nach entsprechender Anmeldung sichtbar sind. Das funktioniert alles einwandfrei.

Nun plane ich eine Internetseite, die mit .htaccess und .htpasswd geschützt ist und von der aus die berechtigten User direkt in die verlinkte Galerie springen können. Um die Sache zu vereinfachen, sind Nutzername bzw. Paßwort in der .htpasswd und in der Galerie identisch. Ich möchte so vermeiden, daß sich ein bereits angemeldeter Besucher vor Betreten der Galerie nochmals anmelden muß. Umgesetzt werden soll dieses durch Übergabe der User-ID mittels Session-Variable zur Coppermine-Galerie. Die entsprechende Datenbankabfrage klappt auch gut, so daß user_id, user_group, user_name und user_password zur Verfügung stehen.

Meine Frage lautet nun: Wie kann ich unter Anwendung dieser Daten die Login-Seite überspringen und die für den betreffenden User freigegebenen Alben sofort anzeigen? Bei direktem Zugriff auf die Galerie unter Umgehung der vorgeschalteten Seite muß der Anmeldezwang natürlich bestehen bleiben.

Vielen Dank
Radioven

Αndré

Das hier sollte könnte nützlich sein: http://forum.coppermine-gallery.net/index.php/topic,75543.0.html


Quote from: Radioven on September 27, 2013, 04:01:48 PM
Bei direktem Zugriff auf die Galerie unter Umgehung der vorgeschalteten Seite muß der Anmeldezwang natürlich bestehen bleiben.
Passwortgeschützte Bereiche im Apache gelten für alle Unterverzeichnisse, ich sehe daher kein Problem.

Radioven

Hallo Αndré,

zunächst vielen Dank für den Hinweis. Ich werde mir das in den nächsten Tagen genau ansehen und ausprobieren.
Allerdings hatte ich vergessen zu erwähnen, daß meine Galerie nicht im durch die .htaccess geschützten Verzeichnis liegen soll. Sonst hätten ja nur die Mitglieder dieser einen User-Gruppe Zugang.

Schönes Wochenende
Radioven

Αndré

Im Prinzip sollte das erstmal egal sein. Wenn deine Galerie nur für registrierte Benutzer zugänglich sein soll, dann ist sie das auch. Ich habe mir den Mod jetzt nicht nochmal genauer angesehen, aber ich glaube er schaut nur, ob bereits Zugangsdaten eingegeben wurden und übermittelt diese automatisch an Coppermines Login-Formular. Wenn nicht, bitte nochmal melden - wenn es funktioniert natürlich auch gerne :)

Radioven

Habe nun das Formular von WillyWonderDog nach meinen Vorstellungen modifiziert und getestet. Es funktioniert alles prima, aber mich störte noch die Tatsache, daß nach Erscheinen des Login-Formulars dieses zwar nicht ausgefüllt, aber der neu erstellte Bestätigungsknopf gedrückt werden muß. Für Besucher der Seite wäre es wahrscheinlich schwer zu verstehen, daß sie nichts ins Formular eintragen, sondern nur bestätigen müssen.
Aus diesem Grund habe ich eine Programmzeile eingefügt, durch die per Javascript die Funktion des nun nicht mehr sichtbaren Bestätigungsknopfes automatisiert wird. Auch das hat funktioniert - aber nur beim Anmelden. Beim Abmelden springt das Programm auf die Login-Seite und von dort sofort wieder zurück in die Galerie, weil ja das Javascript erneut ausgelöst wird. Mein Versuch, die Variablen für "username" und "password" vor dem Abmelden zu leeren hatte zur Folge, daß die Login-Seite korrekt erschien. Allerdings mit dem Hinweis, daß ich bzw. meine IP-Adresse aus der Galerie verbannt wurde.

Gibt es denn keine Möglichkeit, die bereits vorhandenen Daten für "username" und "password" mit reinem PHP in die entsprechenden Coppermine-Variablen zu übertragen und die Login-Seite beim Galerie-Start völlig zu überspringen, obwohl alle Alben nicht öffentlich sind?

Gruß
Radioven

Αndré

Ich verstehe gerade nicht, wieso du dich abmelden möchtest. Deine Benutzer authentifizieren gegenüber dem Verzeichnisschutz des Apache und werden dann (im Idealfall) automatisch in der Galerie angemeldet, ohne irgendwelche Formulare zu bestätigen. Das ist doch dein Ziel, oder? In dem Fall, würde ich den Anmelden/Abmelden-Button komplett ausblenden um Verwirrungen zu vermeiden.

Da das Loginformular derzeit POST-Daten erwartet, muss das Formular noch abgesendet werden. Wir können es aber natürlich auch GET-Daten verarbeiten lassen, dann ersparen wir uns die Frickelei mit dem JavaScript. Dann müsstest du login.php entsprechend mit den 2 Parametern für Benutzername und Password aufrufen.

Radioven

Es ist schon richtig, daß sich der Besucher nicht unbedingt in der Galerie abmelden müßte. Aber falls er dieses doch mal versucht, fände ich es nicht schön, wenn der Button an dieser Stelle seinen Dienst verweigert.
Völlig ausblenden kann ich Anmelden/Abmelden leider nicht, da sich in meiner Galerie noch andere geschützte Alben für verschiedene Besuchergruppen befinden werden. Diese Besucher bekommen direkten Zugriff auf das Anmeldeformular, da nicht überall, wie in o.g. Fall, Internetseiten vorgeschaltet sind.

Ich habe nun einen Kompromiß gefunden. In der Datei login.php wurden folgende Zeilen mit dem Attribut "value" ergänzt:

Zeile 143:
<td class="tableb" width="60%"><input type="text" class="textinput" name="username" style="width: 100%" tabindex="1" value="{$_SERVER['PHP_AUTH_USER']}" /></td>

Zeile 147:
<td class="tableb"><input type="password" class="textinput" name="password" style="width: 100%" tabindex="2" value="{$_SERVER['PHP_AUTH_PW']}" /></td>

Somit werden der Benutzername und das verdeckte Paßwort automatisch ins Formular übernommen und man braucht nur noch durch Druck auf den OK-Button zu bestätigen. Zusätzliche Buttons werden somit überflüssig. Ich gehe davon aus, daß alle Seitenbesucher damit leben können.

Viele Grüße
Radioven