用途:本技能面向 Drupal 访问控制开发,帮助在模块中定义权限、为路由设置访问要求,并通过代码检查用户与实体访问权限。
主要能力:在 permissions.yml 中声明权限(如 administer my module、view my content,可加 restrict access);在路由 requirements 中使用 _permission、_role、_custom_access、_entity_access、_access 等检查方式;实现 AccessInterface 自定义访问检查器,返回 AccessResult 的 allowed、forbidden、neutral 及 allowedIf、forbiddenIf、allowedIfHasPermission 等结果,并配合 cachePerPermissions、cachePerUser、addCacheableDependency、setCacheMaxAge 处理缓存上下文;在代码中用 $node->access('view', $account)、$account->hasPermission、$account->hasRole 检查权限;通过 #[Hook('node_access')] 钩子实现实体访问控制。
使用方式:按示例结构编写 YAML 与 PHP 类,自定义检查器需声明命名空间并实现 access 方法;缓存相关性应与权限或实体依赖保持一致。
限制:资料仅提供示例代码与 API 用法,未说明版本兼容范围、性能影响或其他配置细节,暂未提供。