Organic Groups und private Bilder/Dokumente
am 26.06.2015 - 21:36 Uhr in
Liebe Drupalexperten,
Ich habe die folgende Problematik schon mal mit Werner (wla) ausführlich am Telefon besprochen, aber vielleicht kann ja doch noch einer hier im Forum etwas Erhellendes dazu beitragen.
Es geht um Folgendes:
Ich habe einen Inhaltstyp, z.B. page und dieser hat eine Image-Field und ein File-Field.
Beide Felder könnten privat oder öffentlich sein, da bin ich flexibel, was auch immer zum Ziel führt.
Man kann aber ja für ein Dokument immer ein Verzeichnis angeben, je nachdem, ob der Gruppenbeitrag privat oder öffentlich ist (Stichwort: File Field Path Setting, Dateispfad: [node:group_content_access]).
page kann ein Gruppeninhalt sein (Organic Groups).
Nun möchte ich die Berechtigungen so einstellen, dass Gruppenmitglieder diese Dateien sehen und herunterladen dürfen, wenn der page-Beitrag als "privat" gekennzeichnet ist.
Nicht Mitglieder sollen die Dateien nicht herunterladen können.
Wenn der page-Beitrag hingegen öffentlich ist, sollen auch die Bilder/Dokumente öffentlich zugänglich sein.
Für den Beitrag selbst (also die angelegt Node) läßt sich das genau so einstellen, was die Sichtbarkeit angeht. Das macht ja gerade Organic Groups.
Ist die URL eines Bildes oder eines Dokumentes aber aus irgendwelchen Gründen bekannt, so kann jeder, der die kennt, das Dokument/Bild sehen, bzw. herunterladen.
Es wäre toll, wenn man den Verzeichniszugriff auch so steuern könnte, dass nur Gruppenmitglieder auf den Inhalt dieses Verzeichnisses zugreifen können.
Ob es dafür wohl eine Lösung gibt, ich bin gespannt, ob irgend jemand dazu eine Idee hat.
Das Modul og_file_access ist mir bekannt, funktioniert aber nicht mit OG 7.x.2.x.
Aber so etwas ähnliches wäre schon toll.
Gruß
Berthold Lausch
- Anmelden oder Registrieren um Kommentare zu schreiben
kannst du nicht das
am 27.06.2015 - 06:26 Uhr
kannst du nicht das dateisystem von drupal auf privat setzen? dann steuert drupal den zugriff
C.A.W. Webdesign
Hallo Christian, das
am 27.06.2015 - 13:09 Uhr
Hallo Christian,
das Dateisystem von Drupal auf privat setzen würde ja dazu führen, dass auch bei einem öffentlichen Gruppenbeitrag die Files/Bilder nicht für beliebige Personen sichtbar sind.
Das würde nicht den OG-Regeln entsprechen.
Auch führt es dazu, dass Gruppenmitglieder, die nicht Autoren des Beitrages sind, diese Files/Bilder auch nicht sehen können.
Es gibt eben bei den File-Fields nicht die Möglichkeit, die Sichtbarkeit nach Gruppenmitgliedschaft einstellen zu können, sondern nur nach Rollen.
Es gab schon mal eine Lösung für dieses Problem und die sah folgendermaßen auch:
man konnte für eine Gruppe den Zugriff auf ein "privates" Dateiverzeichnis erlauben (Stichwort: og_file_access).
Leider funktioniert das nicht mehr.
Aber vielleicht gibt es ja noch eine Alternative, die ich nicht kenne.
Gruß und schönes Wochenende
Berthold Lausch
Drupal Video-Tutorials
torfnase schrieb Hallo
am 27.06.2015 - 14:41 Uhr
Hallo Christian,
das Dateisystem von Drupal auf privat setzen würde ja dazu führen, dass auch bei einem öffentlichen Gruppenbeitrag die Files/Bilder nicht für beliebige Personen sichtbar sind.
Berthold Lausch
das stimmmt ja nicht. es werden eben nur die berechtigungen per drupal geprüft. öffentliche nodes mit dateien sind da genauso öffentlich wie normaler einstellung
C.A.W. Webdesign
Zitat: das Dateisystem von
am 27.06.2015 - 14:58 Uhr
das Dateisystem von Drupal auf privat setzen würde ja dazu führen, dass auch bei einem öffentlichen Gruppenbeitrag die Files/Bilder nicht für beliebige Personen sichtbar sind.
Genau wie Caw schreibt, erstmal hat jeder noch den Zugriff der den Bilderpfad kennt, erst nach weiteren Regeln über z.B. Field Permission etc. greift das Ganze auf private files.
Du kannst es ja einfach testen. Leg dir unter Dateisystem private einen Ordner an, z.B. mein-ordner und speichern, danach ist der mein-ordner mit der .htacess auf dem FTP automatisch angelegt.
(Wobei es auch Sinn machen kann diesen in das Root-Verzeichnis zu legen und nicht innerhalb der www.drupal.....Struktur)
Im Inhaltstyp ein Imagefield mit ausliefern über private files anlegen und eine Node erstellen und mit 2. Browser den kompletten Image oder PDF Pfad als Gast aufrufen, dann siehst du den Inhalt noch.
Erst danach greifen dann mit Zusatzregeln deine gewünschten Regeln, wobei ich mich leider mit OG nicht auskenne und den Besonderheiten.
Grüße Jenna
Hallo Martina, in OG ist es
am 27.06.2015 - 15:40 Uhr
Hallo Martina,
in OG ist es so, dass es Gruppen gibt, und in diesen Gruppen kann man private oder öffentliche Beiträge erstellen. Öffentliche Beiträge kann jeder sehen (auch Gäste), private Beiträge können nur Gruppenmitglieder sehen.
Diesen Beiträgen sind dann z.B. Dokumente oder Bilder angehängt.
Da die "normale" Sichbarkeitsregeln für solche Dokumente in Drupal aber auf Rollen basiert, hat man keine Chance, private Beiträge mit Dokumente den Gruppenmitgliedern zur Verfügung zu stellen.
Entweder die sind privat, dann kann man bestimmte Rollen festlegen, die die Dokumente sehen können, aber eben nicht Gruppenmitglieder (Gruppenmitglied ist keine Rolle).
Und wenn die Beiträge öfffentlich sind, dann sollten auch alle andere User, insbesondere auch Gäste, diese Beiträge sehen können.
Das scheint so zur Zeit nicht möglich zu sein, oder vielleicht doch.... vielleicht ist ja im Forum ein echter OG-Spezialist, der diese Problematik bereits gelöst hat, oder einen Lösungsansatz hat.
Gruß
Berthold
Drupal Video-Tutorials
Zitat: in OG ist es so, dass
am 27.06.2015 - 16:35 Uhr
in OG ist es so, dass es Gruppen gibt, und in diesen Gruppen kann man private oder öffentliche Beiträge erstellen. Öffentliche Beiträge kann jeder sehen (auch Gäste), private Beiträge können nur Gruppenmitglieder sehen.
Wenn das aber bereits von OG geregelt bzw. ermöglicht wird, dann müßtest du doch nur noch dafür sorgen das private bildpfad-urls nicht vom Gast aufgerufen werden können wenn ein Gruppenmitglied die Node als privat bzw. Gruppenmitglied erstellt hat. Verstehe ich das so richtig?
In dem Fall brauchst du ja auch keine weiteren permission module die auf Rollen basieren sondern OG müßte jetzt auf die Einstellung des privaten Dateisystems zugreifen, eigentlich...
Etwas doof, da nur geraten weil ich OG noch nicht brauchte.
Oder andere Variante, wäre es nicht möglich sowie ein User Gruppenmitglied wird ihm gleichzeitig per Rules die Rolle "X" zu geben, um die Einstellungen unabhängig von OG zu steuern?
Grüße Jenna
das Vertrackt ist wohl,
am 27.06.2015 - 16:58 Uhr
dass dies im gleichen content_type, und dynamisch änderbar sein soll.
Grüße
Ronald
@neue Rollenzuweisung das ist
am 27.06.2015 - 19:24 Uhr
@neue Rollenzuweisung
das ist nicht zielführend und wiederspricht total der Philosophie von OG.
Wie Ronald auch schon anmerkte: Das findet alles innerhalb eines Inhaltstypen statt, deswegen hilft das mit den Rollen auch gar nicht weiter.
Wenn das aber bereits von OG geregelt bzw. ermöglicht wird, dann müßtest du doch nur noch dafür sorgen das private bildpfad-urls nicht vom Gast aufgerufen werden können wenn ein Gruppenmitglied die Node als privat bzw. Gruppenmitglied erstellt hat. Verstehe ich das so richtig?
Private Pfade können in der Regel nicht von einem Gast aufgerufen werden.
Aber es geht ja gerade darum, dass eine "private" Datei von einem Gruppenmitglied aufgerufen werden können soll und das ist zur Zeit aus meiner Sicht nicht möglich. Gerade nach so einer Lösung suche ich ja.
Normalerweise können private Dateien nur von festgelegten Rollen angesehen werden, die OG-Mitgliedschaft ist dabei irrelevant.
Drupal Video-Tutorials
torfnase schrieb @neue
am 28.06.2015 - 05:12 Uhr
@neue Rollenzuweisung
das ist nicht zielführend und wiederspricht total der Philosophie von OG.
Wie Ronald auch schon anmerkte: Das findet alles innerhalb eines Inhaltstypen statt, deswegen hilft das mit den Rollen auch gar nicht weiter.
Private Pfade können in der Regel nicht von einem Gast aufgerufen werden.
Aber es geht ja gerade darum, dass eine "private" Datei von einem Gruppenmitglied aufgerufen werden können soll und das ist zur Zeit aus meiner Sicht nicht möglich. Gerade nach so einer Lösung suche ich ja.
Normalerweise können private Dateien nur von festgelegten Rollen angesehen werden, die OG-Mitgliedschaft ist dabei irrelevant.
natürlich hilft das mit den rollen für den inhaltstypen weiter: eine rolle x hat zugriff auf die daten, eine rolle y nicht.
private pfade können wie schon oben geschrieben von gästen aufgerufen werden, aber die von og eben nicht! und ds willst du ja uch nicht.
private pfade können natürlich von einem grupppenmitglied aufgerufen werden, das mußt du ja nur entspechend in den berechtigungen setzen entweder per nodeaccess, contentaccces oder auch noch field permissions.
außerdem kannst du ja mal anstatt og gcc testen
C.A.W. Webdesign
Hallo Christian,leider
am 28.06.2015 - 13:18 Uhr
Hallo Christian,
leider funktioniert das so alles nicht.
Wegen der Struktur ist OG auf dieser Plattform Pflicht, ich nutze da noch sehr viele weitere Eigenschaften von OG.
natürlich hilft das mit den rollen für den inhaltstypen weiter: eine rolle x hat zugriff auf die daten, eine rolle y nicht.
Nein, so funktioniert das leider überhaupt nicht.
Öfftentlicht und private Inhalte sind INNERHALB eines Inhaltstyps möglich. Rollenzugriffe kann ich aber nur EINMAL für den ganzen Inhaltstyp definieren.
@per node access ist keine Alternative (siehe unten).
private pfade können natürlich von einem grupppenmitglied aufgerufen werden, das mußt du ja nur entspechend in den berechtigungen setzen entweder per nodeaccess, contentaccces oder auch noch field permissions.
NEIN, leider nicht
OG funktioniert nicht mehr mit contentaccess.
Im content_access Modul heißt es unter Nodes: Content access makes use of Drupal's node access API. However, it's recommended to use only one module that does so.
Drupal Video-Tutorials
Ich fasse es noch mal
am 28.06.2015 - 13:30 Uhr
Ich fasse es noch mal zusammen.
Aus meiner Sicht ist die einzige Chance, dieses Problem zu lösen, ein private_file_og_group_access - Modul, also ein Modul, welches Gruppenmitgliedern erlaubt, Inhalte aus privaten Verzeichnissen zu sehen und das ganze unterteilt nach den einzelnen Gruppen, die es gibt.
Ich werde mal die commons Distribution durchforsten, vielleicht haben die dort ja schon so etwas gemacht.
Gruß
Berthold
Drupal Video-Tutorials
Zitat: Rollenzugriffe kann
am 28.06.2015 - 14:53 Uhr
Rollenzugriffe kann ich aber nur EINMAL für den ganzen Inhaltstyp definieren.
Ich bin mir ziemlich sicher das du es mit https://www.drupal.org/project/field_permissions lösen kannst, ob nun optimal weil getrennte Lösung von OG ist dann noch mal eine andere Sache.
Ein Image / PDF Field im ContentType ist mit field_permissions rollenbasiert zu steuern, generell wird dieses Field über private files ausgeliefert.
Und auch nur dieses eine Field hat die Field Permission, nicht der ganze Inhaltstyp:
Field visibility and permissions
-Public (author and administrators can edit, everyone can view)
-Private (only author and administrators can edit and view)
-Custom permissions ( hier Rolle X wählen, darf gucken, bearbeiten, Gast darf gar nichts...)
Ich habe so etwas für eine Dating Plattform gemacht, eben nicht mit OG, sondern mit Flag / Flag Friends.
Solange man das private Dateisystem richtig konfiguriert hat waren die Image Bilder der User von außen nicht aufrufbar, sondern nur wenn es ein "Friend" war, ansonsten kam access denied bei Aufruf der kompletten Bild-URL.
Nachteil in dem Fall ist lediglich die Performance Geschichte falls es mal zig tausende werden, da die Auslieferung über das private Dateisystem mehr Leistung zieht, zumindest steht das so unter dem Feld.
Natürlich hatte ich auch nur 1 Image Field mit Galerie Ausgabe in einem Inhaltstyp, die Abfrage könnte daher meiner Ansicht nach getrennt von OG laufen.
Wenn OG dann eine eigene Lösung bietet wäre das natürlich besser, aber so sollte es erstmal funktionieren.
Ich hoffe das ich dich ansonsten richtig verstanden habe, es geht dir nur darum die Bild-Url für Gast abzusichern? alles andere an Nodes Privat und Gast funktioniert bereits über OG, ja? dann müßte diese Variante auch funktionieren wenn Gruppenmitglied eine Rolle X erhält per Rules.
Grüße Jenna
oder doch mal gcc testen
am 28.06.2015 - 16:21 Uhr
oder doch mal gcc testen
C.A.W. Webdesign
@Martina und
am 28.06.2015 - 16:38 Uhr
@Martina und field_permission
Role-based field permissions allowing different viewing patterned based on what access the user has
Deswegen scheidet das aus. Aus meiner Sicht hat es gar keinen Sinn, dort "rollenbasiert" nach einer Lösung zu suchen.
@gcc
Hallo Christian
das kenne ich noch nicht, mal schauen, ob das was helfen kann.
Das ist ja auch eine superneue Sache, wenn ich das richtig gelesen haben, ist das vom 05. März diesen Jahres.
Ich bin gespannt.
Euch beiden vielen Dank für eure Mühe, ich halte euch gerne auf dem Laufenden, ob ich das Problem in den Griff bekommen habe, und insbesondere wie.
Gruß
Berthold
Drupal Video-Tutorials