Advertisement
Guest User

21321

a guest
Oct 7th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.69 KB | None | 0 0
  1. import sqlite3
  2. import string
  3. import random
  4. import time
  5. import datetime
  6. import getpass
  7.  
  8. conn = sqlite3.connect('laba.db')
  9. c = conn.cursor()
  10. c.execute('''CREATE TABLE users (id int auto_increment primary key,name varchar, password varchar)''')
  11. c.execute("INSERT INTO users (name,password) VALUES ('admin','123')") # создается суперпользователь
  12. c.execute("INSERT INTO users (name,password) VALUES ('user','1234')")  #для теста второй пользователь обычный
  13. #c.execute("INSERT INTO users (name,password) VALUES ('user1','qwerty')")  #для теста третий пользователь обычный
  14. curu = 'admin'  #для проверки
  15. token = 1
  16.  
  17. print("help - список команд")
  18. print("для входа в систему нужно ввести `login`;")
  19. while 1:
  20.     #print("для входа в систему нужно ввести `login`, после авторизации `help` - для вывода доступных команд")
  21.     command = input()
  22.  
  23.     if command == 'login': #ввожу имя потом ищу по базе даю пароль, если апроль верно токен=1 в логауте токен=0
  24.         #print("log_in")
  25.         curu = input("вводим логин:")
  26.      
  27.         c.execute("SELECT password FROM users WHERE name=?", (curu,)) #хватаю пароль по логину
  28.         b = c.fetchone() #разбил пароль на символы
  29.         e = b[0]
  30.         print(b[0])
  31.         i = 0
  32.         r = 0
  33.         r1 = 0
  34.         while r != 1:
  35.          print("ввод пароля: ")
  36.          box = getpass.getpass()
  37.          if box == b[0]:
  38.                 token = 1
  39.                 r = 1
  40.          else:
  41.                 token = 0
  42.                 r1 = r1 + 10
  43.                 print("ошибка ввода пароля")
  44.                 r1 = str(r1)
  45.                 print("повторный ввод доступен через " + r1 + " секунд")
  46.                 r1 = int(r1)
  47.                 time.sleep(r1)
  48.          if token == 1:
  49.             print("вы вошли в систему под логином: " + curu)
  50.  
  51.  
  52.     if token != 0:
  53.  
  54.         if command == 'help': #+++++++++++++++++
  55.            print("_____________________________________________________________")
  56.            print("|списoк команд                                              |")
  57.            print("|___________________________________________________________|")
  58.            print("|logout         - выйти из системы                          |")
  59.            print("|datetime       - время                                     |")
  60.            print("|adduser        - добавить пользователя(админ)              |")
  61.            print("|deluser        - удалить пользователя(админ)               |")
  62.            print("|changepaz      - смена пароля                              |")
  63.            print("|currentinfo    - информация о текущем пользователе         |")
  64.            print("|changelog      - смена логин                               |")
  65.            print("|allinfo        - доступная информация о всех пользователях |")
  66.            print("|exit           - вход из сиситемы                          |")
  67.            print("|___________________________________________________________|")
  68.  
  69.         if command == 'logout': #+++++++++++++++++++
  70.             print("вы вышли из системы")
  71.             token = 0
  72.  
  73.  
  74.         if command == 'datetime': #+++++++++++++++++
  75.              
  76.              now = datetime.datetime.now()
  77.              #datetime.datetime()
  78.              print("точное время:")
  79.              print(datetime.datetime.now())
  80.  
  81.  
  82.  
  83.         if curu == 'admin':
  84.             if command == 'adduser':  #++++++++++++++++++++
  85.                 print("adduser: вводим новый логин-пароль")
  86.                 print("введите логин")
  87.                 newname = input()
  88.                 print("введите пароль")
  89.                 newpass = input()
  90.                 c.execute("INSERT INTO users (name,password) VALUES (?, ?)",(newname,newpass,))
  91.                 print("пользователь добавлен")
  92.            
  93.  
  94.  
  95.  
  96.             if command == 'deleteuser':  #+++++++++++++
  97.                 print("deluser - удалить пользователя")
  98.                 deltarget = input("ввести имя того кого хотим удалить: ")
  99.                 c.execute("DELETE FROM users WHERE name=?",(deltarget,))
  100.                 print("пользователь "+deltarget+" удален")
  101.  
  102.         if command == 'changepaz':  # +++++++++++++++++++++++
  103.             if curu != 'admin':
  104.                 print(
  105.                     "смена пароля, но сначала нужно ввести повторно свой логин и затем старый пароль")  # добавить проверку
  106.  
  107.                 c.execute("SELECT password FROM users WHERE name=?", (curu,))  # хватаю пароль по логину
  108.  
  109.                 b = c.fetchone()  # разбил пароль на символы
  110.                 e = b[0]
  111.              
  112.                 i = 0
  113.                 r = 0
  114.                 r1 = 0
  115.                 while r != 1:
  116.                  
  117.                      print("ввод пароля: ")
  118.                      box = getpass.getpass()
  119.                      if box == b[0]:
  120.                       token = 1
  121.                       r = 1
  122.                       print("введите новый пароль")
  123.                       newpas = input()
  124.                       c.execute("UPDATE users SET password=? WHERE name=?", (newpas, curu))
  125.                       print("пароль был успешно изменен")
  126.                       break
  127.  
  128.                      else:
  129.                         r1 = r1 + 10
  130.                         print("ошибка ввода пароля - попытка сменить его провалилась")
  131.                         r1 = str(r1)
  132.                         print("повторный ввод доступен через " + r1 + " секунд")
  133.                         r1 = int(r1)
  134.                         time.sleep(r1)
  135.  
  136.                 newpas = input()
  137.                 c.execute("UPDATE users SET password=? WHERE name=?", (newpas, curu,))
  138.                 print("пароль изменен")
  139.  
  140.             else:  # админский участок
  141.                 print("вводим логин того кому меняем пароль и новый пароль:")
  142.                 logtarget = input()
  143.                 newpas = input()
  144.                 c.execute("UPDATE users SET password=? WHERE name=?", (newpas, logtarget))
  145.  
  146.         if command == 'currentinfo': #++++++++++++++
  147.             print("current_info - информация о текущем пользователе")
  148.             #c.execute('SELECT * from users')
  149.              
  150.             c.execute("SELECT * FROM users WHERE name=?", (curu,))
  151.             row = c.fetchone()
  152.             print(row)
  153.  
  154.         if command == 'changelog':
  155.             print("введите свой новый логин\n")
  156.             newlog = input()
  157.             print("заменили ваш логин " + curu + " на введеный вами" + newlog)
  158.             c.execute("UPDATE users SET name=? WHERE name=?", (newlog,curu))
  159.             curu = newlog
  160.  
  161.  
  162.         if command == 'allinfo':  #++++++++++
  163.             print("all_info - доступная информация о всех пользователях")
  164.             if curu == 'admin':
  165.                
  166.                 c.execute('SELECT * FROM users')
  167.                 row = c.fetchone()
  168.                 while row is not None:
  169.                 # print(" Логин: ")
  170.                  print(" Логин: " + row[1] + " | Пароль: " + row[2])
  171.                 # print("Пароль: ")
  172.                 # print(row[2])
  173.                 # print("--------")
  174.                  row = c.fetchone()
  175.             if curu != 'admin':
  176.                  
  177.                 c.execute('SELECT name FROM users')
  178.                 row = c.fetchone()
  179.                 while row is not None:
  180.                     print(" Логин: " + row[0])
  181.                     row = c.fetchone()
  182.  
  183.     else:
  184.          print("залогиньтесь для работы")
  185.  
  186.  
  187.  
  188.     if command == 'exit': #++++++++++++++
  189.         print("из системы не выбраться!!!")
  190.         #print("exit")
  191.         c.close()
  192.         conn.close()
  193.         break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement