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 compose(msg_title=None, msg_recipient=None): user = current_user() if request.method == 'POST': # retrieve form data args = { 'recipient': request.form.get('recipient', type=str), 'title': request.form.get('title', type=str), 'body': request.form.get('body', type=str), } # ensure fields are present and within database limits 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') # check if recipient exists elif not User.find(args['recipient']): flash("Recipient doesn't exist", 'alert-danger') # create new message else: message = Message.insert(sender_name=user.username, recipient_name=args['recipient'], date=get_current_timestamp(), title=args['title'], body=args['body']) flash('Message successfully sent', 'alert-success') return render_template('compose.html', title='New message', user=user, msg_title=msg_title, msg_recipient=msg_recipient)
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)