def register(): """Renders the registration form and registers user on submit. Note that by default users are inactive and need to be activated inside flask_admin.""" form = RegisterForm() if request.method == 'POST': if form.validate_on_submit(): # Registers user new_user = User( username=form.username.data, email=form.email.data ) # Hash password new_user.set_password(form.password.data) try: db.session.add(new_user) db.session.commit() flash('Registration successful. Please sign in.') return redirect(url_for('users.login')) except IntegrityError: flash('That username and/or email is already in use.', 'error') return render_template('users/register.html', form=form) else: flash_errors(form) return render_template('users/register.html', form=form)
def register(): def check(): email_exists = User.query.filter(db.func.lower(User.email) == form.email.data.lower()).first() if email_exists: flash('Пользователь с такой электронной почтой уже зарегистрирован.', 'danger') return False return True user = User() form = forms.RegisterForm(obj=user) if form.validate_on_submit() and check(): if form.password.data != form.password2.data: flash('Введённые пароли не совпадают.') else: user.email = form.email.data user.name = form.name.data user.password_hash = User.hash_password(form.password.data) user.roles = 0 db.session.add(user) db.session.commit() return render_template('users/after_register.html', email=user.email) flash_errors(form) return render_template('users/register.html', form=form)
def change_password(): form = PasswordForm() if form.validate_on_submit(): current_user.set_password(form.password.data) current_user.save() return redirect(url_for('user.profile')) else: flash_errors(form) return render_extensions('users/change_password.html', resetform=form)
def change_username(): form = UsernameForm() if form.validate_on_submit(): current_user.username = form.username.data current_user.save() return redirect(url_for('user.profile')) else: flash_errors(form) return render_extensions('users/change_username.html', resetform=form)
def register(): """Register new user.""" form = RegisterForm(request.form, csrf_enabled=False) if form.validate_on_submit(): User.create(username=form.username.data, email=form.email.data, password=form.password.data, active=True) flash('Thank you for registering. You can now log in.', 'success') return redirect(url_for('public.home')) else: flash_errors(form) return render_template('public/register.html', form=form)
def login(): """Login page.""" login_form = LoginForm() if login_form.validate_on_submit(): login_user(login_form.user) flash('You are logged in.', 'success') redirect_url = request.args.get('next') or url_for('user.members') return redirect(redirect_url) else: flash_errors(login_form) return render_template("public/login.html", login_form=login_form)
def home(): form = LoginForm(request.form) # Handle logging in if request.method == 'POST': if form.validate_on_submit(): login_user(form.user) flash("You are logged in.", 'success') redirect_url = request.args.get("next") or url_for("user.members") return redirect(redirect_url) else: flash_errors(form) return render_template("public/home.html", form=form)
def register(): form = RegisterForm(request.form) if form.validate_on_submit(): new_user = User(username=form.username.data, email=form.email.data, password=form.password.data) db_session.add(new_user) db_session.commit() flash("Thank you for registering. You can now log in.", 'success') return redirect(url_for('public.home')) else: flash_errors(form) return render_template('public/register.html', form=form)
def home(): """Home page.""" form = LoginForm(request.form) # Handle logging in if request.method == 'POST': if form.validate_on_submit(): login_user(form.user) flash('You are logged in.', 'success') redirect_url = request.args.get('next') or url_for('user.members') return redirect(redirect_url) else: flash_errors(form) return render_template('public/home.html', form=form)
def register(): form = RegisterForm(request.form, csrf_enabled=False) if form.validate_on_submit(): new_user = User.create(username=form.username.data, first_name=form.first_name.data, last_name=form.last_name.data, email=form.email.data, password=form.password.data, active=True) flash("Thank you for registering. You can now log in.", 'success') return redirect(url_for('public.home')) else: flash_errors(form) return render_extensions('public/register.html', form=form)
def home(): """Home page.""" form = LoginForm(request.form) current_app.logger.info("Hello from the home page!") # Handle logging in if request.method == "POST": if form.validate_on_submit(): login_user(form.user) flash("You are logged in.", "success") redirect_url = request.args.get("next") or url_for("user.members") return redirect(redirect_url) else: flash_errors(form) return render_template("public/home.html", form=form)
def register(): form = RegisterForm(request.form, csrf_enabled=False) if form.validate_on_submit(): new_user = User(form.username.data, form.email.data, form.password.data) try: db.session.add(new_user) db.session.commit() flash("Thank you for registering. You can now log in.", 'success') return redirect(url_for('public.home')) except IntegrityError as err: print(err) flash("That username and/or email already exists. Try again.", 'warning') else: flash_errors(form) return render_template('register.html', form=form)
def register(): """Register new user.""" form = RegisterForm(request.form) if form.validate_on_submit(): User.create( username=form.username.data, email=form.email.data, password=form.password.data, active=True, ) flash("Thank you for registering. You can now log in.", "success") return redirect(url_for("public.home")) else: flash_errors(form) return render_template("public/register.html", form=form)
def login(): """Handle login request.""" if current_user.is_authenticated: return redirect(url_for("auth.home")) form = LoginForm(request.form) if request.method == "POST" and form.validate(): user = User.query.filter_by(username=form.username.data).first() if user is None or not check_password_hash(user.password, form.password.data): flash("Invalid username/password") return render_template("login.html", form=form) login_user(user) app.logger.debug("User login successful | %s" % user.username) return redirect(url_for("auth.home")) else: flash_errors(form) app.logger.debug("User login failed") return render_template("login.html", form=form)
def register(): """Handle registration request""" if current_user.is_authenticated: return redirect(url_for('auth.home')) form = RegisterForm(request.form) if request.method == "POST" and form.validate_on_submit(): password = generate_password_hash(form.password.data, method="sha256") user = User(first_name=form.first_name.data, last_name=form.last_name.data, username=form.username.data, password=password) db.session.add(user) db.session.commit() login_user(user) app.logger.info("New user registered successfully using form | %s" % user.username) return redirect(url_for("auth.home")) else: app.logger.error("New user registration using form failed") flash_errors(form) return render_template("register.html", form=form)
def login(): """Renders the login form and logs in the user, if valid credentials are provided.""" form = LoginForm() if request.method == 'POST': if form.validate_on_submit(): # Login and validate the user user = get_user(form) login_user(user) flash('Logged in successfully.') return redirect(url_for('users.members')) else: flash_errors(form) return render_template('users/login.html', form=form)
def home(): """Home page.""" form = LoginForm(request.form) # example of logger logger = logging.getLogger(current_app.name) logger.info('----- this is a log message from app: %s' % current_app.name) # Handle logging in if request.method == 'POST': if form.validate_on_submit(): login_user(form.user) flash('You are logged in.', 'success') redirect_url = request.args.get('next') or url_for('user.members') return redirect(redirect_url) else: flash_errors(form) return render_template('public/home.html', form=form, version=app_version)
def reset_with_token(token): try: from {{cookiecutter.app_name}}.settings import Config ts = URLSafeTimedSerializer(Config.SECRET_KEY) email = ts.loads(token, salt="recover-key", max_age=86400) except: return render_template("404.html") form = PasswordForm() if form.validate_on_submit(): emailuser = User.query.filter_by(email=email).first_or_404() emailuser.set_password(form.password.data) emailuser.save() return redirect(url_for('public.home')) else: flash_errors(form) return render_extensions('users/reset_with_token.html', resetform=form, token=token)
def reset(): form = EmailForm() if form.validate_on_submit(): emailuser = User.query.filter_by(email=form.email.data).first_or_404() subject = "Password reset requested" from {{cookiecutter.app_name}}.settings import Config ts = URLSafeTimedSerializer(Config.SECRET_KEY) token = ts.dumps(emailuser.email, salt='recover-key') recover_url = url_for('user.reset_with_token', token=token, _external=True) html = render_template('email/recover.html', recover_url=recover_url) msg = Message(html=html, recipients=[emailuser.email], subject=subject) mail.send(msg) return redirect(url_for('public.home')) else: flash_errors(form) return render_extensions('users/reset.html', resetform=form)