2014-01-13 3 views
0

Я уверен, что это невозможно, но мне было интересно, может ли кто-нибудь подумать о том, как анонимные пользователи могут редактировать представления веб-форм. Мы разрешаем пользователям подписываться на агент поиска работы, где они анонимно предоставляют свой адрес электронной почты, а затем представляют несколько предпочтений по типу рабочих мест, которые они ищут, а затем мы отправляем по электронной почте эти задания, которые доступны, когда они становятся доступными. Мы не хотим, чтобы эти пользователи должны были создать фактическую регистрацию Drupal и должны помнить другой пароль. Мы хотим, чтобы это было очень легко для них. Поэтому они могут анонимно представить форму, но проблема в том, хотят ли они вернуться и отредактировать свои предпочтения позднее, они не могут, потому что Drupal не знает, кто они. Я думал о возможности создания официальной регистрации пользователя за кулисами, используя свой адрес электронной почты и базовый пароль при отправке веб-формы, и когда они возвращаются на сайт, они предоставляют свой адрес электронной почты в отдельной форме, которую я создаю в настраиваемом модуле , тогда я могу выполнить поиск пользователей на основе адреса электронной почты и автоматически зарегистрировать их (если это возможно), а затем отправить их в веб-форму? Считаете ли вы, что это сработает, или это лучшее решение этого затруднительного положения?Drupal 7 Webform - разрешить анонимному пользователю редактировать предыдущую подачу

ответ

0

Я думаю, что ваше решение будет работать. В прошлом я делал что-то подобное.

Пользователи только что вошли в систему, посетив определенный URL-адрес, например/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

Высокий. Похоже, это сработает. БЛАГОДАРЮ. –

Смежные вопросы