Esempio n. 1
0
def create_confirm_email_code(user, new_email=None):
    if new_email:
        if not validate_email(new_email):
            raise InvalidEmailAddressException("Invalid email address: %s" % new_email)

    verification_code, unhashed = Credential.generate()
    code = EmailConfirmation.create(
        user=user, email_confirm=True, new_email=new_email, verification_code=verification_code
    )
    return encode_public_private_token(code.code, unhashed)
Esempio n. 2
0
def create_reset_password_email_code(email):
    try:
        user = User.get(User.email == email)
    except User.DoesNotExist:
        raise InvalidEmailAddressException("Email address was not found")

    if user.organization:
        raise InvalidEmailAddressException("Organizations can not have passwords")

    verification_code, unhashed = Credential.generate()
    code = EmailConfirmation.create(user=user, pw_reset=True, verification_code=verification_code)
    return encode_public_private_token(code.code, unhashed)
Esempio n. 3
0
def test_validation_code(token_lifetime, time_since, initialized_db):
  user = create_user_noverify('foobar', '*****@*****.**', email_required=False)
  created = datetime.now() - convert_to_timedelta(time_since)
  verification_code, unhashed = Credential.generate()
  confirmation = EmailConfirmation.create(user=user, pw_reset=True,
                                          created=created, verification_code=verification_code)
  encoded = encode_public_private_token(confirmation.code, unhashed)

  with patch('data.model.config.app_config', {'USER_RECOVERY_TOKEN_LIFETIME': token_lifetime}):
    result = validate_reset_code(encoded)
    expect_success = convert_to_timedelta(token_lifetime) >= convert_to_timedelta(time_since)
    assert expect_success == (result is not None)
Esempio n. 4
0
def test_private_token():

    public_code = "PUBLIC-CODE"
    private_token = "PRIVATE-TOKEN"

    encoded_token = encode_public_private_token(public_code, private_token)
    assert isinstance(encoded_token, str)

    decoded_token = decode_public_private_token(encoded_token)
    assert isinstance(decoded_token, DecodedToken)

    assert decoded_token.public_code == public_code
    assert decoded_token.private_token == private_token