2014-01-13 111 views
0

我敢肯定,这是不可能的,但我想知道如果任何人都可以想办法让匿名用户编辑Webform提交。我们允许用户注册一个求职代理,他们匿名提供他们的电子邮件地址,然后针对他们正在寻找的工作类型提交一些偏好设置,然后通过电子邮件向他们发送可用时提供的工作。我们不希望这些用户必须创建实际的Drupal注册并且必须记住另一个密码。我们希望它对他们来说非常简单。所以他们可以匿名提交表单,但问题是如果他们想在以后回来编辑他们的偏好,他们不能,因为Drupal不知道他们是谁。我想在使用他们的电子邮件地址和基本密码在幕后创建一个官方用户注册,当他们提交网络表单,当他们回到网站时,他们提供他们的电子邮件地址在我创建一个自定义模块,那么我可以根据电子邮件地址进行用户查找并自动将它们登录(如果甚至可能的话),然后将它们发送到webform?你认为这会起作用吗?还是他们更好地解决这个困境?Drupal 7 Webform - 允许匿名用户编辑以前的提交

回答

0

我认为你的解决方案将工作。我过去做过类似的事情。

用户通过访问特定网址(例如/ login/USER_NAME)刚登录。然后,您可以发送带有此链接的电子邮件,并且只要他们访问该网站就会自动登录。

要创建用户帐户中使用这样的事情:

$new_user = array(
    'name' => $name, // this could also just be the email address if you are not collecting a name 
    'pass' => 'password', // hardcoded password - same for every user 
    'mail' => $email, 
    'status' => 1, 
    'init' => $email, 
); 

user_save('', $new_user); 

然后登录他们可以使用:

if ($uid = user_authenticate($username, 'password')) { 
    global $user; 
    $user = user_load($uid); 

    $login_array = array ('name' => $username); 
    user_login_finalize($login_array); 
} 
+0

真棒。这听起来像会起作用。谢谢。 –