Wie kann ich verhindern, dass Nodes über ID im Browser gefunden werden?
am 20.01.2012 - 22:52 Uhr in
Hallo Drupalgemeinde,
ich habe bisher immer selber einen Weg gefunden, aber bei meinem jetzigen Problem weiß ich nicht genau, wo ich ansetzen soll. Ich hoffe auf Eure Hilfe!
Aus all meinen Nodes erstelle ich weitestgehend Views. Wenn Nutzer selbst Beiträge erstellen (hier ist das Eingabeformular mittels Form Block auf eine bestehende Seite gelegt) sollen sie aber das Ergebnis auch gleich sehen können (es ist so konfiguriert, dass nur der betreffende User selbst seinen erstellten Inhalt sieht - es ist zu Testzwecken eingerichtet), also benötigen sie Zugriff auf eine "node/add-Seite". Das bedeutet doch auch, dass ich den lesenden Zugriff beim Node-Modul nicht verweigern kann, oder? Weiterhin wird einem Gast ohne diese Berechtigung auch nicht die Bestätigungsseite nach einem E-Mail-Versand über das Kontaktformular (erstellt mit Webform) angezeigt?! Wenn man Gästen/Usern nun aber das Recht des lesenden Zugriffs beim Node-Modul läßt, können die einzelnen Nodes noch immer über ihre ID im Browser gefunden werden. Das möchte ich verständlicherweise nicht.
Wie kann ich dieses Problem lösen? Ich nutze auch Content Access für weitere spezielle Zugriffsmöglichkeiten, aber diese Sache bekomme ich damit leider nicht in den Griff. Was übersehe ich?
Ich danke Euch für Eure Tips!
Susanne
- Anmelden oder Registrieren um Kommentare zu schreiben
da jede node eine id hat und
am 21.01.2012 - 07:22 Uhr
da jede node eine id hat und drupal so aufgebaut ist, daß die nodes über die id aufgerufen werden, kannst du da gar nichts machen. weil ohne node id wird man nicht auf die node zugreifen können, soweit ich ds übersehe.
Nodes werden nur dann nicht
am 21.01.2012 - 09:27 Uhr
Nodes werden nur dann nicht gefunden, wenn der Benutzer die Nodes nicht sehen darf. Also mußt Du über ein Zugriffs-Kontroll-System dafür sorgen, daß der User dieses Node nicht sehen darf (z.B. [do:content_access]).
Beste Grüße
Werner
Wenn du z.B. die Nodes NUR
am 21.01.2012 - 09:43 Uhr
Wenn du z.B. die Nodes NUR über die Views anzeigen läßt (also auch alle Textinhalte) und dann den Userne das Leserecht nimmst sollte das gehen
Guten Morgen und schon mal
am 21.01.2012 - 10:05 Uhr
Guten Morgen und schon mal danke für die Antworten! Den Usern das Leserecht der Nodes zu nehmen über Content Access habe ich schon probiert, aber dann sehen sie trotzdem den View nicht, trotz View Zugriff... Moment, das könnte daran liegen, dass das Zeilendesign in Views als Node konfiguriert ist??!
Gruß
Susanne
S.C.G. schrieb Moment, das
am 21.01.2012 - 12:11 Uhr
Moment, das könnte daran liegen, dass das Zeilendesign in Views als Node konfiguriert ist??!
Gruß
Susanne
ja daran liegts!
Jepp, ich habe das schon
am 21.01.2012 - 12:31 Uhr
Jepp, ich habe das schon korrigiert. Mit einem Zeilendesign als 'Felder' kann ich das also quasi umgehen... In den Berechtigungen muss lesender Zugriff erlaubt sein, über content access nehme ich die unerwünschten Zugriffe für einzelne Nodes wieder raus und über Views (im Felder-Design) bekommt der User dann den Beitrag zu sehen.
Danke für Eure Hilfe!
den thread dann als gelöst
am 21.01.2012 - 12:39 Uhr
den thread dann als gelöst markieren bitte!
Page Manager
am 21.01.2012 - 17:04 Uhr
Nur mal als anderer Ansatz: verwende das Modul "Page Manager" (in [do:ctools Ctools] enthalten). Damit kannst Du unter anderem definieren, unter welchen Bedingungen (z.B. Rolle) die Nodeansicht (eines bestimmten Typs, alle Nodes, ...) aufgerufen werden kann (also node/%).
Bei nodeone gibt es dazu auch richtig tolle Screencasts: http://dev.nodeone.se/en/learn-page-manager
Ok, ich musste den
am 21.01.2012 - 19:06 Uhr
Ok, ich musste den [gelöst]-Vermerk noch einmal entfernen, da diese Möglichkeit doch nicht funktioniert (bei mir jedenfalls nicht)! Man benötigt eine Leseberechtigung für die Nodes, sonst kann man auch keine Views (selbst im Felder-Zeilendesign) sehen! Das war falsch, sorry!
@stBorchert
Der "Page Manager" ist wahrscheinlich genau das, was ich gesucht habe. Danke!!
Nur habe ich jetzt versehentlich eine falsche Einstellung getan und bekomme für das node_view Template folgende Fehlermeldung:
Fatal error: Call to undefined function panels_panel_context_get_display() in /........... /sites/all/modules/ctools/page_manager_alt/plugins/task_handlers/http_response.inc on line 119
Ich habe bei der Einstellung zum Response code statt des 301 den 403 angegeben! Kann mir jemand sagen, wo und wie ich das rückgängig machen kann, da ja jetzt immer obige Fehlermeldung kommt, wenn mann dieses Template aufruft??
Ich bin für jeden Rat dankbar!
Susanne
Hallo, kann nicht vielleicht
am 23.01.2012 - 09:44 Uhr
Hallo,
kann nicht vielleicht noch mal jemand schauen, ob er weiß, wie ich meine falsche Einstellung rückgängig machen kann?! Wenn ich diese Seite (node_view Template des Page Managers) mit dem Pfad /node/%node nun aktiviere, bekomme ich natürlich überall eine Zugriffsverweigerung. Wie kann ich das wieder rückgängig machen? Ich komme nun leider nicht mehr in die Einstellungen rein, es kommt nur folgende Fehlermeldung:
Fatal error: Call to undefined function panels_panel_context_get_display() in /........... /sites/all/modules/ctools/page_manager_alt/plugins/task_handlers/http_response.inc on line 119
Danke für Eure Hilfe!
Susanne
Tabellen
am 23.01.2012 - 10:52 Uhr
Hallo.
Versuche mal, ob Du die Einstellung direkt in der Datenbank findest. Eventuell hilft es, den entsprechenden Eintrag aus der Tabelle page_manager_handlers zu löschen (Tipp: vorher ein Backup der DB machen!).
Der Fehler mit der Einstellungsseite wurde mittlerweile (in der dev-Version) behoben: http://drupal.org/node/967590
Wenn Du also ctools auf die neueste Entwicklungsversion aktualisierst, ist zumindest dieser Fehler weg.
Tabelle löschen
am 23.01.2012 - 11:08 Uhr
@stBorchert,
super Tip! Danke, das Löschen aus der DB hat's gebracht. Jetzt versuche ich mein Glück auf's Neue (nachdem ich ctools aktualisiert habe ;o)...) und werde hier berichten, wie ich mein "Node-Problem" in den Griff bekommen habe...
Danke und Gruß
Susanne