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