def signup(): # handle incoming form if request.method == 'POST': # retrieve form data args = { 'firstname': request.form.get('firstname', type=str), 'lastname': request.form.get('lastname', type=str), 'username': request.form.get('username', type=str), 'password': request.form.get('password', type=str), 'password_confirm': request.form.get('password_confirm', type=str) } # check for valid data and no user conflicts if any(x == None for x in args.values()): flash('All fields are required', 'alert-danger') elif any(len(x) > Model.TEXT_MAX_LEN for x in args.values()): flash( 'Fields may not exceed {} characters'.format( Model.TEXT_MAX_LEN), 'alert-danger') elif (pw_complexity(args['password']) == False): flash( "Password needs 8 characters minimum, with at least 1 digit, 1 minuscule and 1 majuscule.", 'alert-danger') elif args['password'] != args['password_confirm']: flash("Passwords don't match", 'alert-danger') elif User.find(args['username']): flash('Username is already used', 'alert-danger') else: # create new account and redirect to login page User.insert(False, args['firstname'], args['lastname'], args['username'], hash_pw(args['password'])) flash('Account created successfully', 'alert-success') return redirect('/login') return render_template('signup.html', title='Create an account')
def user_add(): user = current_user() # handle incoming form if request.method == 'POST': # retrieve form data args = { 'firstname': request.form.get('firstname', type=str), 'lastname': request.form.get('lastname', type=str), 'username': request.form.get('username', type=str), 'password': request.form.get('password', type=str), 'password_confirm': request.form.get('password_confirm', type=str) } # check for valid data and no user conflicts if any(x == None for x in args.values()): flash('All fields are required', 'alert-danger') elif any(len(x) > Model.TEXT_MAX_LEN for x in args.values()): flash( 'Fields may not exceed {} characters'.format( Model.TEXT_MAX_LEN), 'alert-danger') elif args['password'] != args['password_confirm']: flash("Passwords don't match", 'alert-danger') elif User.find(args['username']): flash('Username is already used', 'alert-danger') else: # create new account and redirect to login page User.insert(False, args['firstname'], args['lastname'], args['username'], hash_pw(args['password'])) flash('Account created successfully', 'alert-success') return redirect('/admin') return render_template('user_add.html', title='Add new user', user=user)