使用自定义模块,如何将权限添加到“权限”页面上的核心/贡献模块“组”中,而无需黑客入侵核心/贡献模块?

例子:
Add custom permission to core module

有帮助吗?

解决方案

如前所述,列出模块实施的许可并不是一个好主意。当用户将custom_module.module的实现的权限列出时,很难找到由user..module实现的权限。

如果您确实需要更改用于列出权限的订单(但是,这确实是必要的),那么我建议更改显示权限的列表:而不是列出它们在实施模块上的基础上,您可以根据不同的标准列出它们。
为此,您需要:

值得这样做吗?可能是,取决于您的客户。
考虑到Drupal 7的第一个正式版本已发布,Drupal 7的代码将会改变,因此可能不值得这样做。我宁愿尝试理解为什么客户要更改管理页面中列出的权限的顺序,并解释改变它是一个坏主意的原因;如果客户坚持需要为自己的目的实施代码,那么我会让他明白,当网站传递到Drupal 7时,应重写该代码,并且在可能的情况下不值得花时间进行此类更改利用同一时间实施真正必要的东西。

其他提示

没有hook_perm_alter,这些权限由模块分组,因此可能是在那些表格上使用hook_form_alter的方法(在这些表单上都有promermissrimed表格以及主要的表格;不确定他们是否使用相同的Form_ID )。

应仍然通过yourmodule_perm来定义权限,以便其他任何可以知道存在的权限。

就个人而言,我建议反对。允许您的权限按照位置,这样就没有“我安装了此模块,找不到许可!哦,为什么在另一个模块下获得许可?!”

有两种方法可以完成您的要求。

要么通过 hook_form_alter 或通过覆盖表单的主题函数: theme_user_admin_perm.

对于标准的贡献模块,这不是一个好主意,因为人们倾向于通过浏览其名称来寻找模块的许可。如果您的模块对标准用户权限流进行了一些更改,则显示添加的权限以及来自用户模块的默认权限可能不是一个坏主意。

许可以下: CC-BY-SA归因
scroll top