it-swarm.com.de

Berechtigung "Unveröffentlichten Inhalt anzeigen" für Nichtautoren

Ich habe ein wenig gegoogelt, um zu sehen, ob es eine Möglichkeit auf Berechtigungsstufe gibt, einem angemeldeten (aber nicht administrativen) Benutzer zu erlauben, unveröffentlichten Inhalt zu sehen (markiert mit der CSS-Knoten-unveröffentlichten Klasse). Dies scheint für Drupal 8) geplant zu sein. Aber vielleicht war jemand klug genug, um eine Problemumgehung durchzuführen?

Ich habe eine Rolle namens Content Editor, die alle unveröffentlichten Inhalte sehen können sollten, unabhängig davon, ob sie der Autor waren oder nicht.

17
Artur

Wenn Sie ein sehr kleines benutzerdefiniertes Modul schreiben möchten, können Sie dazu eine Kombination aus hook_permission() und hook_node_access() verwenden:

function MYMODULE_permission() {
  return array(
    'unconditionally view unpublished content' => array(
      'title' => t('Unconditionally View Unpublished Content'),
      'restrict access' => TRUE
    )
  );
}

function MYMODULE_node_access($node, $op, $account) {
  // We're only bothered about the 'view' operation at the moment
  if ($op == 'view') {
    // If the user has access to our new permission, let 'em at it
    if (user_access('unconditionally view unpublished content', $account)) {
      return NODE_ACCESS_ALLOW;
    }
  }

  // For everything else let the system decide.
  return NODE_ACCESS_IGNORE;
}

Jede Rolle, der Sie die neue Berechtigung zuweisen, sollte nun in der Lage sein, jeden Knoten anzuzeigen, unabhängig davon, ob er veröffentlicht wurde oder nicht.

17
Clive

Ich habe zuerst den obigen Code ausprobiert, was großartig ist. Nachdem einer Rolle Rechte für unveröffentlichten Inhalt zugewiesen wurden, konnte diese Rolle unveröffentlichten Inhalt in Ansichten immer noch nicht sehen. Dies kann für einige Editorenrollen sehr nützlich sein ...

Ich habe es mit dem Modul view_unpublished gelöst.

6
Kojo

Ich benutze dafür das Modul Revisioning . Bei der Installation werden die folgenden Berechtigungen für jeden Inhaltstyp erstellt:

  • Inhaltstyp : Revisionen des eigenen Inhalts anzeigen

  • Inhaltstyp : Überarbeitungen aller Inhalte anzeigen

  • Inhaltstyp : Veröffentlichen Sie Revisionen des eigenen Inhalts

  • Inhaltstyp : Veröffentlichen Sie Revisionen von Inhalten

Indem meine Redakteure die Erlaubnis erhalten, Revisionen von Inhalten anderer Personen anzuzeigen, können sie auf alle Knoten zugreifen und diese veröffentlichen, die von anderen Benutzern erstellt oder überarbeitet wurden.

3
Patrick Kenny

Das habe ich letztendlich gemacht ...

Es wird für jeden Knotentyp eine Berechtigung zum Anzeigen von Inhalten erstellt. Es ist so ziemlich das Gleiche wie das Knotenmodul, fügt jedoch die zusätzliche Option hinzu.

/**
 * Implements hook_permission().
 */
function MODULE_permission() {
  $perms = array();
  foreach (node_permissions_get_configured_types() as $type) {
    $info = node_type_get_type($type);
    $perms += array(
      "view $type content" => array(
        'title' => t('%type_name: View any content', array('%type_name' => $info->name)),
      )
    );
  }
  return $perms;
}

/**
 * Implements hook_node_access().
 */
function MODULE_node_access($node, $op, $account) {
  $type = is_string($node) ? $node : $node->type;

  if (in_array($type, node_permissions_get_configured_types())) {
    if ($op == 'view' && user_access('view ' . $type . ' content', $account)) {
      return NODE_ACCESS_ALLOW;
    }
  }

  return NODE_ACCESS_IGNORE;
}
1
MTecknology

Dafür gibt es ein Modul für Drupal 7 und Drupal 8):

View_unpublished

Mit diesem Modul können Sie bestimmten Benutzerrollen Zugriff gewähren, um unveröffentlichte Knoten eines bestimmten Typs anzuzeigen. Die Zugangskontrolle ist in dieser Hinsicht sehr detailliert.

1
JeroenT

Wenn Sie nur den Inhalt in einer Ansicht anzeigen müssen, deaktivieren Sie SQL rewriting im Query Settings unter Other in der Views-Benutzeroberfläche.

Dies funktioniert für mich, da ich nur möchte, dass Benutzer unveröffentlichte Inhalte entfernen können.

0
Niall Murphy

Unter Bezugnahme auf das offizielle Administrationshandbuch: https://drupal.org/node/1106606 Das von Kojo vorgeschlagene Modul view_unpublished ist eine schnelle und einfache Lösung.

0
xaa

Eine einfache, vernünftige Lösung besteht darin, das Flag "Auf Startseite hochstufen" auf Knoten zu verwenden.

Wenn Sie dieses Flag nicht anderweitig verwenden können, filtern Sie Ihre Ansichten auf "Zur Startseite befördert". Ihre Inhaltseditoren können den Knoten bearbeiten, bevor er hochgestuft wird (über einen direkten Link). Möglicherweise wird es den Besuchern der Website jedoch noch nicht angezeigt.

Wir haben diese Inspiration von Youtube's "nicht gelisteten Video" -Ansatz erhalten.

0
user18099