Esempio n. 1
0
 def validate_username(self, username):
     if username.data != current_user.username:
         user = User.query.filter_by(username=username.data).first()
         if user:
             raise ValidationError(
                 get_response_message('users', 'update', 'failure,'
                                      'username_taken'))
Esempio n. 2
0
 def validate_email(self, email):
     if email.data != current_user.email:
         user = User.query.filter_by(email=email.data).first()
         if user:
             raise ValidationError(
                 get_response_message('users', 'update', 'failure',
                                      'email_taken'))
Esempio n. 3
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember.data)
            next_page = request.args.get('next')
            flash(get_response_message('users', 'login', 'success', ''),
                  'success')
            return redirect(next_page) if next_page else redirect(
                url_for('main.home'))
        else:
            flash(get_response_message('users', 'login', 'failure', ''),
                  'danger')
    return render_template('login.html', title='Login', form=form)
Esempio n. 4
0
def reset_request():
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    form = RequestResetForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        send_reset_email(user)
        flash(get_response_message('users', 'reset', 'success', 'email_sent'),
              'info')
        return redirect(url_for('users.login'))
    return render_template('reset_request.html',
                           title='Reset Password',
                           form=form)
Esempio n. 5
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash(
            get_response_message('users', 'reset', 'failure'
                                 'invalid_email'), 'warning')
        return redirect(url_for('users.reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
        flash(
            get_response_message('users', 'reset', 'success',
                                 'password_updated'), 'success')
        return redirect(url_for('users.login'))
    return render_template('reset_token.html',
                           title='Reset Password',
                           form=form)
Esempio n. 6
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash(get_response_message('users', 'register', 'success', ''),
              'success')
        return redirect(url_for('main.home'))
    return render_template('register.html', title='Register', form=form)
Esempio n. 7
0
def account():
    form = UpdateAccountForm()
    if form.validate_on_submit():
        if form.picture.data:
            picture_file = save_picture(form.picture.data)
            current_user.image_file = picture_file
        current_user.username = form.username.data
        current_user.email = form.email.data
        db.session.commit()
        flash(get_response_message('users', 'update', 'success', ''),
              'success')
        return redirect(url_for('users.account'))
    elif request.method == 'GET':
        form.username.data = current_user.username
        form.email.data = current_user.email
    image_file = url_for('static',
                         filename='profile_pics/' + current_user.image_file)
    return render_template('account.html',
                           title='Account',
                           image_file=image_file,
                           form=form)
Esempio n. 8
0
 def validate_email(self, email):
     user = User.query.filter_by(email=email.data).first()
     if user is None:
         raise ValidationError(
             get_response_message('users', 'reset', 'failure',
                                  'invalid_email'))
Esempio n. 9
0
 def validate_email(self, email):
     user = User.query.filter_by(email=email.data).first()
     if user:
         raise ValidationError(
             get_response_message('users', 'register', 'failure',
                                  'email_taken'))
Esempio n. 10
0
 def validate_username(self, username):
     user = User.query.filter_by(username=username.data).first()
     if user:
         raise ValidationError(
             get_response_message('users', 'register', 'failure',
                                  'username_taken'))