2014-01-13 44 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

真棒。這聽起來像會起作用。謝謝。 –