Advertisement
Guest User

auth game

a guest
Dec 6th, 2017
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.44 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. import getpass
  5.  
  6.  
  7. def getPasswordByLogin(login):
  8.     """Считывает из файла пары логин/пароль и возвращеат пароль по имени пользователя"""
  9.  
  10.     saved_passwords = {}
  11.     try:
  12.         with open('Пароли.txt', 'r') as f:
  13.             saved_passwords = dict((line[:-1].split('\t') for line in f.readlines()))
  14.     except:
  15.         pass
  16.  
  17.     return saved_passwords.get(login)
  18.  
  19.  
  20. def whod():
  21.     """Процедура аутентификации
  22.    В случае успешного прохождения возвращает имя пользователя
  23.    """
  24.  
  25.     print('\n-----Вход -----')
  26.  
  27.     login = raw_input('Введите логин: ')
  28.     password = getpass.getpass('Введите пароль: ')
  29.  
  30.     print("Проверка данных...")
  31.     saved_password = getPasswordByLogin(login)
  32.  
  33.     if saved_password is not None:
  34.         if saved_password == password:
  35.             print("Всё верно. Добро пожаловать!")
  36.             return login
  37.         else:
  38.             print("Неверный пароль")
  39.             return None
  40.  
  41.     print("Вас не знаю")
  42.     return None
  43.  
  44.  
  45. def registr():
  46.     """Процедура регистрации
  47.    В случае успешного прохождения возвращает имя пользователя
  48.    """
  49.  
  50.     print("\n-----Регистрация -----")
  51.  
  52.     login = raw_input('Придумайте логин: ')
  53.     password = getpass.getpass('Придумайте пароль: ')
  54.  
  55.     print("Проверка данных...")
  56.     if getPasswordByLogin(login) is not None:
  57.         print ("это имя пользователя уже занято")
  58.         return None
  59.  
  60.     print("Регистрация пользователя в системе...")
  61.     try:
  62.         with open('Пароли.txt', 'a') as f:
  63.             f.write("{0}\t{1}\n".format(login, password))
  64.     except:
  65.         print ("Ошибка сохранения учетных данных")
  66.         return None
  67.  
  68.     print ("Регистрация завершена. Вы можете войти в систему с новыми учетными данными.")
  69.  
  70.  
  71. # собственно программа
  72. print('Запуск программы...')
  73.  
  74. userName = None
  75.  
  76. while True:
  77.  
  78.     if userName is None:
  79.         print('\n-----Главное меню -----')
  80.         print('1 Вход')
  81.         print('2 Регистрация')
  82.         print('3 Выход')
  83.     else:
  84.         print('\n-----Здравствуйте, {0} -----'.format(userName))
  85.         print('1 Вход под другим пользователем')
  86.         print('2 Регистрация другого пользователя')
  87.         print('3 Выход')
  88.  
  89.     input_input = raw_input("Ваш выбор?: ")
  90.  
  91.     if len(input_input) > 0 and input_input.upper()[0] == '1':
  92.         newUserName = whod()
  93.         if newUserName is not None:
  94.             userName = newUserName
  95.         continue
  96.  
  97.     if len(input_input) > 0 and input_input.upper()[0] == '2':
  98.         newUserName = registr()
  99.         if newUserName is not None:
  100.             userName = newUserName
  101.         continue
  102.  
  103.     if len(input_input) > 0 and input_input.upper()[0] == '3':
  104.         break
  105.  
  106.     print('Неизвестная команда')
  107.  
  108. print('До новых встреч!')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement