Open SourceFeatured

View User Email

Модуль Drupal, созданный для решения распространенной проблемы администраторов.

DrupalPHPAccess Control

Это началось как решение проблемы, с которой я постоянно сталкивался на сайтах Drupal. Администраторам требовался выборочный доступ к электронной почте пользователей. То, что начиналось как простое исправление, превратилось в модуль, используемый сотнями сайтов. Было здорово наблюдать за его развитием через Drupal 8, 9 и 10.

Проблема

В Drupal 8 до версии 9.1 не было встроенного способа выборочно разрешать неадминистративным ролям видеть адреса электронной почты пользователей. Сайтам требовались модераторы или сотрудники поддержки для просмотра электронной почты без предоставления полных административных прав. Единственными вариантами были пользовательский код или чрезмерное предоставление прав.

Подход

Небольшой модуль Drupal, который добавляет одно разрешение и перехватывает hook_entity_field_access() для фильтрации видимости поля электронной почты во время проверки доступа. Без пользовательского интерфейса конфигурации, без схемы, без неожиданного поведения. Разрешение может быть назначено каждой роли через нативную систему управления доступом на основе ролей (RBAC) Drupal.

Заметные решения

  • Приоритет разрешений. Использует существующий контроль доступа на основе ролей Drupal, поэтому администраторам не нужно изучать другую поверхность конфигурации.
  • Перехват доступа на уровне поля. Фильтрует на уровне сущности и поля, поэтому правило применяется единообразно ко всем REST, GraphQL, административному интерфейсу и страницам пользователей.
  • Минимальные действия. Одно разрешение, один перехват, без формы настроек. Модуль достаточно мал, чтобы его можно было проверить за несколько минут.

Статус

Функциональность встроена в ядро Drupal начиная с версии 9.2, что является наилучшим исходом, на который может надеяться дополнение. Все еще поддерживается для сайтов на Drupal 8 и 9.0 до 9.1. Сотни сайтов приняли его до того, как ядро догнало. Опубликовано на Drupal.org.

Want similar work for your team?

AI-native senior engineering for AI, cloud, and web. Open to consulting engagements and full-time roles.