it-swarm.com.de

Wie lege ich Zugriffsberechtigungen pro Feld in Drupal 8) fest?

Was ich tun muss

Ich habe einige Benutzerkontofelder, die nur für Administratoren bestimmt sind (Lesen/Schreiben/Bearbeiten). Zum Beispiel die zur Registrierung verwendete IP-Adresse.

Daher möchte ich den Zugriff auf Administratoren beschränken.

Aktueller Status der Feldberechtigungen in Drupal 8 (Stand 19. Februar 2016)

5
Patrick Kenny

Sie stecken im Code fest, aber das Modul Beispiele enthält ein field_permissions Beispielmodul.

9
Patrick Kenny

Dies ist ein alter Thread, aber als ich auf dasselbe Problem stieß und kein schweres Modul für wenige Felder verwenden wollte, stieß ich auf diesen Artikel (nach diesem, also dachte ich, ich könnte ihn teilen): https://atendesigngroup.com/blog/form-and-view-modes-vs-field-access-drupal-8

In anderen Beispielen kümmert sich dieses um den Cache-Kontext.

Achten Sie nur auf die Kommentare unter dem Artikel und einige andere kleine Fehler im Codebeispiel. Der korrekte und funktionierende Code sieht folgendermaßen aus:

function YOUR_MODULE_NAME_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
  $result = AccessResult::neutral();
  if ($field_definition->getName() == 'field_we_care_about') {
    if ($operation == 'edit' && !in_array('administrator', $account->getRoles())) {
      $result = AccessResult::forbidden();
    }
  }
  return $result->addCacheContexts(['user.roles:administrator']);
}
7
Clauce

Field Permissions hat jetzt eine Beta-Version für D8. Hier können Sie Berechtigungen pro Feld festlegen.

4
Sinan Erdem