Example #1
0
def create():
    data = getData()
    email, password, nameFirst, nameLast = (request.form[x]
                                            for x in ('email', 'password',
                                                      'name_first',
                                                      'name_last'))

    handle = createHandle(
        nameFirst, nameLast
    )  # In the form 'firstNamelastName' or if already taken: 'firstNamelastName123'.
    u_id = createU_ID(data)  # In the form '123456'.

    if emailExists(email, data):
        raise ValueError('Email entered is already being used.')

    handle = uniqueHandle(data, handle)

    checkEmail(email)
    checkPassword(password)
    checkName(nameFirst, nameLast)

    createUser(data, email, hashPassword(password), nameFirst, nameLast,
               handle, u_id, PERMISSION3)

    data['users'][0][
        'is_admin'] = PERMISSION1  # The very first user who signs up is an owner

    data['tokens'].append(generateToken(u_id))
    print(data)

    return sendSuccess({
        'u_id': u_id,
        'token': generateToken(u_id),
    })
Example #2
0
def test_valid_reset():

    '''
    Testing if auth_passwordreset functions return expected outputs 
    if passed the correct password and reset code.
    '''

    data = {
        "users": [{
            "email": "*****@*****.**", 
            "password": hashPassword("validPassword"), 
            "name_first": "validFirst", 
            "name_last": "validLast", 
            "handle": "validFirstvalidLast", 
            "u_id": 8501, 
            "resetCode": 1234, 
            "is_admin": 1, 
            "img_url": None}],
        "tokens": [], 
        "channels": [],
        }

    checkPassword("validNewPassword")
    assert resetPasswordFunc(data, 1234, "validNewPassword") is None
    assert data['users'][0]['password'] == hashPassword("validNewPassword")
    assert data['users'][0]['resetCode'] is None
Example #3
0
def test_invalid_code():

    '''
    Testing if auth_passwordreset functions return expected outputs 
    if passed a correct password but an invalid reset code.
    '''

    data = {
        "users": [{
            "email": "*****@*****.**", 
            "password": hashPassword("validPassword"), 
            "name_first": "validFirst", 
            "name_last": "validLast", 
            "handle": "validFirstvalidLast", 
            "u_id": 8501, 
            "resetCode": 1234, 
            "is_admin": 1, 
            "img_url": None}],
        "tokens": [], 
        "channels": [],
        }

    checkPassword("validNewPassword")
    with pytest.raises(errors.ValueError): 
        resetPasswordFunc(data, 4321, "validNewPassword")
Example #4
0
def reset():
    data = getData()
    resetCode = int(request.form.get('reset_code'))
    newPassword = request.form.get('new_password')

    checkPassword(newPassword)
    resetPasswordFunc(data, resetCode, newPassword)

    return sendSuccess({})
Example #5
0
def test_invalid_reset():

    '''
    Testing if auth_passwordreset functions return expected outputs 
    if passed an incorrect password and reset code.
    '''

    invalidNewPassword = "******"

    with pytest.raises(errors.ValueError): 
        checkPassword(invalidNewPassword)
Example #6
0
def reset():
    data = getData()
    resetCode = int(request.form.get('reset_code'))
    newPassword = request.form.get('new_password')

    checkPassword(newPassword)

    for user in data['users']:
        if user['resetCode'] == resetCode:
            user['password'] = hashPassword(newPassword)
            user['resetCode'].remove(resetCode)
            return sendSuccess({})
    raise ValueError('Reset code is not valid.')
Example #7
0
def create():
    data = getData()
    email = request.form.get('email')
    password = request.form.get('password')
    nameFirst = request.form.get('name_first')
    nameLast = request.form.get('name_last')
    handle = createHandle(
        nameFirst, nameLast
    )  # In the form 'firstNamelastName' or if already taken: 'firstNamelastName123'.
    u_id = createU_ID(data)  # In the form 'U123456'.

    for users in data['users']:
        if email in users['email']:
            raise ValueError('Email entered is already being used.')
        while handle in users['handle']:
            handle = randomHandle(handle)

    checkEmail(email)
    checkPassword(password)
    checkName(nameFirst, nameLast)

    data['users'].append({
        'email': email,
        'password': hashPassword(password),
        'name_first': nameFirst,
        'name_last': nameLast,
        'handle': handle,
        'u_id': u_id,
        'resetCode': None,
        'is_admin': PERMISSION3,
    })

    # The very first user who signs up is an owner
    data['users'][0]['is_admin'] = PERMISSION1

    data['tokens'].append(generateToken(u_id))
    print(data)

    return sendSuccess({
        'u_id': u_id,
        'token': generateToken(u_id),
    })
Example #8
0
def test_invalid_password_auth_register():
    '''
    Testing if auth_register raises a ValueError
    if passed an invalid password.
    '''

    password1 = "short"
    password2 = ""
    password3 = "123"

    with pytest.raises(errors.ValueError):
        checkPassword(password1)

    with pytest.raises(errors.ValueError):
        checkPassword(password2)

    with pytest.raises(errors.ValueError):
        checkPassword(password3)