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}
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
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}