示例#1
0
文件: viewsUser.py 项目: tynsh/muesli
def changeEmail(request):
    form = UserChangeEmail(request, request.user)
    if request.method == 'POST' and form.processPostData(request.POST):
        email = form['email']
        if request.db.query(
                models.User).filter(models.User.email == email).count() > 0:
            request.session.flash(
                u'Die Adresse "%s" kann nicht verwendet werden' % email,
                queue='messages')
        else:
            confirmation = models.Confirmation()
            confirmation.source = u'user/change_email'
            confirmation.user = request.user
            confirmation.what = email
            body = u"""
Hallo!

Sie haben bei MÜSLI Ihre E-Mail-Adresse geändert.

Neue Adresse: %s

Um die Änderung zu bestätigen, gehen Sie bitte auf die Seite

%s

Möchten Sie die Adresse doch nicht ändern, so ignorieren Sie diese Mail bitte
einfach.

Mit freundlichen Grüßen,
  Das MÜSLI-Team
			""" % (email,
            request.route_url('user_confirm_email',
                            confirmation=confirmation.hash))
            message = Message(
                subject=u'MÜSLI: E-Mail-Adresse ändern',
                sender=(u'%s <%s>' %
                        (request.config['contact']['name'],
                         request.config['contact']['email'])).encode('utf-8'),
                to=[email],
                body=body)
            # As we are not using transactions,
            # we send the mail immediately.
            request.db.add(confirmation)
            request.db.commit()
            sendMail(message)
            #registerCommon(request, form)
            return HTTPFound(location=request.route_url(
                'user_change_email_wait_for_confirmation'))
    return {'form': form}
示例#2
0
def registerCommon(request, form):
    mails = request.db.query(models.User.email).all()
    mails = [m.email.lower() for m in mails]
    if form['email'].lower() in mails:
        request.session.flash('Ein Benutzer mit dieser E-Mail-Adresse existiert bereits.', queue='messages')
        return False
    else:
        user = models.User()
        form.obj = user
        form.saveValues()
        request.db.add(user)
        confirmation = models.Confirmation()
        confirmation.source = 'user/register'
        confirmation.user = user
        request.db.add(confirmation)
        request.db.commit()
        send_confirmation_mail(request, user, confirmation)
        return True
示例#3
0
文件: viewsUser.py 项目: tynsh/muesli
def resetPassword(request):
    form = UserResetPassword(request)
    if request.method == 'POST' and form.processPostData(request.POST):
        user = request.db.query(
            models.User).filter(models.User.email == form['email']).first()
        if not user:
            request.session.flash(u'User not found', queue='errors')
        else:
            confirmation = models.Confirmation()
            confirmation.user = user
            confirmation.source = u'user/reset_password'
            body = u"""
Hallo!

Um Ihr Passwort bei MÜSLI zurückzusetzen besuchen Sie bitte die Seite

%s

Haben Sie nicht selbst versucht Ihr Passwort zurückzusetzen, ignorieren Sie
diese Mail bitte einfach.

Mit freundlichen Grüßen,
  Das MÜSLI-Team

			""" % (request.route_url('user_reset_password3',
                            confirmation=confirmation.hash))
            message = Message(
                subject=u'MÜSLI: Passwort zurücksetzen',
                sender=(u'%s <%s>' %
                        (request.config['contact']['name'],
                         request.config['contact']['email'])).encode('utf-8'),
                to=[user.email],
                body=body)
            # As we are not using transactions,
            # we send the mail immediately.
            request.db.add(confirmation)
            request.db.commit()
            sendMail(message)
            return HTTPFound(
                location=request.route_url('user_reset_password2'))
    return {'form': form}