Advanced search  

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]

Pages: [1]   Go Down

Author Topic: bestimmte Bilder nur für eingeloggte User sichtbar  (Read 4135 times)

0 Members and 1 Guest are viewing this topic.

Cookiie

  • Coppermine regular visitor
  • **
  • Country: 00
  • Offline Offline
  • Posts: 50
    • Heuwusler
bestimmte Bilder nur für eingeloggte User sichtbar
« on: May 21, 2013, 01:27:04 pm »

Hi,

gibt es eine Möglichkeit einzelne Bilder oder Dateien zb. pdf's innerhalb eines Albums so handeln, dass diese nur für eingeloggte User sichtbar sind?
Die Lösung kann ruhig per Code sein, den Filter kann ich mir dann ggf. selber zusammen basteln, bräuchte nur Hilfe bei der Rechteeinschränkung.

Gruß Cookiie
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #1 on: May 21, 2013, 02:26:21 pm »

Ich würde die zugriffsbeschränkten Dateien per "Album Keyword" in das Album einbinden. D.h. du lädst die öffentlich sichtbaren Dateien ganz normal in das Album (1) hoch. Dann erstellst du ein zweites Album (2), welches nur von einer bestimmten Benutzergruppe einsehbar ist. Nun vergibst du für Album (1) ein Keyword. Dasselbe Keyword gibst du den Dateien in Album (2), welche in Album (1) angezeigt werden sollen.
Logged

Cookiie

  • Coppermine regular visitor
  • **
  • Country: 00
  • Offline Offline
  • Posts: 50
    • Heuwusler
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #2 on: May 21, 2013, 03:44:42 pm »

Hm,

klingt leider für mich nicht wirklich praktikabel. Das kapieren 1. meine Mädels nicht die das dann bedienen müssen und 2tes mehr Aufwand als Nutzen am Ende.
Außerdem nutze ich die Keywords im Moment als Datumsfeld für die Alben, um die Alben danach zu sortieren. Das Datum muss einstellbar sein und soll sich nicht ändern wenn sich was am Album ändert.
Wir wollten die Galerie zusätzlich als Verwaltungstool nutzen und Informationen zu jedem Album einzeln hinterlegen, die nicht für jederman sichtbar sein sollen.

Falls noch jemand eine alternative Idee hat, immer her damit.

@André: Danke

Gruß Cookiie

Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #3 on: May 21, 2013, 04:15:36 pm »

Außerdem nutze ich die Keywords im Moment als Datumsfeld für die Alben, um die Alben danach zu sortieren.
Ich weiß nicht wie deine Galerie strukturiert ist. Aber falls das Datum eindeutig ist (es also für jedes Datum maximal 1 Album gibt), kannst du meinen Vorschlag trotzdem nutzen. Du musst "deinen Mädels" (;)) dann nur erklären, was sie zu tun haben bzw. selbst im Nachgang die betroffenen Dateien in das geschützte Album verschieben. Du benötigst ja nicht für jedes öffentliche Album ein extra geschütztes Album. Ein geschütztes Album, in dem alle Dateien abgelegt werden reicht ja aus.

Zugriffsrechte können auf Dateiebene nicht vergeben werden. Ein Mod oder Plugin, der die Variable $RESTRICTEDWHERE entsprechend erweitert dürfte das aber ändern. Ein Beispiel wie das standardmäßig mit den Alben geschieht, findest du in include/functions.inc.php:
Code: [Select]
    if ($FORBIDDEN_SET_DATA) {
        $RESTRICTEDWHERE .= " AND r.aid NOT IN (" . implode(', ', $FORBIDDEN_SET_DATA) . ")";
    }

Darunter könntest du jetzt etwas in der Art
Code: [Select]
    if (!USER_ID) {
        $RESTRICTEDWHERE .= " AND p.pid NOT IN (8, 15, 47, 11)";
    }
einfügen. Sollte funktionieren, hab ich aber nicht getestet. Sehr komfortabel ist das bisher natürlich auch nicht. Eine entsprechende Schnittstelle wäre günstig und die zugriffsbeschränkten PIDs solltest du dann am besten in der Datenbank abspeichern.
Logged

Cookiie

  • Coppermine regular visitor
  • **
  • Country: 00
  • Offline Offline
  • Posts: 50
    • Heuwusler
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #4 on: May 22, 2013, 09:17:52 am »

