2010-07-27 49 views
1

我有一个在drupal中的自定义内容类型,我甚至允许匿名用户创建。我还希望让他们能够在他们首次发布后重新编辑他们的作品,但这是挑战。允许匿名用户编辑他们的内容? Drupal模块,想法

由于它们是“匿名”的,我猜想drupal权限系统无法将内容与最初创建它的用户绑定。

这是否离开我?我正在考虑浏览器cookies或其他方面的内容?我不确定。

是否有一个现有的模块可以帮助或创建一个新的?

回答

2

在Drupal或任何系统真的..它最好依靠一个关键和经验,它更容易让他们注册。在Drupal中,如果一个人是匿名的,他们就是UID 0,并且没有其他任何东西被保存。另一位用户在另一篇文章中指出,Drupal不会跟踪匿名用户对象的会话ID,因此您必须使用session_id()之类的东西。

我可以看到为什么你想要发布一个小屏障,但它可能是后来的管理噩梦。

+0

我明白了为什么现在更多的工作,但你能否详细说明为什么这是一个管理恶梦“以后”? – drupal 2010-07-28 01:08:37

4

你可以在一个cookie中存储一个ID,但是如果用户删除它,将无法再识别它们。您也可以保留IP地址的记录,但这也不是100%可靠的。

唯一可靠的方法是拥有某种登录系统。您可以将内容编辑作为功能提供给愿意注册的人。

+0

我大体上同意这个答案,但是认为这个网站我们是在对上的。您无需注册即可编辑您的问题和答案。 – stacker 2010-07-28 00:12:45

+0

是的,但开箱即用,Drupal无法像SO一样使用用户。所以提前想到了这一点。 – Kevin 2010-07-28 00:36:33

+0

,他们将使用Cookie和/或IP地址检查的组合。删除你的cookies并通过匿名冲浪网站进入,看看你是否仍然可以在没有登录的情况下编辑你的帖子;) – 2010-07-28 01:03:16

2

而不是试图保留一个会话(如果你问我,它会破坏匿名的目的),那么让用户在创建时创建一个密码怎么办?然后,添加一个验证处理程序,检查它是否在节点不是新的时提供正确的密码。

您可以使用CCK Password Field模块为密码添加CCK字段,或者使用hook_form_alter直接修改node_form并在自定义模块中提供您自己的CRUD。哎呀,匿名编辑访问可能不需要那么安全,你可以用CCK文本字段来存储密码。

+0

我不认为它完全违背了匿名的目的。对于用户来说,匿名意味着我不想打扰注册和确认我的电子邮件。 Drupal决定给这个匿名者打电话。他们本可以称它没有注册,这将是同样的事情。我想为那些懒惰的用户提供编辑其内容的能力。当然,我给他们的保证非常小,因为他们给了我一个小小的承诺。 – drupal 2010-07-28 01:32:26

+0

要将匿名定义为懒人,匿名是一个非常狭义的定义。有几种不同的情况仍然会被视为匿名使用,但不会保留会话:使用匿名者或从不同位置访问网站以命名两个。这就是为什么Drupal将匿名视为一个单一用户的原因:如果您正在跟踪会话,它不再是匿名的。强制注册或执行类似我建议的操作,会话或用户跟踪显式,稳定,并且不会将“匿名”一词留给辩论。 – 2010-07-28 01:50:31

1

虽然这是一个古老的线程,加上我知道这是什么:

节点授权链接看起来是一个有趣的模块,只是这样做。它创建授权(查看/编辑/删除)密钥,通过电子邮件将密钥以电子邮件的形式发送给匿名用户作为链接。

http://drupal.org/project/node_authlink

相关问题