it-swarm.com.de

Wie können Benutzer unveröffentlichte Knoten anzeigen, die sie nicht erstellt haben?

Ich habe zwei Rollen erstellt: Editor und Reviewer.

Der Editor darf nur unveröffentlichte Knoten erstellen. Stattdessen muss der Prüfer diese Knoten veröffentlichen und anzeigen.

Wie kann ich Benutzer mit einer Rolle dazu bringen, unveröffentlichte Knoten zu sehen? Wenn ich die Berechtigung " Zugriff auf die Inhaltsübersichtsseite " festlege, können die Benutzer mit dieser Rolle alle Inhalte ändern, und ich möchte dies nicht.

Ich habe das Modul View unveröffentlicht ausprobiert, aber es hat ein Problem, wie in View unveröffentlicht bricht die von Views definierten Zugriffsregeln gemeldet.

Wie können Benutzer unveröffentlichte Knoten anzeigen, die sie nicht erstellt haben?

5
kb8

Lösung 1

Ich würde " die Berechtigungen 'Zugriff auf die Inhaltsübersichtsseite' festlegen ..." und dies mit der Verwendung des Moduls Regeln kombinieren, um " the Der Prüfer kann alle Inhalte ändern ". Lesen Sie weiter, um weitere Informationen dazu zu erhalten.

Erstellen Sie eine Regel (mit dem Modul Regeln ), dh eine Variation der Regel, die ich (im Exportformat) in meine Antwort auf die Frage " So beschränken Sie den Zugriff auf einen Knoten" aufgenommen habe) über Knoten/12 und erlauben den Zugriff über einen Pfad wie content/sometitle? ".

Dies sind die Änderungen an dieser Regel, damit sie auch in diesem Fall funktioniert:

  • Anhängen /edit am Ende überall gibt es schon so etwas wie node/% (Ich nehme an, wenn jemand versucht, einen Knoten zu bearbeiten, verwendet er einen Knoten mit /edit am Ende, obwohl jede Variation davon auf ähnliche Weise funktionieren sollte).
  • Fügen Sie eine Regel ' Bedingung' hinzu, um zu überprüfen, ob der aktuelle Benutzer, der versucht, eine solche Bearbeitung durchzuführen, NICHT die Rolle "Editor" hat.
  • Sie müssen wahrscheinlich auch eine andere Regelbedingung wie "Inhalt ist vom Typ" hinzufügen (d. H. "Artikel" in Ihrem Fall, etwas, das in Ihrer ursprünglichen Frage nicht erwähnt wird, aber in einem zusätzlichen Kommentar). Auf diese Weise gilt die Regelaktion NICHT für einen anderen Inhaltstyp.
  • Ändern Sie die "Nachricht" (in den Regeln ' Aktion') in etwas, das Ihren Anforderungen entspricht.
  • Ändern Sie die Regeln ' Aktion', um sie Ihren eigenen Anforderungen anzupassen, z. um eine Weiterleitung zu einer anderen Seite zu erteilen.

Beachten Sie, dass die Regeln Ereignis "Drupal wird initialisiert" ist ... Andernfalls sind Sie sicher "zu spät": Sie möchten nicht, dass die Regel nach der Bearbeitungssitzung ausgelöst wird wurde bereits gestartet, stattdessen sollte es vorher ausgelöst werden. Das heißt, wenn Drupal bereit ist, eine Bearbeitungssitzung zu starten.

Ich habe nicht experimentiert/versucht, diese Regel zu erstellen (= Variation der Regel in der Antwort, die ich oben erwähnt habe). Aber ziemlich sicher, dass es funktionieren wird.

Vielleicht möchten Sie auch meine Antwort auf " https://drupal.stackexchange.com/questions/182958/how-to-limit-appearance-settings-based-on-roles-permissions/182959#182959" lesen "für ein weiteres Beispiel einer Regel, die einige Techniken verwendet, die denen ähneln, die Sie hier benötigen.

Lösung 2

Lösung 1 sollte funktionieren, aber seine Schwäche ist, dass es auf "Bypass Content Access Control" basiert. Persönlich mag ich das auch nicht. Daher stimme ich Ihrem Kommentar dazu zu (ein Kommentar, der durch Moderation entfernt wurde). Aber hey, es ist "eine" Lösung, um "Ihre" (ursprüngliche) Frage zu beantworten.

Wenn es an mir wäre, eine "echte" Lösung für die Herausforderung zu implementieren, die Sie lösen möchten, würde ich mich für einen Plan b entscheiden, wie weiter unten beschrieben.

Schauen Sie sich meine Antworten auf eine dieser Fragen an:

Diese Antworten erklären, wie Sie einen Workflow implementieren können, der dem Gesuchten ziemlich (wenn auch nicht genau) ähnelt.

Dazu müssen Sie "nur" diese Module (und regulären Inhaltstypen) verwenden:

Bei Verwendung eines solchen Ansatzes sind keine Module wie " Webform " oder " Workbench " (Module, die normalerweise für diese Art von Workfows verwendet werden) erforderlich.

Wenn Sie mit Rules nicht vertraut sind, lesen Sie die Video-Tutorials Learn the Rules Framework . Und/oder ähnliches Satz von 8 Video-Tutorials über das Flag Modul.

Hinweis : Mit dieser "Lösung 2" habe ich auch eine Variation Ihrer Frage auf einer unserer eigenen Websites implementiert: Sie beginnt mit einem Problem (= Problem- oder Funktionsanforderung), entwickelt sich zu einem Rezept (= Anweisungen, wie um etwas zum Laufen zu bringen) und endet mit einer Softwarelösung (= ein Plugin oder so, während das Rezept Teil der Dokumentation wird). Node Convert und Content Access erledigen den größten Teil der Arbeit dafür und funktionieren sogar in D6 ...

3
Pierre.Vriens

Inhaltszugriff

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.

(enter image description here

2
No Sssweat

Sie können npublished_node_permissions verwenden, um detaillierte Berechtigungen für jede Rolle zu erstellen, die von einem Administrator unter admin/people/permissions Bearbeitet werden können, um unveröffentlichte Knoten pro Inhaltstyp anzuzeigen.

Es werden auch die Berechtigungen für Ansichten berücksichtigt, sodass beispielsweise die Ansicht admin/content Knoten gemäß den Rollenberechtigungen des Benutzers korrekt filtert.

HINWEIS: Es ist ein Fehler bei mehrsprachigen D8-Sites und -Ansichten bekannt, der zu unerwünschten Ergebnissen führen kann.

1
GiorgosK