Suche Denkanstoß - Benutzer dürfen nur Ihren _zugewiesenen_ Content sehen?
am 07.11.2007 - 15:07 Uhr in
Hallo,
ich würde gerne eine Übersichtsseite pro Benutzer anlegen, wo auch nur Content für den Benutzer selbst angezeigt wird.
Habe an Views gedacht, da ich ja mit Views abfragen gegen Nodes machen kann, nun 2 Fragen/Probleme:
a) Wie kann ich eine Inhaltssteuerung einbauen, so das jeder Benutzer nur seine Daten sieht, aber nicht die von anderen einsehen kann? -> Views, aber wie restriktiere ich das auf den eingeloggten Benutzer und auch nur auf die Daten für Ihn?
b) Wie sicher ich die Node so ab, das sie auch nicht im System durch URL Aufruf angeschaut werden kann.
-> Das würde ja mit Nodeaccess gehen, einfach auf Adminsicht stellen und die Nodeinhalte mit einem View aus dem System ziehen? oder ist der Ansatz von unten besser? content_access / acl
Die Snippets und das Handbuch auf Drupal.org hab ich schon durch. http://drupal.org/node/153686
Meine Ansätze:
--------------
Nodes mit Inhalten anlegen und dem Benutzer zuweisen:
http://drupal.org/project/content_access http://drupal.org/project/acl
Views erstellen mit den Inhalten, aber die View Abfrage darf nur gegen den eingelogten User erfolgen?
Wie stell ich das mit den Views an?
Gruß Andreas
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich denke das sind 2
am 07.11.2007 - 15:44 Uhr
Ich denke das sind 2 Aufgaben.
1. einem User die Liste als Uebersicht mit seinem Content
2. Inhalte nur dem jeweiligen Userverfuegbar machen
Zu 1.
Das ist mit einem View relativ schnell erledigt.
Zu 2.
Ein geeignetes Access Modul verwenden.
---------------------------------------------
In beiden Situationen, "Uebersichtsliste" und "beliebige Node per URL aufrufen" sollte es keine Probleme mit der gewuenschten Sicherheit geben. Einfach machen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
danke schonmal, dann liege
am 07.11.2007 - 17:00 Uhr
danke schonmal, dann liege ich ja nicht ganz auf dem holzweg, aber wie kann ich views an den benutzer binden, der sie ansieht? so aller SELECT content WHERE userid = $thisuserid und thisuserid kommt vom eingeloggten user.
möchte ja nicht das cybercore die daten von quiptime lesen kann und umgekehrt.
es sind 2 verschiedene Dinge
am 07.11.2007 - 17:16 Uhr
aber wie kann ich views an den benutzer binden, der sie ansieht
Meinst Du damit, welche Views Filter usw. einem User nur seinen eigenen Content zeigen?
Wie gesagt, es sind 2 verschiedene Dinge. View und Accessregeln.
Der View kann sich nur in den durch Access (bereits) geregelten Dingen bewegen. Selbst wenn Du in einem View auf Content verweist den am Ende ein bestimmter nicht sehen darf dann wird ihn dieser User auch nicht sehen koennen. Ein View bricht nicht Accessregeln bzw. Accessregeln stehen ueber einem View.
Anders ist es, wenn man Content ausserhalb von Views aufruft. Hier kann nur Access die Dinge regeln.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Mit View einem User seinen Inhalt zeigen
am 07.11.2007 - 18:46 Uhr
Inhaltsübersicht für einen User
Will man den Usern die Möglichkeit geben, eine Übersicht ihres Inhaltes aufzurufen kann man solch eine Inhaltsübersicht mit einem View realisieren.
Das Wichtigste im Usercontent View
Um einem User seine Inhalte anzuzeigen sind zur Auswahl des Content 2 Dinge wesentlich.
Art der Inhaltsanzeige
Das Ganze wird mit einem Page View realisiert. Als URL dieses View eine geeignete, am besten sprechende, URL wählen. Beispielsweise "usercontent"
Den Ansichtstyp kann man nach eigenem Gusto wählen. Für eine Übersicht bietet sich eine Tabellenansicht an. Um mit einer Tabellenansicht einen View zu definieren müssen Felder festgelegt werden.
Minimalste Felder einer tabellarischen Inhaltsübersicht
Jetzt hat man bereits eine einfache Inhaltsübersicht, die man mit
http://yoursite.com/usercontent
aufrufen kann.Node: Bearbeiten Verweis
Anonymous User und die Inhaltsübersicht
Wird diese URL von einem nicht eingeloggten User aufgerufen wird eine Fehlermeldung von Drupal ausgegeben. Um die Ausgabe für diesen Fall zu beeinflussen kann man im View folgendes tun:
In der Seitenkonfiguration -> leerer Text (empty)
einen entsprechenden Text eingeben. Wenn man hierbei das Eingabeformat auf HTML setzt kann man den Empty Text mit einfachen HTML Tags formatieren bzw. auch besser mit CSS formatieren.
Man kann dies auf einer Website auch bewusst einsetzen. D. h., man publiziert die URL
http://yoursite.com/usercontent
nicht nur den eingeloggten Usern.-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
super, dank Dir!
am 08.11.2007 - 14:15 Uhr
Dank Dir erstmal für die super Erklärung, werde das gleich mal umsetzen und testen. Schön das Accessmodule über Views stehen, wusste ich bisher nicht.
Gruß Andreas