Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def load_accounts():
- f = open('accounts.txt')
- lp = f.read()
- f.close()
- lp = lp.split('\n')
- accs = []
- n = 0
- for el in lp:
- if (len(el.split(':')) > 1):
- accs.append([])
- accs[n].append('user' + str(n))
- accs[n].append([])
- accs[n][1].append(el.split(':')[0])
- accs[n][1].append(el.split(':')[1])
- accs[n][1].append(el.split(':')[2])
- n += 1
- accounts = dict(accs)
- return accounts
- def save_users(accounts):
- f = open('accounts.txt', 'w')
- for el in accounts:
- f.write(accounts[el][0] + ":" + accounts[el][1] + ":" + accounts[el][2] + '\n')
- f.close()
- def reg_new_user(accounts):
- print('Регистрация нового пользователя.')
- reg_login = input('Создать имя пользователя:')
- check = False
- for el in accounts:
- if accounts[el][0] == reg_login:
- check = True
- break
- if check == False:
- reg_password = input('Создать пароль:')
- print('Вы успешно зарегистрировались!')
- f = open('accounts.txt', 'a')
- f.write(reg_login + ":" + reg_password + ":" + "user" + '\n')
- f.close()
- else:
- print('Пользователь существует!')
- def reg_user(accounts):
- reg_login = input('Создать имя пользователя:')
- check = False
- for el in accounts:
- if accounts[el][0] == reg_login:
- check = True
- break
- if check == False:
- reg_password = input('Создать пароль:')
- reg_role = input('Выберите роль пользователя:')
- print('Пользователь зарегистрирован!')
- f = open('accounts.txt', 'a')
- f.write(reg_login + ":" + reg_password + ":" + "user" + '\n')
- f.close()
- else:
- print('Пользователь существует!')
- return accounts
- def rename_user(login, accounts):
- new_log = login
- login1 = input('Введите новое имя пользователя:')
- check2 = False
- for el in accounts:
- if accounts[el][0] == login1:
- check2 = True
- if (check2 == True):
- print('Пользователь существует')
- else:
- password = input('Введите пароль:')
- check = False
- for el in accounts:
- if (accounts[el][0] == login and accounts[el][1] == password):
- accounts[el][0] = login1
- save_users(accounts)
- accounts = load_accounts()
- new_log = login1
- check = True
- break
- if (check == False):
- print('Неправильный пароль!')
- return accounts, new_log
- def edit_pass(login,accounts):
- olpass = input('Введите старый пароль:')
- check = False
- for el in accounts:
- if (accounts[el][0] == login and accounts[el][1] == olpass):
- newpass = input('Создать новый пароль:')
- accounts[el][1] = newpass
- save_users(accounts)
- accounts = load_accounts()
- check = True
- break
- if (check == False):
- print('Неправильный пароль!')
- return accounts
- def restore_pass(accounts):
- login = input('Введите имя пользователя:')
- check = False
- for el in accounts:
- if accounts[el][0] == login:
- check = True
- print('Сброс пароля!')
- print(accounts[el][1])
- break
- if check == False:
- print('Пользователь не существует!')
- def list_users(accounts):
- print('Список пользователей:')
- n = 1
- for el in accounts:
- print(n.__str__() + ') ' + accounts[el][0] + ' - ' + accounts[el][2])
- n += 1
- def change_role(accounts):
- login = input('Введите имя пользователя:')
- for el in accounts:
- if accounts[el][0] == login:
- role = input('Выберите роль пользователя:')
- while ((role != "admin") and (role != "user")):
- role = input('Выберите роль пользователя:')
- if ((role != "admin") and (role != "user")):
- print('Неправильная роль!')
- accounts[el][2] = role
- save_users(accounts)
- accounts = load_accounts()
- break
- return accounts
- def main1():
- accounts = {}
- accounts = load_accounts()
- print('Добро пожаловать!')
- k = 3
- m = 5
- while (k != 0):
- a = input('Меню:\n1.Регистрация.\n2.Войти.\n0.Выход из программы.')
- if(a.isdigit()==True):
- k = int(a)
- if (int(a) == 1):
- reg_new_user(accounts)
- accounts = load_accounts()
- elif (int(a) == 2):
- print('Вход в систему.')
- login = input('Введите имя пользователя:')
- check = False
- user = ''
- for el in accounts:
- if (accounts[el][0] == login):
- check = True
- user = el
- if (check == False):
- print('Неправильное имя пользователя!')
- else:
- password = input('Введите пароль:')
- if (password == accounts[user][1]):
- print('Вы вошли как', login, '!')
- if (accounts[user][2] == "user"):
- while ((int(m) != 3) or (int(m) != 4)):
- m = input('Меню:\n1.Изменить имя пользователя.\n2.Изменить пароль.\n3.Выход из учетной записи.\n4.Выход из программы.')
- if (int(m) == 1):
- accounts, login = rename_user(login, accounts)
- elif (int(m) == 2):
- accounts = edit_pass(login, accounts)
- elif (int(m) == 3):
- break
- elif (int(m) == 4):
- return 0
- else:
- print('Неправильный ввод!')
- else:
- m = 9
- while ((int(m) != 7) or (int(m) != 8)):
- m = input('Меню:\n1.Создать пользователя.\n2.Изменить имя пользователя.\n3.Изменить пароль.\n4.Сбросить пароль пользователя.\n5.Список пользователей.\n6.Изменении роли пользователя.\n7.Выход из учетной записи.\n8.Выход из программы.\n')
- if (int(m) == 1):
- reg_user(accounts)
- accounts = load_accounts()
- elif (int(m) == 2):
- accounts, login = rename_user(login, accounts)
- elif (int(m) == 3):
- accounts = edit_pass(login, accounts)
- elif (int(m) == 4):
- restore_pass(accounts)
- elif (int(m) == 5):
- list_users(accounts)
- elif (int(m) == 6):
- accounts = change_role(accounts)
- elif (int(m) == 7):
- break
- elif (int(m) == 8):
- return 0
- else:
- print('Неправильный ввод!')
- else:
- print('Неправильный пароль!')
- elif (int(a) == 0):
- return 0
- else:
- print('Неправильный ввод!')
- else:
- print('Неправильный ввод')
- main1()
Add Comment
Please, Sign In to add comment