我是drupal的新手,我创建了一个新的内容类型'new',我有两种类型的角色编辑和经理。编辑器必须能够将内容添加到新的内容类型中,但经理不会。我在模块代码中指定了
function new_access($op, $node, $account) {
switch ($op) {
case 'create':
return user_access('create NEW', $account);
}
}
现在编辑获得了此权限并且他可以添加内容,但是当管理登录时也查看新内容类型但菜单上的clciking将显示“拒绝访问”
我希望以这样的方式制作此内容类型:当管理登录时,内容类型“新建”不得位于创建内容链接
请帮助
谢谢
答案 0 :(得分:1)
如果您通过Drupal界面创建了新的内容类型,而不是通过自定义模块(也就是说,您转到内容管理 - > 内容类型并将其添加到那里),限制它更容易。
只需转到用户管理 - > 权限,在节点标题下查看,并取消选中编辑角色下的创建新内容。
如果您通过使用自定义模块创建了内容类型,则仍然可以转到权限页面,但在自定义模块中,您需要实现hook_perm()
除了hook_access()
:
function new_perm() {
return array('create NEW');
}
然后,您可以使用user_access('create NEW', $account);
来检查create NEW
权限。