Wie geschützen Bereich anlegen?
am 26.05.2006 - 14:17 Uhr in
Hallo, ich habe seit etwa 2 Wochen Drupal (jetzt 4.7.1) installiert und bin bei einem Thema fast am verzweifeln.
Ich hoffe, es liegt nur an meiner Blödheit und nicht an fehlenden Funktionen/Modulen ;-)
1. Ich möchte mit Drupal eine Homepage erstellen :)
2. Vollzugriff haben nur Administratoren (ich)
3. eingeschränkten Zugriff (keine Verwaltung, nur Menüpunkte und Inhalte anlegen) haben Supervisoren.
Für Punkt 3 habe ich eine Rolle angelegt. Soweit klappt das auch.
Der Supervisor darf Benutzer anlegen (es darf sich niemand selbst anmelden). Soweit auch kein Problem.
Jetzt soll es aber einen Bereich geben, der nur für angemeldete User sichtbar ist. Es darf der Menüpunkt also nur erscheinen, wenn der User sich angemeldet hat. Hier soll dieser User auch schrieben können. Ein Bereich in dem sich Supervisor und normale User austauschen. User dürfen natürlich nicht die Beiträge anderer User (oder die des Supervisors) ändern können!
Außerdem soll es einen "privaten" Bereich geben, in dem nur je ein Kunde sich mit dem Supervisor austauschen kann.
Hoffe, ich habe das Problem verständlich ausgedrückt. Ich habe schon verschiedene Module (simple_access, tac_lite, forum) installiert, leider nie mit dem gewünschten Ergebnis. Vielleicht liegt es auch daran, dass das System jetzt "zerkonfiguriert" ist?!
Was muss ich für die gewünschte Funktion haben? Ich kann mir nicht vorstellen, dass niemand bisher so etwas benötigt hat. Für eine Schritt-für-Schritt-Anleitung wäre ich sehr dankbar! (z.b. Welche Rollen/Berechtigungen/Regeln ich anlegen muss)
- Anmelden oder Registrieren um Kommentare zu schreiben
Organic Groups oder Taxonomy Access
am 26.05.2006 - 15:23 Uhr
Hallo Daniel,
Schau Dir die beiden im Titel erwähnten Module an. Eigentlich müssten beide für Deine Zwecke geeignet sein. Gefühlsmässig denke ich, dass Organic Groups Dir am meisten bietet, ich selbst habe damit aber noch keine Erfahrungen gesammelt.
Ich habe bisher nur auf einer Site mit taxonomy_access ein internes Forum von der Allgemeinheit "abgeschottet" und war bzw. bin damit sehr zufrieden.
Gruss
Jürg
Hallo Jürg, heißt das, ich
am 26.05.2006 - 16:03 Uhr
Hallo Jürg,
heißt das, ich brauche simple_access und tac_lite in Kombination? Evtl. noch Organic Groups? Für mich war tac_lite schon Overkill. Wie gesagt, kenne ich Drupal etwa seit 2 Wochen und die ganze Taxonomie-Sache ist ganz schön heftig für meine Bedürfnisse. Aber wenn es nicht anders geht...
Eine schrittweise Anleitung hast Du nicht zufällig parat? Bei den von mir vorgenommenen Einstellung war es immer so, dass entweder User schreiben konnten wo sie nicht durften oder wo nicht schreiben konnten, wo sie sollten...
Da habe ich wohl noch etwas falsch konfiguriert oder vergessen, nur was?
Eines genügt!
am 26.05.2006 - 19:02 Uhr
Hallo Daniel,
Verwende entweder tac_lite oder taxonomy access oder Organic groups aber nicht eine Kombination davon. Ich habe vorhin nur kurz das README von tac_lite gelesen und meine das es recht gut passen sollte (ich verwende taxonomy access, dies ist aber umständlicher als tac_lite).
Leider habe ich keine Schritt-für-Schritt Anleitung zur Verfügung. Du erstellst Dir zunächst eine neue Kategorie z.B. mit dem Namen "Zugriffsrecht". Dort machst Du z.B. 2 Einträge rein mit dem Namen "öffentlich" bzw. "privat". Bei jedem neuen Dokument wählst Du dann jeweils ob es öffentlich oder privat sein soll.
Vermutlich kannst Du bei den Einstellungen des Moduls tac_lite festlegen, welche Benutzer welche Berechtigungen haben. Der "anonymous user" sollte nur öffentliche Dokumente sehen dürfen, der "authenticated user" hingegen sowohl öffentlich als auch private. (ich kenne das tac_lite Modul nicht).
Falls Du das Modul taxonomy access http://drupal.org/project/taxonomy_access benutzen möchtest, hast Du nach der Installation des Moduls in admin/access einen neuen Tab "taxonomy access". Dort kannst Du dann im Detail für jede Kategorie angeben, welche Rolle welche Rechte bekommt. Analog wie oben würdest Du dem "authenticated user" view und edit Rechte geben für die Klassifizierung "privat" und für "öffentlich". Der "anonymous user" erhält hingegen nur view-Rechte für die Klassifizierung "öffentlich". Der Nachteil von taxonomy access ist, dass Du die Rechte für ALLE Kategorien angeben musst, nicht nur für die gewünschte Klassifierung "Zugriffsrecht". Dies macht es fallweise etwas umständlich. Soweit ich verstanden habe, vermeidet tac_lite dieses Problem. Deshalb dürfte tac_lite die bessere Wahl sein.
Ich hoffe, dies verwirrt Dich nicht noch mehr! Auf jeden Fall ist wichtig, dass Du nur eines der oben erwähnten Module einsetzt und nicht eine Kombination davon!
Gruss
Jürg
Leider funktionierts immer noch nicht...
am 29.05.2006 - 15:27 Uhr
Vielen Dank schon mal für Deine Mühe, leider funktioniert es bisher immer noch nicht. Hier erst mal das, was ich bisher gemacht habe: (Der Einfachheit halber lasse ich hier den Supervisor weg und beschränke mich auf den Admin und User)
- Alle Rechte-Module bis auf tac_lite deaktivert
- Taxonomie aktivert (ist ja Voraussetzung für tac_lite)
- Es gibt zwei User zum testen "User A" und "User B"
- Unter "Verwalten/Zugriffskontrolle" habe ich die Rolle "User" eingerichtet und diese den beiden Usern zugewiesen
- Unter "Verwalten/Kategorien" habe ich ein neues Vokabular "Zugriffrechte" eingerichtet
- Unter dem Vokabular gibt es die Begriffe "Öffentlich" (alle dürfen lesen, nur Admin schreiben), "Userbereich" (nur Admins, User A, User B usw. dürfen lesen und schreiben) und "Nur für User A" (nur Admins und User A darf lesen und schreiben)
- Unter "Verwalten/Zugriffskontrolle/tac_lite" habe ich unter "Einstellungen" das Vokabular "Zugriffsrechte" mit tac_lite verbunden. Dort unter "tac_lite access by role" habe ich der Rolle Admin die Rechte für alle Bereiche zugewiesen, der Rolle User habe ich den Begriff "Userbereich" zusätzlich gegeben.
- Unter "Verwalten/Benutzer" habe ich den User A bearbeitet und unter dem neuen Menüpunkt "tac_lite access" zusätzlich das Zugriffsrecht "Nur für User A" gegeben.
- Ich habe einen Node "Für User" angelegt und im Menü verknüpft. Dieser Node hat das Zugriffsrecht "Userbereich" bekommen
- Ich habe einen weiteren Node "Für User A" angelegt und im Menü als Unterpunkt des vorherigen verknüpft. Dieser Node hat das Zugriffsrecht "Nur für User A" bekommen.
Damit sollte man nun, wenn man als User A angemeldet ist, zwei weitere Texte sehen und bearbeite können. Wenn man als User B eingeloggt ist, hingegen nur einen weiteren Text.
Tatsache ist aber, dass man egal, als welcher User man eingeloggt ist, alles sehen kann. Bearbeiten ist dagegen für keinen der beiden Punkte möglich. Dafür kann ich als einer der User andere öffentliche Punkte bearbeiten, auf die ich so gar nicht zugreifen dürfte! Außerdem möchte ich nicht, das einer der User A oder B auf die Veröffentlichungseinstellungen (auf Startseite etc.) Zugriff hat.
Was habe ich denn falsch gemacht? Zugegebenermaßen habe ich keine Option gefunden, wo ich z.B. nur Lese- oder Lese-/Schreibrechte vergebenm kann... Anhand dieser langen Geschichte kann man sehen, wie kompliziert sogar die Rechtevergabe mit tac_lite ist. Und ich würde mich nicht als Computer-Newbee bezeichnen.
Was unter meinem Verständnis einfach wäre, wäre ein Modul, bei dem ich bei jedem Text/Node eine Liste der User habe und dort an/abwählen kann, wer den Text lesen oder schreiben darf. (OK, 2 Listen ;-) ) Ohne irgendwelche Rechte erst anlegen zu müssen und Rollen verteilen und X nach Y zuordnen zu müssen.
Kann jemand helfen? :(
EDIT: Noch etwas: Jetzt habe ich es geschafft, dass User A einen Text editieren kann und User B nicht. User B hat jetzt auch einen Text, den User A nicht editieren kann und auch nicht sieht. Hierzu musste ich User A seinen Text selbst anlegen lassen, es ging nicht, dass ich als Admin ihm die Rechte dafür gab. Als Admin habe ich nur seinen Text in das Menü eingebunden. Jetzt gibt es aber ein neues Problem, das die User nicht mehr in einigen öffentlichen(!) Bereichen lesen können - Zugriff verweigert! Außerdem besteht immer noch das Problem, dass ich es nicht schaffe, einen nicht öffentlichen Bereich zu erstellen, in dem beide User und der Admin schreiben können.
Vielleicht ist meine Datenbank auch durcheinander... wenn hier keiner eine Idee hat, werde ich das ganze System neu aufsetzen...
Tabelle node_access regenerieren
am 30.05.2006 - 17:40 Uhr
Hallo Daniel,
Es sieht so aus, dass die diversen Versuche mit den Modulen vorher die Tabelle(n) für die Zugriffsberechtigungen durcheinander gebracht haben. Dies kann durchaus vorkommen. Da ich keine Version 4.7 zur Verfügung habe, kann ich das Modul tac_lite nicht installieren. Ich vermute aber, dass es unter admin/settings/tac_lite eine Möglichkeit gibt, das Modul zu "disablen" (nicht unter admin/modules). Falls ja, disable zuerst das Modul und enable es danach wieder. Dies sollte eigentlich die Tabellen wieder leeren bzw. in Ordnung bringen. Dabei gehen natürlich die aktuellen Einstellungen verloren.
Falls dies nichts bringen sollte, mache ein Backup der Datenbank, disable das Modul tac_lite und leere die Tabelle node_access. Lösche die evtl. durch tac_lite neue erstellte(n) Tabelle(n). Danach das Modul tac_lite neu installieren und wieder enablen. Dann solltest Du wieder ein in Bezug auf Zugriffsrechte "jungfräuliches" System haben.
Beachte auch, dass die Zugriffsrechte des tac_lite Modules die allgemeinen Zugriffsrechte, welche Du unter admin/access einstellst, nur zusätzlich einschränken können. Diese Bemerkung gilt generell für alle Module wie taxonomy_access, tac_lite, node_privacy_by_role, usw.
Gruss
Jürg
admin/settings/tac_lite gibt es nicht
am 30.05.2006 - 18:02 Uhr
admin/settings/tac_lite gibt es nicht, auch keine extra Datenbanktabelle. Das macht die Sache (zumindest wenn etwas nicht läuft) nicht gerade einfacher.
Ich versuche die 2. Möglichkeit. Wenn es nicht klappt, schmeißen ich alles runter und setze komplett neu auf. Als erstes tac_lite und dann mal sehen, ob es funktioniert, bevor alle anderen Module kommen. Sind zum Glück noch keine wichtigen Daten drauf, die paar Texte bekomme ich per copy/paste gesichert.
Da es ja jetzt speziell um das Modul tac_lite geht, ist der Thread hier fehl am Platz. Kann ein Mod den Beitrag viellicht in das Module-Forum verschieben?
Der Stand der Dinge...
am 30.05.2006 - 20:39 Uhr
So, ich habe jetzt die Tabelle geleert etc. wie empfohlen. Es waren tatsächlich noch Einträge eines anderen, deaktivierten Access-Moduls drin.
Nachdem alles wie geschrieben erledigt war, konnte ich erst mal als User A/B nirgends zugreifen (nicht mal auf das Login, dass ich auf einer einzelnen Extra-Seite verfrachtet hatte). Erst, als ich jeden node einmal aufgerufen hatte und wieder gespeichert hatte (ohne im Prinzip etwas zu ändern) wurden die nötigen Einträge wieder in die Tabelle node_access geschrieben. Jetzt klappt alles zufriedenstellen - bis auf den Bereich, in dem jeder User schreiben darf. Da hat z.Z. nur der Admin die Rechte dafür. Die User können immerhin lesen.
Die Tabelle node_access sieht mit einem Beispieleintrag folgendermaßen aus:
nid gid aufsteigend realm grant_view grant_update grant_delete
3 0 tac_lite 1 0 0
(mangels Tabellen-Funktion leider etwas unübersichtlich)
Das ist Node 3 (nid). Was ist gid? Ich habe ein bisschen experimentiert: Wenn ich grant_update mit phpMyAdmin auch auf 1 setze, dann kann ich als User A/B auch dort in den Node schreiben, was vorher nicht ging. Nur wird der Eintrag anschließend wieder mit 0 überschreiben und dann gehts nicht mehr. Ich habe ja nur ein Vokabular angelegt, mit dem ich steuern wollte "Schreib- UND Leserechte ja/nein". Irgendwie fehlt mir wohl die Möglichkeit zu sagen, was überhaupt passiert, wenn ich die Begriffe zugeordnet habe... gibt es niemanden hier, der das Modul kennt und mit klar kommt?