限制Drupal中匿名用户的页面访问权限

时间:2011-02-24 14:54:51

标签: drupal

非常简单的问题,我一直坚持。

我正在制作一个非常简单的'分类'网站;我有一个“分类”类型的内容类型,我只想为注册用户访问该内容类型;我编辑了权限,因此只有“经过身份验证”的用户才能“创建分类”并创建了“节点/添加/分类”的菜单链接。

问题是,当匿名时,我没有看到“创建分类”菜单链接(右边,因为用户没有权利'创建'一个),但我仍然希望这个菜单项出现,我正在重定向到我的自定义403页面,上面写着'嘿,你必须先创建一个帐户才能发布分类'。

实现这一目标的最佳“优雅”方式是什么?

3 个答案:

答案 0 :(得分:2)

我的解决方案是创建一个新页面(通过hook_menu),比如“分类/添加”。在此页面中,检查用户的id =如果为0,则显示关于加入网站的友好消息。

如果它们不为0,则追加/返回node_add('classified')。 (请注意,node_add位于node.pages.inc中,因此您需要在需要时包含该内容。)

答案 1 :(得分:1)

尝试手动创建新菜单项(管理员>网站构建>菜单> 菜单名称>添加项目),以指向节点/添加/分类网址。

更新:您可以尝试链接到 / node / 403 ?destination = node / add / classified(其中 node / 403 是您的自定义403错误页面)。< / p>

答案 2 :(得分:1)

我实际上对分类广告系统做了同样的事情。创建绝对URL作为菜单项对我来说非常简单。

例如,不要将菜单项路径设置为“node / add / classified”,而是将路径设置为“http://example.com/node/add/classified”。当您在注销时单击菜单项(作为匿名)时,Drupal将尝试转到创建分类页面,但将无法通过权限检查并重定向到您的自定义403页面。