Wie kann der Knotenzugriff basierend auf Benutzerrollen eingeschränkt werden? [geschlossen]

8

Wie kann ich zulassen, dass nur bestimmte Knoten basierend auf Benutzerrollen angezeigt werden?

Grundsätzlich möchte ich nicht zulassen, dass Benutzer einer bestimmten Rolle auf Knoten zugreifen.

Harshal
quelle
3
Nicht sicher, warum sie Ihre Frage geschlossen haben, es ist eine gute Frage. Und für alle, die interessiert sein könnten, löse ich diese Art von Problemen immer, indem ich ein benutzerdefiniertes Modul erstelle und api.drupal.org/api/drupal/modules%21node%21node.api.php/… ... überschreibe Overheads in Form von massiven Modulen, viel einfacher und zuverlässiger.
Coderama
1
@coderama Es ist ein bisschen breit, ohne dass das OP zeigt, was sie bisher versucht haben. Solche Fragen erhalten umfassende Antworten, die zukünftigen Benutzern wahrscheinlich nicht helfen werden.
Kiamlaluno

Antworten:

3

Haben Sie das Inhaltszugriffsmodul ausprobiert ?

Mit diesem Modul können Sie Berechtigungen für Inhaltstypen nach Rolle und Autor verwalten. Hier können Sie benutzerdefinierte Ansichts-, Bearbeitungs- und Löschberechtigungen für jeden Inhaltstyp festlegen. Optional können Sie die Einstellungen für den Inhaltszugriff aktivieren, sodass Sie den Zugriff für jeden Inhaltsknoten anpassen können.

4Leben
quelle
1
Wenn Sie keine knotenbasierten Berechtigungen benötigen, ist das Berechtigungsmodul für die Knotenansicht ein einfacheres Modul, das den Zugriff nur anhand des Inhaltstyps und der Benutzerrolle steuert.
Jevon
1
Dieses Modul ist Beta für Drupal 7
Toby Allen
16

Sie sprechen von der Drupal-Knotenzugriffskontrolle, die ein großes Thema ist.

Die integrierte Unterstützung des Kerns für die Knotenzugriffssteuerung ist ziemlich grob. Um den Zugriff zum Anzeigen eines Knotens nach Rollen zu steuern, müssen Sie eine Art Knotenzugriffssteuerungsmodul 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 finden, um den Zugriff basierend auf Rollen zu steuern.

Wenn Sie mit der Zugriffssteuerung arbeiten, ist es hilfreich zu verstehen, wie Drupal-Zugriffssteuerungsmodule tatsächlich funktionieren. Hier eine kurze Beschreibung:

  1. Benutzer, denen die Berechtigung zum Verwalten von Knoten erteilt wurde, werden niemals durch die Knotenzugriffskontrolle eingeschränkt. Benutzern, die keine Berechtigung zum Anzeigen veröffentlichter Inhalte haben, kann von einem Knotenzugriffsmodul niemals Zugriff gewährt werden. Nur Benutzer, die über "Zugriff auf Inhalte" und nicht über "Knoten verwalten" verfügen, sind für die wilde Welt der Steuerung von Knotenzugriffsmodulen berechtigt.

  2. Die Knotenzugriffskontrolle in Drupal ist in der Regel additiv . Dies bedeutet, dass jedes Modul, das die Zugriffskontrolle gemäß der „Drupal-Philosophie“ durchführt, den Zugriff nur zulassen und nicht verweigern sollte. Ein Administrator, der den Zugriff auf einen Knoten optimieren möchte, muss zunächst sicherstellen, dass niemand Zugriff hat, und dann jedem, der Zugriff haben soll, Zugriffsberechtigungen hinzufügen.

Dies bedeutet, dass es möglicherweise ziemlich umständlich ist, den Zugriff auf eine Person mit einem Modul wie Content Access zu beschränken , da Sie zunächst jedem den Zugriff verweigern und ihn dann wieder zu den Knoten hinzufügen müssen, die nicht eingeschränkt werden sollen. Ich denke jedoch, dass es die beste Option ist, wenn Sie es wirklich Knoten für Knoten tun müssen. Die primäre Auflösung sind Inhaltstypen, aber Sie können diese für einzelne Knoten überschreiben.

Leider können Sie den Zugriff verweigern nicht verwenden, da er nur für Inhaltstypen ohne Überschreibung für einzelne Knoten funktioniert.

Hinweis: Die Verwendung von mehr als einem Knotenzugriffsmodul wird nicht empfohlen.

Beachten Sie, dass der Zugriff verweigern ideal ist, wenn Sie Ihre Anforderungen so ändern können, dass Sie den Inhaltstyp als Basiseinheit für die Knotenzugriffskontrolle verwenden können. Wenn Sie beispielsweise die Rolle "Schüler" haben und den Zugriff auf Knoten mit Antworten verweigern möchten, können Sie einen Inhaltstyp "Antwort" erstellen (der nur ein Klon des Standardartikels "Artikel" sein kann) und den Zugriff verweigern Achten Sie darauf, dass alle Knoten vom Typ "Antwort" nicht von der Rolle "Schüler" angezeigt werden.

Freie Radikale
quelle
1
Grundsätzlich möchte ich nicht zulassen, dass Benutzer einer bestimmten Rolle auf Knoten zugreifen. Ist dies zu schwierig zu implementieren?
Harshal