def resend_confirm_email(): if current_user.confirmed: return redirect(url_for('main.index')) token = generate_token(user=current_user, operation=Operations.CONFIRM) send_confirm_email(user=current_user, token=token) flash('New email sent, check your inbox.', 'info') return redirect(url_for('main.index'))
def change_email_request(): form = ChangeEmailForm() if form.validate_on_submit(): new_email = form.email.data.lower() token = generate_token(user=current_user, operation=Operations.CHANGE_EMAIL, new_email=new_email) send_change_email_email(user=current_user, token=token, to=new_email) flash('Confirm email sent, check your inbox.', 'info') return redirect(url_for('user.index', username=current_user.username)) return render_template('user/settings/change_email.html', form=form)
def forget_password(): if current_user.is_authenticated: return redirect(url_for('main.index')) form = ForgetPasswordForm() if form.validate_on_submit(): email = form.email.data user = User.query.filter(User.email == email).first() if user: token = generate_token(user=user, operation=Operations.RESET_PASSWORD) send_reset_password_email(user=user, token=token) flash('Password reset email sent, check your inbox.', 'info') return redirect(url_for('auth.login')) flash('Invalid email.', 'warning') return redirect(url_for('auth.forget_password')) return render_template('auth/forget_password.html', form=form)
def register(): if current_user.is_authenticated: redirect(url_for('main.index')) form = RegisterForm() if form.validate_on_submit(): name = form.name.data username = form.username.data email = form.email.data.lower() password = form.password.data user = User(name=name, username=username, email=email) user.set_password(password) db.session.add(user) db.session.commit() token = generate_token(user=user, operation=Operations.CONFIRM) send_confirm_email(user=user, token=token) flash('Confirm email sent, check your inbox.', 'info') return render_template('auth/register.html', form=form)
def test_change_email(self): user = User.query.get(2) self.assertEqual(user.email, '*****@*****.**') token = generate_token(user=user, operation=Operations.CHANGE_EMAIL, new_email='*****@*****.**') self.login() response = self.client.get(url_for('user.change_email', token=token), follow_redirects=True) data = response.get_data(as_text=True) self.assertIn('Email updated.', data) self.assertEqual(user.email, '*****@*****.**') response = self.client.get(url_for('user.change_email', token='bad'), follow_redirects=True) data = response.get_data(as_text=True) self.assertIn('Invalid or expired token.', data)