我需要为不同的用户角色设置不同的“创建内容”权限。仅当特定角色未被授予“管理节点”权限时,此操作才会起作用。但是,如果没有此权限,该角色就没有权限控制是否发布节点(这是我所需要的),也没有权限查看内容管理表(Home > Administer > content management)。
例如,我希望用户角色能够创建新的新闻项目,并且能够发布/取消发布它们,但不能创建新页面(但能够编辑现有页面)。
有谁知道解决这个问题的方法吗?或者应该设置哪些权限?
发布于 2010-07-27 03:19:42
管理节点权限提供了比必要的更多的访问权限,一些模块将其用作拐杖权限,因为它存在。
您可能希望关闭此权限并实现Override Node Options模块,该模块将允许用户发布未发布的内容。这些权限可以与内容类型级别的创建/编辑/删除权限一起使用。
发布于 2010-07-27 01:06:07
请参阅此处提供的补丁http://drupal.org/node/214190看起来Drupal7可能允许在发布和全面管理之间实现权限分离,但现在您必须使用补丁。
发布于 2011-06-16 01:38:27
我不想安装另一个模块,所以我把这段代码放在hook_init()中的一个自定义模块中。强制执行node/add页面,如果用户没有"create * content“权限,则拒绝访问。
$arg = arg();
// Quick hack to enforce node creation permissions.
if ( $arg[0] == 'node'
&& !empty($arg[1])
&& $arg[1] == 'add'
&& !empty($arg[2])
) {
$arg[2] = str_replace('-', '_', $arg[2]);
if (!user_access('create ' . $arg[2] . ' content')) {
drupal_access_denied();
}
}
https://stackoverflow.com/questions/3336280
复制相似问题