Hi,

unsere Galerie wird vom Grundansatz anders verwendet als die meisten anderen. Geschlossene Nutzergruppe, die die Alben erstellen und Bilder hochladen kann.
Wir haben eine Meerschweinvermittlungsseite. Jedes Album ist ein Tier. Sortiert wird nach dem Einstelldatum bzw. wenn vermittelt, nach dem Datum der Vermittlung. Da ich dieses Datum nirgends anders eintragen konnte und meine PHP-Kenntnisse noch nicht ausreichen, um die Albeneigenschaften entsprechend zu erweitern, habe ich die php-Seite für die Albenübersicht so modifiziert, das ich ein Datum, welches im Feld Keywords steht für die Sortierung verwendet wird.

Dein Code-Ansatz klingt vielversprechend. Da ich nur die Bilder sichtbar halten will für die Gäste und den Rest verstecke, kann ich hier über den Dateinamen filtern zb *.pdf. Wäre zumindest nen Versuch wert.
Plugin trau ich mich nicht ran, aber ein Mod wäre sicher machbar.

Danke und wenn ich Hilfe brauche meld ich mich.
Cookiie
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #5 on: May 22, 2013, 09:26:28 am »

Wenn du für Gäste ausschließlich Bilddateien anzeigen möchtest, sollte folgender Ansatz ausreichend sein:
Code: [Select]
    if (!USER_ID) {
        $RESTRICTEDWHERE .= " AND p.filename LIKE '%.jpg'";
    }
(vorausgesetzt alle Dateien haben die Dateiendung "jpg").
Logged

Cookiie

  • Coppermine regular visitor
  • **
  • Country: 00
  • Offline Offline
  • Posts: 50
    • Heuwusler
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #6 on: May 23, 2013, 12:19:10 am »

Hi,

bis eben noch getestet.
Funktion in der function.inc.php lokalisiert und entsprechend mit
Code: [Select]
   
    if (!USER_ID) {
        $RESTRICTEDWHERE .= " AND (p.filename LIKE '%.jpg' OR p.filename LIKE '%.JPG' OR p.filename LIKE '%.png')";
    }
erweitert. Leider ohne sichtbaren Erfolg. Wenn ich die Thumbnailübersicht aufrufe, wird mir hier das Test-pdf angezeigt, aslo auch als Gast.

Die function.inc.php ist doch schon der richtige Ansatz oder müssen hier andere Dateien modifiziert werden? Ich hatte das so verstanden, dass die Funktionen durch php-include global genutzt werden in den entsprechenden php-Dateien. Wie in diesem Fall thumbnail.php und auch die displayimage.php.

Bin für Vorschläge offen.

Gruß Cookiie
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #7 on: May 23, 2013, 10:37:05 am »

Der Ansatz mit $RESTRICTEDWHERE funktioniert offensichtlich nur mit Meta-Alben. Dort erhält man aber eine Fehlermeldung, da die Tabelle einen anderen Namen hat. Folgender Code funktioniert zumindest schonmal für die Meta-Alben:
Code: [Select]
    if (!USER_ID) {
        $RESTRICTEDWHERE .= " AND (filename LIKE '%\.jpg' OR filename LIKE '%\.png')";
    }
(nach ".JPG" brauchst du nicht zu suchen, MySQL unterscheidet das standardmäßig nicht).

Für "normale" Alben, suche nach
Code: [Select]
        if (array_key_exists('allowed_albums', $USER_DATA) && is_array($USER_DATA['allowed_albums'])
                && in_array($album, $USER_DATA['allowed_albums'])) {
            $approved = '';
        } else {
            $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\'';
        }

        $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\'';
und füge darunter folgendes ein:
Code: [Select]
        if (!USER_ID) {
            $approved .= " AND (filename LIKE '%\.jpg' OR filename LIKE '%\.png')";
        }
Logged

Cookiie

  • Coppermine regular visitor
  • **
  • Country: 00
  • Offline Offline
  • Posts: 50
    • Heuwusler
Re: bestimmte Bilder nur für eingeloggte User sichtbar
« Reply #8 on: May 23, 2013, 11:59:33 am »

Hi André,

jetzt klappts. Super ist ne enorme Erleichterung für uns.

Gruß Cookiie
Logged
Pages: [1]   Go Up
 

Page created in 0.023 seconds with 20 queries.