Немедленный вход после успешной регистрации на сайте - PullRequest
4 голосов
/ 13 января 2012

У меня есть пользовательская регистрация BrowserView, где вам нужно расширить некоторые пользовательские данные (z3c.form с некоторыми полями, включая пароль). после успешного сохранения этих данных я хочу, чтобы пользователь автоматически вошел в систему и перенаправился на другую страницу сайта.

Заранее спасибо за подсказки

Ответы [ 2 ]

5 голосов
/ 17 января 2012

Итак, вот мое рабочее решение (спасибо Микко, который указал в правильном направлении):

  1. аутентифицируйте свои учетные данные в PAS

    member = portal.acl_users.authenticate(username, password, portal.REQUEST)
    
  2. для переадресации необходимо установить куки аутентификации. Вы можете сделать это с помощью updateCredentials (см. Pas / plugins / cookie_handler)

    if member:
        portal.acl_users.updateCredentials(portal.REQUEST, portal.REQUEST.RESPONSE, username, password)
    
  3. перенаправить на следующую страницу

    portal.REQUEST.RESPONSE.redirect(url)
    
0 голосов
/ 13 января 2012

Если вы хотите расширить пользовательские данные для новых участников и добавить новые поля в форму регистрации, вероятно, лучше всего расширить утилиту, которая предоставляет схему пользовательских данных по умолчанию, и делать это таким образом, чтобы вы легко подключались существующее регистрационное оборудование.

Существует пример продукта colle.examples.userdata , который вы можете использовать 0 и расширить для этой цели. Он также имеет хорошую документацию, которая объясняет вам все необходимые шаги.

http://plone.org/products/collective.examples.userdata

...