在 Drupal 模块开发中,permissions.yml
文件用于定义模块的权限。这个文件是 Drupal 8 和更高版本中的新特性,用于替代 Drupal 7 中在模块的 .module 文件中实现 hook_permission() 的做法。
在 permissions.yml
文件中,可以为你开发的模块定义一组权限,每个权限都有一个机器可读的 ID 和一个对用户友好的标题。还可以为每个权限提供一个描述,以帮助管理员了解这个权限的作用。还可以指定一个权限是否应该被授予给新注册的用户。
permissions.yml
文件的示例:
administer my module:
title: 'Administer my module'
description: 'Perform administration tasks for my module.'
restrict access: true
view my module content:
title: 'View my module content'
description: 'See content created by my module.'
在这个例子中,定义了两个权限:administer my module 和 view my module content。administer my module 权限有一个 restrict access 属性,设置为 true,这意味着只有具有特殊权限的用户(通常是管理员)才能获得这个权限。
定义了这些权限后,就可以在你的模块中使用Drupal::currentUser()->hasPermission()
方法来检查当前用户是否具有某个权限,以此来决定是否允许用户执行某些操作。
例如:
if (Drupal::currentUser()->hasPermission('view my module content')) {
//用户具有view my module content权限
}else{
//用户不具有view my module content权限
}