Пример #1
0
    def post(self):
        post_data = request.get_json()
        response_object = {'status': 'fail', 'message': 'Invalid payload.'}
        if not post_data:
            return response_object, 400

        username = post_data.get('username')
        email = post_data.get('email')
        try:
            user = User.query.filter_by(email=email).first()
            if not user:
                db.session.add(User(username=username, email=email))
                db.session.commit()
                response_object = {
                    'status': 'success',
                    'message': f'{email} was added!'
                }
                return response_object, 201
            else:
                response_object['message'] = 'Sorry. ' \
                    'That email already exists.'
                return response_object, 400
        except exc.IntegrityError:
            db.session.rollback()
            return response_object, 400
Пример #2
0
def auth_register():
    #response object
    resp = {}
    status = 200

    try:
        username = validate_username(request.json['username'])
        password = validate_password(request.json['password'])
        email = validate_email(request.json['email'])

        if username[0] and password[0] and email[0]:
            user = User(email[2], username[2], password[2])
            db.session.add(user)
            db.session.commit()
            resp['success'] = 'Account created successfully'

        else:
            resp['error'] = 'Registeration failed'
            resp['reason'] = {
                'username': username[1],
                'password': password[1],
                'email': email[1]
            }
            status = 400

    except KeyError:
        resp['error'] = 'Registeration failed'
        resp['reason'] = 'username, password and email required'
        status = 400

    return jsonify(resp), status
Пример #3
0
def signup_user():
    data = request.get_json()
    firstName = data.get('firstname')
    lastName = data.get('lastname')
    otherNames = data.get('othernames')
    email = data.get('email')
    phoneNumber = data.get('phonenumber')
    userName = data.get('username')
    userPassword = data.get('password')
    if not firstName or not lastName or not\
            otherNames or not email or not phoneNumber or not \
            userName or not userPassword:
        return jsonify({
            'status': 400,
            'error': 'A required field is either missing or empty'
        }), 400
    if not validateUser.validate_names(firstName) or not \
            validateUser.validate_names(lastName) or not \
            validateUser.validate_names(otherNames) or not \
            validateUser.validate_names(userName):
        return jsonify({
            'status':
            400,
            'error':
            'Name must be a string and must not contain spaces'
        }), 400
    if not validateUser.validate_phoneNumber(phoneNumber):
        return jsonify({
            'status':
            400,
            'error':
            'Only numbers are allowed for the phonenumber field'
        }), 400
    if not validate_email(email):
        return jsonify({'status': 400, 'error': 'Invalid email'}), 400
    if not validateUser.validate_password(userPassword):
        return jsonify({
            'status':
            400,
            'error':
            'Password must be atleast 8 characters and should have atleast one number and one capital letter'
        }), 400
    user = User(firstName, lastName, otherNames, email, phoneNumber, userName,
                generate_password_hash(userPassword))
    if db_handler().select_one_record('user_table', 'useremail', email):
        return jsonify({
            'status': 400,
            'error': 'User account already exists'
        }), 400
    user = db_handler().add_user(user.firstname, user.lastname,
                                 user.othernames, user.username, user.email,
                                 user.phoneNumber, user.password,
                                 user.registered, user.isAdmin)
    data.pop('password')
    return jsonify({
        'status': 201,
        'data': data,
        'message': 'Your Account was created successfuly'
    }), 201
Пример #4
0
def new_user_with_token(init_database):
    new_user = User(username='******', password='******')
    token = Token(auth_token='secret_token_2', user=new_user)
    db.session.add(new_user)
    db.session.add(token)
    db.session.commit()
    
    return new_user
Пример #5
0
def index():
    if request.method == 'POST':
        username = request.form['username']
        email = request.form['email']
        db.session.add(User(username=username, email=email))
        db.session.commit()
    users = User.query.all()
    return render_template('auth/index.html', users=users)
Пример #6
0
 def create_admin(self):
     user_info = User.query.filter_by(email='*****@*****.**').first()
     if not user_info:
         password = generate_password_hash('adminpassword123')
         add_admin = User(firstname='admin', lastname='admin',
                     email='*****@*****.**', phone_number=706778714,
                     password=password, account_type="admin")
         db.session.add(add_admin)
         db.session.commit()
Пример #7
0
 def signup_user(self):
     data = request.get_json()
     # firstname = data.get('firstname')
     names = data.get('names')
     email = data.get('email')
     phone_number = data.get('phonenumber')
     password = data.get('password')
     confirm_password = data.get('confirmpassword')
     # Check missing fields
     user_validate.check_missing_field(names, email,
                                       phone_number, password, confirm_password)
     # seperate firstname and lastname
     split_names = names.split()
     # check split names
     user_validate.check_split_names(split_names)
     first_name = split_names[0]
     last_name = split_names[1]
     # validate names
     user_validate.check_names(split_names)
     # validate email
     if not validate_email(email, verify=False):
         return jsonify({'message': 'Email is not valid',
                         'status': 400})
     # validate phonenumber
     if not user_validate.validate_phoneNumber(phone_number):
         return jsonify({'message': 'Phone number is not valid',
                         'status': 400})
     new_number = user_validate.remove_zero_from_number(phone_number)
     if new_number:
         phone_number = new_number
     else:
         phone_number = phone_number
     # valid password
     if not user_validate.validate_password(password):
         return jsonify({
             'message': 'Password should be atleast 8 characters and should atleast one number',
             'status': 400
         })
     # check if passwords match
     if not user_validate.verify_password(password, confirm_password):
         return jsonify({'message': "Passwords don't match",
                         'status': 400})
     # hash the password to protect it
     password = generate_password_hash(password)
     # check if user exists
     user_info = User.query.filter_by(email=email).first()
     if user_info:
         return jsonify({'message': 'User account already exists',
                         'status': 400})
     # create the user
     user_data = User(firstname=first_name, lastname=last_name,
                      email=email, phone_number=phone_number,
                      password=password, account_type="normal")
     db.session.add(user_data)
     db.session.commit()
     return jsonify({'message': 'Your account was successfuly created',
                     'status': 201})
Пример #8
0
def post_user(init_database):
    user = User(username='******', password='******')
    db.session.add(user)
    db.session.commit()

    yield user

    db.session.rollback()
    User.query.delete()
    db.session.commit()
Пример #9
0
def init_database(test_client):
    # Create the database and the database table
    db.create_all()

    # insert data
    user = User(username='******', password='******')
    token = Token(auth_token='secret_token_1', user=user)

    db.session.add(user)
    db.session.add(token)
    db.session.commit()

    yield db

    db.drop_all()
Пример #10
0
def new_user(init_database):
    new_user = User(username='******', password='******')
    db.session.add(new_user)
    db.session.commit()

    return new_user
Пример #11
0
def add_user(username, email):
    user = User(username=username, email=email)
    db.session.add(user)
    db.session.commit()
    return user