Ich habe einen Benutzer mit Ansichts- und Bearbeitungsrechten für einen bestimmten Inhaltstyp. Dies gibt allen Benutzern die Berechtigung, alle Knoten dieses Typs anzuzeigen und zu bearbeiten. Eigentlich möchte ich für jeden Benutzer einen eindeutigen Knoten erstellen, damit nur dieser Benutzer ihn anzeigen und bearbeiten kann. Wie kann ich das in Drupal 7 machen?
10
Antworten:
Mit einem vorhandenen Modul können Sie dies mit Content Access tun, mit dem (zusammen mit ACL ) die Berechtigungen für den Zugriff auf einen Knoten für jeden Benutzer festgelegt werden können.
Dies bedeutet, dass Sie die Zugriffsberechtigungen für jeden Knoten manuell festlegen müssen.
Wenn Sie die Knoten manuell erstellen und dann sicherstellen möchten, dass nur der Benutzer, der als Eigentümer des Knotens festgelegt ist, ihn anzeigen (und bearbeiten) kann, können Sie ein benutzerdefiniertes Modul erstellen (dh ein Modul) verwendet für Ihre Site) und implementieren Sie
hook_node_access()
wie folgt (der Code wurde geschrieben, um das Lesen zu erleichtern):Mit dieser Hook-Implementierung müssen Sie die Zugriffsberechtigungen für jeden Knoten des von Ihnen erstellten Inhaltstyps nicht manuell bearbeiten. Das Ändern des Besitzers des Knotens wäre auch einfacher, da Sie die Zugriffsberechtigungen dieses Knotens nicht ändern müssen. Der Code gewährt dem Benutzer, der als Eigentümer (oder Autor) des Knotens festgelegt ist, automatisch die Aktualisierungs- und Ansichtsberechtigungen.
quelle
Sie benötigen dazu kein spezielles Modul oder benutzerdefinierten Code. Erstellen Sie einfach manuell diese Knoten, legen Sie die entsprechenden Benutzer als Eigentümer (Autor) der Knoten fest und legen Sie die Berechtigungen für diesen Inhaltstyp fest, um nur den eigenen Inhalt zu bearbeiten (keine Inhalte dieses Typs zu bearbeiten), und fertig.
quelle
Sie sprechen von der Drupal-Knotenzugriffskontrolle, die ein großes Thema ist.
Die integrierte Unterstützung des Kerns für die Knotenzugriffskontrolle ist eher selbstverständlich. Um den Zugriff zu steuern und einen Knoten nach Rollen anzuzeigen, müssen Sie eine Art Knotenzugriffskontrollmodul verwenden. Auf Drupal.org gibt es eine Seite, auf der alle Knotenzugriffsmodule mit einer Kapselüberprüfung aufgeführt sind. Ich schlage vor, dass Sie sich diese Seite ansehen, um zu sehen, ob Sie ein geeignetes Modul zur Zugriffssteuerung finden.
Das Flexi Access- Modul scheint das Modul zu sein, das Ihren Anforderungen am ehesten entspricht, da seine Hauptfunktion darin besteht, den Zugriff für einzelne Benutzer zu steuern, anstatt nach Rolle oder Taxonomiebegriff.
Es ist ein kleines Modul, mit dem Sie ACLs (Zugriffssteuerungslisten) für einzelne Benutzer einrichten können. Es handelt sich im Grunde genommen um eine Benutzeroberfläche für das ACL- Modul, daher müssen Sie diese ebenfalls installieren.
Es fehlen einige der Funktionen der erweiterten Zugriffssteuerungsmodule, z. B. Content Access , aber es wird aktiv gewartet und es gibt derzeit keine offenen Fehler in der Problemwarteschlange.
Offenlegung: Ich bin der Betreuer von Flexi Access.
quelle