From 40fe81e858b1144c2f0300216736dcfff0990430 Mon Sep 17 00:00:00 2001 From: Spekulaas <“ryan@aterve.nl”> Date: Thu, 26 Oct 2023 02:12:15 +0200 Subject: [PATCH] delete acc and better use of user --- goodchain/src/classes/User.py | 26 +++++++++++++++ goodchain/src/helpers/MenuHelper.py | 51 ++++++++++++++++------------- 2 files changed, 54 insertions(+), 23 deletions(-) diff --git a/goodchain/src/classes/User.py b/goodchain/src/classes/User.py index 32ee093..1cc49f1 100644 --- a/goodchain/src/classes/User.py +++ b/goodchain/src/classes/User.py @@ -91,3 +91,29 @@ class User: else: print('Something went wrong while trying to update username..') + + def deleteAccount(self): + + while True: + print('Are you sure you want to delete this account? (y/n)\n(this will burn all coins available in this account) (y/n)') + confirm = input('> ') + if confirm == 'y' or confirm == 'Y': + print('Deleting account..') + break + + elif confirm == 'n' or confirm == 'N': + return False + + else: + print('Invalid input') + + private_key_bytes = Signature.privateKeyToBytes(self.private_key) + + if self.db.deleteUser(private_key_bytes) == True: + print('Account deleted') + self.logout() + return True + else: + print('Something went wrong while trying to delete account..') + return False + diff --git a/goodchain/src/helpers/MenuHelper.py b/goodchain/src/helpers/MenuHelper.py index 4cdf2ae..58edb98 100644 --- a/goodchain/src/helpers/MenuHelper.py +++ b/goodchain/src/helpers/MenuHelper.py @@ -16,6 +16,7 @@ class bcolors: class MenuHelper: def __init__(self, db): self.db = db + self.user = None self.start_menu = {} self.user_main_menu = {} @@ -69,27 +70,29 @@ class MenuHelper: print("TODO") case "Login": - user = User(self.db) - logged_in = user.login() + self.user = User(self.db) + logged_in = self.user.login() self.clearScreen() if logged_in: - print(f'Welcome {user.username}') - return user + print(f'Welcome {self.user.username}') + return print("Login failed") + self.user = None case "Sign up": - new_user = User(self.db) - registered = new_user.register() + self.user = User(self.db) + registered = self.user.register() if registered: print("Registration successful") - return new_user - print("Registration failed") + return + print("Registration failed") + self.user = None case _: print("Wrong input, try again") - def runUserMainMenu(self, user): - while(user): + def runUserMainMenu(self): + while(self.user): choice = self.getMenuInput(self.user_main_menu) if choice == None: @@ -102,20 +105,20 @@ class MenuHelper: exit() case "Log out": - user.logout() - user = None + self.user.logout() + self.user = None case "User Settings": - self.runUserSettingsMenu(user) + self.runUserSettingsMenu() case "Blockchain": - self.runUserBlockchainMenu(user) + self.runUserBlockchainMenu() case _: print("Wrong input, try again") - def runUserBlockchainMenu(self, user): - while(user): + def runUserBlockchainMenu(self): + while(self.user): choice = self.getMenuInput(self.user_blockchain_menu) if choice == None: @@ -127,7 +130,7 @@ class MenuHelper: return case "Explore the Blockchain": - print(user.private_key) + print(self.user.private_key) case "Transfer coins": input("Enter the username of the receiver: ") @@ -148,8 +151,8 @@ class MenuHelper: case _: print("Wrong input, try again") - def runUserSettingsMenu(self, user): - while(user): + def runUserSettingsMenu(self): + while(self.user): choice = self.getMenuInput(self.user_settings_menu) if choice == None: @@ -161,16 +164,18 @@ class MenuHelper: return case "View account info": - print(user.private_key) + print(self.user.private_key) case "Change username": - user.updateAccount() + self.user.updateAccount() case "Change password": - user.updatePassword() + self.user.updatePassword() case "DELETE ACCOUNT": - print("TODO") + if self.user.deleteAccount(): + self.user = None + case _: print("Wrong input, try again")