[Solved]: Anzeige Fehler bei Album mit Passwort [Solved]: Anzeige Fehler bei Album mit Passwort
 

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

[Solved]: Anzeige Fehler bei Album mit Passwort

Started by Visnah, April 25, 2008, 12:06:47 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Visnah

Hallo,
ich hab mir die Coppermine als privates Album im Intern für ein paar Freunde aufgesetzt. Ich will die Albums nur mit einem Passwort schützen das die Freunde schon kennen.
Funktioniert auch an sich recht gut. Leider kommt nach der Eingabe des Passworts erstmal ein Fehler "Keine Datei zum Anzeigen vorhanden (oder Du hast keine Berechtigung, das Album zu sehen".
Wenn ich danach nochmal auf die Albumliste klicke ist alles da. Da das ganze ja als Cookie abgelegt wird funktionierts solange der Cookie gültig ist.

Ich habe über das Original-Coppermine nur 2 Sachen drüber installiert einmal     
LightBox JS for Fullsize Popup Slideshow  http://forum.coppermine-gallery.net/index.php/topic,49596.0.html
danach trat der Fehler noch nicht auf.
Erst als ich cpg1.4 modpack by Stram installiert trat der Fehler auf.
Kann mir jemand helfen ?
Hier der Link zur Seite http://www.softmail.de/coppermine/index.php Das Passwort ist test.

Viele Grüße
Visnah

Αndré

hm.. ist ja seltsam.. ich kann dir zwar nicht bei deinem problem helfen, aber wenn die gesamte galerie privat sein soll und du immer dasselbe passwort benutzt, koenntest du auch gleich den ganzen cpg-ordner per htaccess-datei schuetzen..


-
muu

Visnah

Danke für den Tipp, aber ich kann dann keinen Hint eingeben damit mich nicht jeder Anrufen muss für das Passwort.
Es soll nicht 100% sicher sein nur nicht "ganz" öffentlich :)

Αndré

wenn du wie bei deiner galerie den text "wer kennt das Passwort ?" meinst, koenntest du den hinweis in dem Parameter 'AuthName' reinmachen :)

aber vielleicht kennt ja jemand den grund fuer dein phaenomen und kann dir die loesung dafuer sagen


-
muu


Joachim Müller

Keine Ahnung, was bei Dir schief läuft. Bei uns (Demo) läuft's wie erwartet (gehe mal zu http://coppermine-gallery.net/demo/cpg14x/thumbnails.php?album=13, Passwort "pass"). Hast Du etwas am "core-code" geändert.

Visnah

Nein, wie schon geschrieben ich hab Coppermine installiert und dann das Plugin für dir Lightbox. Solange funktioniert auch alles. Danach das Stamm Plugin weil ich gerne Wasserzeichen hätte.
Solange ich Stamm nicht installiert habe geht alles. Erst nach Stamm tritt der Fehler auf und zwar nachvollziehbar. Ich hab das gleiche auch auf einer 2ten Domäne genaus nochmal nachvollzogen.

Joachim Müller

Du meinst vermutlich Stramms Modpack - das ist kein Plugin. Da kann ich dann wenig dazu sagen; vielleicht schaut Stramm ja mal zufällig hier in diesen Thread rein.

Stramm

Ist ein bekanntes Problem. Hatte noch keine Zeit dem nachzugehen. Wenn Du aber das Buddy Feature nicht benutzt, dann kann es recht einfach korrigiert werden.

In include/functions.inc.php die function get_private_album_set() mit der von einem unmodifzierten Coppermine überschreiben.

Stramm

hab mal nachgesehen... müßte damit korrigiert sein
function get_private_album_set($aid_str="")
{
        if (GALLERY_ADMIN_MODE) return;

        global $CONFIG, $ALBUM_SET, $USER_DATA, $FORBIDDEN_SET, $FORBIDDEN_SET_DATA;

        $FORBIDDEN_SET_DATA = array();

        if ($USER_DATA['can_see_all_albums']) return;

                //Stuff for Album level passwords
        if (isset($_COOKIE[$CONFIG['cookie_name']."_albpw"]) && empty($aid_str)) {
          $alb_pw = unserialize($_COOKIE[$CONFIG['cookie_name']."_albpw"]);

          foreach($alb_pw as $aid => $value) {
            $aid_str .= (int)$aid . ",";
          }

          $aid_str = substr($aid_str, 0, -1);

          $sql = "SELECT aid, MD5(alb_password) as md5_password FROM ".$CONFIG['TABLE_ALBUMS']." WHERE aid IN ($aid_str)";

          $result = cpg_db_query($sql);
          $albpw_db = array();
          if (mysql_num_rows($result)) {
            while ($data = mysql_fetch_array($result)) {
              $albpw_db[$data['aid']] = $data['md5_password'];
            }
          }
          $valid = array_intersect($albpw_db, $alb_pw);
          if (is_array($valid)) {
            $aid_str = implode(",",array_keys($valid));
          } else {
            $aid_str = "";
          }
        }

        $sql = "SELECT aid, category FROM {$CONFIG['TABLE_ALBUMS']} WHERE visibility != '0' AND visibility !='".(FIRST_USER_CAT + USER_ID)."' AND visibility NOT IN ".USER_GROUP_SET;
        if (!empty($aid_str)) {
          $sql .= " AND aid NOT IN ($aid_str)";
                }

                $result = cpg_db_query($sql);
        if ((mysql_num_rows($result))) {
                $set ='';

if ($CONFIG['enable_buddy_private_view'] && USER_ID) {
$buddies = cpg_db_query("SELECT a.aid FROM {$CONFIG['TABLE_ALBUMS']} as a INNER JOIN {$CONFIG['TABLE_BUDDY']} AS b on a.category=b.buddy_id + ". FIRST_USER_CAT ." WHERE b.user_id = ".USER_ID." AND a.visibility = '-1' AND buddy_ok = 'YES' OR category = ".(USER_ID + FIRST_USER_CAT));
while(list($allowed_list[]) = mysql_fetch_row($buddies));

while($album=mysql_fetch_array($result)){
if (!in_array ($album['aid'], $allowed_list) && (USER_ID != $album['category']-FIRST_USER_CAT)) {
                    $set .= $album['aid'].',';
$FORBIDDEN_SET_DATA[] = $album['aid'];
}
            }
if ($set){
                $FORBIDDEN_SET = "p.aid NOT IN (".substr($set, 0, -1).') ';
                $ALBUM_SET .= 'AND aid NOT IN ('.substr($set, 0, -1).') ';
} else {
                  $FORBIDDEN_SET_DATA = array();
                  $FORBIDDEN_SET = "";
                  $ALBUM_SET = "";
}
} //end if buddy and USER_ID
else { // if not buddy list enabled or guest
        while($album=mysql_fetch_array($result)){
                    $set .= $album['aid'].',';
                    $FORBIDDEN_SET_DATA[] = $album['aid'];
            } // while
                $FORBIDDEN_SET = "p.aid NOT IN (".substr($set, 0, -1).') ';
                $ALBUM_SET = 'AND aid NOT IN ('.substr($set, 0, -1).') ';
}//end else
        } // end if ((mysql_num_rows($result)))
else
{
                  $FORBIDDEN_SET_DATA = array();
                  $FORBIDDEN_SET = "";
                  $ALBUM_SET = "";
        }

        mysql_free_result($result);

Visnah

Super.
Vielen Dank. Funktioniert einwandfrei.

Gruß
Visnah :)