Esempio n. 1
0
def update_user(payload):
    if current_user.is_anonymous:
        return Response('Please log in first', 403)
    current_user.username = payload['username']
    current_user.email = payload['email']
    hashed_password = bcrypt.generate_password_hash(
        payload['password']).decode('utf-8')
    current_user.password = hashed_password
    db.session.commit()
    return Response('update user success', 200)
Esempio n. 2
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(f'Your Account has been created!', 'success')
        return redirect(url_for('users.login'))
    return render_template('register.html', title='Register', form=form)
Esempio n. 3
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('That is an invalid or expired token', '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(f'Your Password has been changed!', 'success')
        return redirect(url_for('users.login'))
    return render_template('reset_token.html',
                           title='Reset Password',
                           form=form)
Esempio n. 4
0
def create_user(payload):
    # import pdb; pdb.set_trace()
    if (not current_user.is_anonymous) and current_user.is_authenticated:
        return Response(f'already logged in by {current_user.username}', 400)
    if payload['role'] not in RoleEnum.__members__:
        return Response('role is incorrect, register failed', 400)
    if User.query.filter_by(username=payload['username']).first():
        return Response('username is taken, create user failed', 400)
    if User.query.filter_by(email=payload['email']).first():
        return Response('email is already registered', 400)
    hashed_password = bcrypt.generate_password_hash(
        payload['password']).decode('utf-8')
    # print(type(User.role))
    user = User(username=payload['username'],
                email=payload['email'],
                password=hashed_password,
                role=payload['role'])
    db.session.add(user)
    db.session.commit()
    return Response('register successful', 201)