Hallo zusammen, ich bin ein neuer Discourse-Nutzer und poste zum ersten Mal – bitte seid nett!
Kann mir jemand sagen, ob die folgende Lösung möglich ist?
Szenario:
Eine Drupal-Website
Inhalte auf der Drupal-Website, die eine Benutzerauthentifizierung erfordern (“eingeschränkter Drupal-Inhalt”)
SSO zwischen Drupal und Discourse
Problem:
Ein Discourse-Nutzer, der in einen Beitrag einen Link zu “eingeschränktem Drupal-Inhalt” einfügt, erhält die 403-Meldung: “Entschuldigung, wir konnten keine Vorschau für diese Webseite generieren, da der Webserver einen Fehlercode 403 zurückgegeben hat. Anstelle einer Vorschau wird nur ein Link in deinem Beitrag angezeigt.”
Gewünschte Lösung:
Ein Discourse-Nutzer, der einen Link zu eingeschränktem Inhalt einfügt, erhält automatisch eine Vorschau, wenn er Zugriff auf den Inhalt hat
In dem, was du bisher gesagt hast, liegt eine Mehrdeutigkeit vor. Meinst du, dass die Onebox-Vorschau beim Anzeigen eines Discourse-Beitrags mit einem Drupal-Link davon abhängen soll,
auf die Drupal-Berechtigungen des Betrachters oder
auf die Drupal-Berechtigungen des Erstellenden?
In jedem Fall wird es einfacher zu lösen sein, wenn du es als Problem der Discourse-Berechtigungen definierst. Du kannst eine automatische Zuweisung von Discourse-Gruppen basierend auf der Drupal-Rolle einrichten; das sollte mit dem Drupal-Discourse-SSO-Modul problemlos möglich sein.
Möglicherweise benötigst du auch eine benutzerdefinierte Zugrifflogik auf Drupal-Seite, um sicherzustellen, dass der Onebox-Vorschau-Crawler auf eingeschränkte Inhalte zugreifen kann.
Wenn du bestimmten Zuschauern Inhalte anzeigen möchtest, aber nicht anderen, vermute ich, dass du die Inhalte mit einem Skript versehen musst. Es wäre viel einfacher, wenn die Inhalte vom Ersteller und nicht vom Zuschauer abhingen.
Danke für die schnelle Antwort. Ich dachte, die Vorschau würde vom Zugriff des Erstellers des Discourse-Themas oder -Kommentars abhängen, nicht vom Zugriff des Discourse-Betrachters.
Ich habe mir die Vorschau als Momentaufnahme vorgestellt, die erstellt und als statisches HTML an den Beitrag gebunden wird, nicht als dynamisches Widget – das hatte ich gar nicht in Betracht gezogen!
Wenn ich Sie richtig verstehe: Dies wäre mit Anpassungen (über ein Skript) auf der Discourse-Seite und/oder einer benutzerdefinierten Zugrifflogik auf der Drupal-Seite möglich?