Немедленный вход в систему после успешной регистрации на сайте plone

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

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


person petschki    schedule 13.01.2012    source источник
comment
Вот советы, как выполнить вход в код Python: .org/en/latest/sessions/login.html   -  person Mikko Ohtamaa    schedule 13.01.2012


Ответы (2)


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

  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)
    
person petschki    schedule 17.01.2012

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

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

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

person JC Brand    schedule 13.01.2012
comment
Печки просят не об этом; он спрашивает, как после успешной регистрации пользователь может сразу войти в систему. - person Martijn Pieters; 14.01.2012
comment
Извините, но я не согласен с отрицательным голосованием. Правило stackoverflow для отрицательного голосования гласит: «Используйте свои отрицательные голоса всякий раз, когда вы сталкиваетесь с вопиюще небрежным сообщением, не затраченным усилий, или ответом, который явно и, возможно, опасно неверен». Непонимание вопроса не кажется мне ни небрежным, ни (в данном случае) опасно. Комментария будет достаточно. - person Giacomo Spettoli; 17.01.2012