Esempio n. 1
0
def send_reset_code(username):
    gmail_email = sql_manager.get_email(username)
    reset_code = password_handler._generate_hash_pw(generatePassword(10),
                                                    "sha1")
    TEXT = "Reset/confirmation code <{}>.".format(reset_code)
    BODY = '\r\n'.join([
        'To: {}'.format(gmail_email),
        'From: [email protected]',
        'Subject: Your reset/confirmation code for username {}'.format(
            username), '', TEXT
    ])
    if send_email(username, gmail_email, TEXT, BODY) is True:
        reset_code = password_handler._generate_hash_pw(reset_code, "sha224")
        sql_manager.add_reset_code(username, reset_code)
        return True
    return False
Esempio n. 2
0
def reset_password(username, received_code):
    username = input("Enter your username: "******"Reset code: ")
    received_code = password_handler._generate_hash_pw(received_code, "sha224")
    if received_code == sql_manager.get_reset_code(username):
        print("Codes match!")
        new_password = getpass("Your new password: "******"sha1")
        try:
            sql_manager.change_pass_by_username(username, new_password)
        except Exception as e:
            print(e)
            print("No such username.")
            return
        print("Password changed.")
Esempio n. 3
0
def register(username, password, email):
    if password_handler.check_password(password) is True:
        password = password_handler._generate_hash_pw(password, "sha1")
        try:
            sql_manager.register(username, password, email)
        except Exception:
            print("Username already exists.")
            return
        print("Registration successful.")
    else:
        print("Your password sucks. Think of a better one and try again to register.")
Esempio n. 4
0
def change_pass(logged_user):
    smtp_handler.send_reset_code(logged_user.get_username())
    received_code = input("The code you received: ")
    if sql_manager.get_reset_code(logged_user.get_username()) == received_code:
        new_pass = getpass("Enter your new password: "******"sha1")
            sql_manager.change_pass(new_pass, logged_user)
        else:
            print("Your new password sucks. Think of a better one!")
    else:
        print("The entered code isn't valid.")
Esempio n. 5
0
def send_tan_codes(username):
    if sql_manager.are_available_tan_codes(username) is True:
        print(
            "You have available TAN codes. Use them before you generate new ones."
        )
        return
    tan_codes = []
    for i in range(10):
        tan_code = password_handler._generate_hash_pw(generatePassword(10),
                                                      "sha224")
        tan_codes.append(tan_code)
    TEXT = "TAN CODES: {}.".format("\n".join(tan_codes))
    gmail_email = sql_manager.get_email(username)
    BODY = '\r\n'.join([
        'To: {}'.format(gmail_email),
        'From: [email protected]',
        'Subject: Your TAN code for username {}'.format(username), '', TEXT
    ])
    if send_email(username, gmail_email, TEXT, BODY) is True:
        sql_manager.delete_tan_codes(username)
        for tan_code in tan_codes:
            tan_code = password_handler._generate_hash_pw(tan_code, "sha224")
            sql_manager.add_tan_code(username, tan_code)
        return True
Esempio n. 6
0
def deposit(logged_user):
    if sql_manager.are_available_tan_codes(logged_user.get_username()) is True:
        amount = float(input("amount: "))
        tan_code = input("TAN code: ")
        tan_code = password_handler._generate_hash_pw(tan_code, "sha224")
        if tan_code in sql_manager.get_all_tan_codes(
                logged_user.get_username()):
            logged_user.deposit(amount)
            sql_manager.update_balance(logged_user.get_balance(),
                                       logged_user.get_username())
            sql_manager.delete_tan_code(logged_user.get_username(), tan_code)
            print("Transaction successful.")
        else:
            print("Invalid TAN code.")
    else:
        print(
            "You have 0 remaining TAN codes. Please generate more with <send-tan-codes>"
        )
Esempio n. 7
0
def login(username):
    try:
        if abs(time() - sql_manager.get_current_time(username)) > 300:
                sql_manager.reset_failed_logins()
    except IOError:
        print("No such username.")
        return

    if sql_manager.get_attempts(username) < 21:
        password = getpass("Enter your password: "******"sha1")
        logged_user = sql_manager.login(username, password)
        if logged_user:
            sql_manager.reset_failed_login(username)
            logged_menu(logged_user)
        else:
            sql_manager.failed_login(username)
            print("Login failed")
    else:
        print("Number of login attempts(20) exceeded. Wait 5 minutes before attempting to login.")