这最初是为了解决我在 Drupal 网站上不断遇到的一个问题。管理员需要选择性地访问用户电子邮件。这个简单的修复已经发展成为一个被数百个网站使用的模块。看到它在 Drupal 8、9 和 10 中不断发展,真是太棒了。
问题
Drupal 8 到 9.1 没有内置方法可以让非管理员角色选择性地查看用户电子邮件地址。网站需要版主或支持人员在不授予完全管理员权限的情况下查看电子邮件。唯一的选择是自定义代码或过度共享。
方法
一个小的 Drupal 模块,它添加了一个权限并挂钩 hook_entity_field_access(),以便在访问检查时过滤电子邮件字段的可见性。没有配置 UI,没有模式,没有意外行为。可以通过 Drupal 原生的 RBAC 为每个角色分配权限。
重要决策
- 优先考虑权限。利用 Drupal 现有的基于角色的访问控制,因此管理员不必学习另一个配置界面。
- 字段级别访问挂钩。在实体和字段层进行过滤,因此规则在 REST、GraphQL、管理 UI 和用户页面之间统一适用。
- 零仪式。一个权限,一个挂钩,没有设置表单。该模块足够小,可以在几分钟内进行审计。
状态
功能已合并到 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.