在模块安装时创建权限并为其设置角色


Create a permission AND set a role to it on module install

我已经找了大约一个小时了,要么我找不到,要么没有人问这个问题——这让我觉得很奇怪。

我希望我的模块在安装时创建一个新角色,创建新的权限,并将特定的角色分配给新的权限。我似乎被最后一部分所困扰。

我意识到,按照惯例,权限是在hook_permissions()中设置的,并且我假设我的站点行为在创建这些权限之前调用hook_install()(这是完全有意义的)。所以,我的问题很可能只是:

是否有办法在hook_install()/hook_permissions()之外创建权限?我似乎找不到任何这样的例子,或者在模块安装之前不存在的设置权限的任何例子。

Features模块可以为您解决这个问题,因为您可以导出角色和分配给这些角色的权限。

实际创建具有权限的角色发生在启用模块时,而不是在安装模块时,这实际上是相同的事情。Features允许您导出很多其他的东西,并且是一个非常方便的模块。