2010-07-26 170 views
1

我需要为不同的用户角色设置不同的“创建内容”权限。只有当特定角色没有获得“管理节点”权限时,这似乎才起作用。但是,没有此权限,角色无权控制节点是否已发布(我需要)或查看内容管理表(主页>管理>内容管理)。Drupal 6管理节点权限忽略内容类型权限

例如,我希望用户角色能够创建新消息并能够发布/取消发布它们,但不能创建新页面(但能够编辑现有页面)。

有没有人知道解决这个问题的方法?或者应该设置哪些权限?

回答

5

管理节点权限提供了比必要的更多访问权限,并且一些模块将它作为拐杖权限使用,因为它存在。

您可能想要关闭此权限并实施Override Node Options模块,该模块将允许用户发布取消发布的内容。这些可以与内容类型级别的创建/编辑/删除权限一起使用。

+0

感谢您的回复,但是您知道这是否允许这些用户访问内容管理页面吗?我被告知这是至关重要的。 – drmonkeyninja 2010-07-26 19:24:47

+2

哦,不。如果没有管理节点,则无法进入编辑。但是,您可以使用视图重新创建此页面,并将其放入管理内容(也包含暴露的滤镜)。这是我通常做的,所以客户没有太多访问权限。 – Kevin 2010-07-26 20:10:49

+0

此外,您需要确保输入过滤器设置正确。例如,完全HTML的节点,一旦失去管理节点,角色将需要访问该节点。 – Kevin 2010-07-27 00:10:08

0

查看此处提供的修补程序http://drupal.org/node/214190看起来Drupal 7可能允许在发布和全面管理之间进行权限分离,但现在您必须使用该修补程序。

0

我不想安装另一个模块,所以我把这个代码放在我们的一个自定义模块中的hook_init()。强制节点/添加页面,如果用户没有“创建*内容”权限,则拒绝访问。

$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(); 
    } 
    }