Ich verwende Drupal 7 und habe einen neuen Inhaltstyp mit dem Namen "eBook" und eine neue Rolle mit dem Namen "MonthlySubscriber" erstellt. Meine Absicht ist es, nur Benutzern mit dem "MonthlySubscriber" zu erlauben, die "eBook" -Knoten anzuzeigen. Als ich mir die Berechtigungseinstellungen für eine Rolle ansah, sah ich die Kontrollkästchen, mit denen Knoten dieses Inhaltstyps erstellt, bearbeitet und gelöscht werden können, aber es gibt keine Kontrollkästchen zum Anzeigen von Knoten.
Wie beschränke ich die Benutzer, die "eBook" -Knoten anzeigen können, auf die Benutzer mit der Rolle "MonthlySubscriber"?
Hier ist eine einfache Möglichkeit, Knotenseiten (Node / NID) vor nicht privilegierten Benutzern zu schützen.
quelle
hook_node_access
nichts funktioniert, das Knoten "auflistet", wie z. B. eine Ansicht. Sie können also den Ansichtszugriff in einschränken, eine Ansichts-hook_node_access
oder benutzerdefinierte Knotenabfrage zeigt dem Benutzer diesen Knoten jedoch möglicherweise weiterhin an.hook_node_access
ist nützlicher für die redaktionelle Kontrolle, zum Steuern von Erstellungs- / Aktualisierungs- / LöschvorgängenContent Access funktionierte bei meiner Drupal 7-Installation nicht, daher habe ich stattdessen die Node View-Berechtigungen verwendet.
quelle
Versuchen Sie für Drupal 7 Folgendes: Zugriff nach Begriff
quelle
Die oben von ya.teck gepostete hook_menu_alter-Lösung funktioniert zwar, steht jedoch in Konflikt mit dem standardmäßigen hook_node_access in seinem Funktionsnamen. das hook_menu_alter ist in diesem fall nicht erforderlich, und so ist die antwort von Denis oben meiner meinung nach genauer und der richtige weg. Wenn Sie das menu_item so ändern, wie es getan wurde, könnte das erste Beispiel, auf das verwiesen wird, von einem anderen Modul weiter unten in der Pipe gelöscht werden.
quelle
Ich habe ein Code-Snippet aus der D7-API-Dokumentation für den Hook "hook_node_access" verwendet .
Dieser Code gewährt Benutzern mit der Berechtigung "E-Book anzeigen" Zugriff auf das Anzeigen von E-Book-Inhalten.
Sie benötigen eine neue Berechtigung, um den Zugriff durch Implementieren von hook_permission () zu steuern.
Durch die Implementierung von hook_node_access () kann Drupal den Zugriff auf den Knoten gewähren oder verweigern.
Andere Berechtigungen (Bearbeiten, Löschen usw.) können über die normalen Drupal-Berechtigungen abgewickelt werden.
Optional können Sie den Inhalt aus der Administratorübersicht entfernen, indem Sie hook_query_TAG_NAME_alter implementieren.
quelle
Ich benutze das Modul Node View Permissions . Es ist einfacher als das Content Access-Modul.
Wie in D6 werden jedem von Ihnen ausgewählten Inhaltstyp die Berechtigungen "Beliebigen Inhalt anzeigen" und "Eigenen Inhalt anzeigen" hinzugefügt.
Schritte zum folgen:
/admin/config/content/node-view-permissions
und wählen Sie die Inhaltstypen aus, auf die Sie den Zugriff beschränken möchten.Wechseln Sie dann zu
/admin/people/permissions#module-node_view_permissions
und wählen Sie die Rollen aus, für die Sie den Inhalt anzeigen möchten. Berechtigungen speichern.Getan!
quelle