Ich habe eine benutzerdefinierte Entität. In ist ein Zugriffsrückruf definiert, der hook_entity_info()
aufgerufen wird, wenn ich auf die Entität zugreife. Auch in Ansichten, in denen ich gerenderte Objekte anzeigen möchte, wird das Objekt nur angezeigt, wenn der Benutzer das Objekt sehen darf.
Wenn ich jedoch die Ansicht so ändere, dass "Felder" anstelle von "gerenderten Entitäten" angezeigt werden, wird der Zugriffsrückruf nicht mehr aufgerufen, und Benutzer können alle Felder (und Eigenschaften) der Entität unabhängig von Berechtigungen anzeigen. Wenn Sie sich die ausgeführte Abfrage ansehen, ist dies sinnvoll, die Feldwerte werden zusammengefügt und die Entität wird nie wirklich geladen.
Wie sollte man also den Entitätszugriff für Ansichten implementieren, wenn Felder angezeigt werden (in Drupal 7)?
Ich habe festgestellt, wie bei Verwendung von hook_field_access in Ansichten nach Entitätstypen gesucht werden kann. Ich gehe jedoch davon aus, dass dies nur für verknüpfte Felder und nicht für Eigenschaften von Basisentitäten funktioniert, sodass dies nur ein Teil einer Lösung wäre.
nodes
Drupal betrifft .