Esempio n. 1
0
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')
Esempio n. 2
0
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)
Esempio n. 3
0
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)