Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sqlite3
- import string
- import random
- import time
- import datetime
- import getpass
- conn = sqlite3.connect('laba.db')
- c = conn.cursor()
- c.execute('''CREATE TABLE users (id int auto_increment primary key,name varchar, password varchar)''')
- c.execute("INSERT INTO users (name,password) VALUES ('admin','123')") # создается суперпользователь
- c.execute("INSERT INTO users (name,password) VALUES ('user','1234')") #для теста второй пользователь обычный
- #c.execute("INSERT INTO users (name,password) VALUES ('user1','qwerty')") #для теста третий пользователь обычный
- curu = 'admin' #для проверки
- token = 1
- print("help - список команд")
- print("для входа в систему нужно ввести `login`;")
- while 1:
- #print("для входа в систему нужно ввести `login`, после авторизации `help` - для вывода доступных команд")
- command = input()
- if command == 'login': #ввожу имя потом ищу по базе даю пароль, если апроль верно токен=1 в логауте токен=0
- #print("log_in")
- curu = input("вводим логин:")
- c.execute("SELECT password FROM users WHERE name=?", (curu,)) #хватаю пароль по логину
- b = c.fetchone() #разбил пароль на символы
- e = b[0]
- print(b[0])
- i = 0
- r = 0
- r1 = 0
- while r != 1:
- print("ввод пароля: ")
- box = getpass.getpass()
- if box == b[0]:
- token = 1
- r = 1
- else:
- token = 0
- r1 = r1 + 10
- print("ошибка ввода пароля")
- r1 = str(r1)
- print("повторный ввод доступен через " + r1 + " секунд")
- r1 = int(r1)
- time.sleep(r1)
- if token == 1:
- print("вы вошли в систему под логином: " + curu)
- if token != 0:
- if command == 'help': #+++++++++++++++++
- print("_____________________________________________________________")
- print("|списoк команд |")
- print("|___________________________________________________________|")
- print("|logout - выйти из системы |")
- print("|datetime - время |")
- print("|adduser - добавить пользователя(админ) |")
- print("|deluser - удалить пользователя(админ) |")
- print("|changepaz - смена пароля |")
- print("|currentinfo - информация о текущем пользователе |")
- print("|changelog - смена логин |")
- print("|allinfo - доступная информация о всех пользователях |")
- print("|exit - вход из сиситемы |")
- print("|___________________________________________________________|")
- if command == 'logout': #+++++++++++++++++++
- print("вы вышли из системы")
- token = 0
- if command == 'datetime': #+++++++++++++++++
- now = datetime.datetime.now()
- #datetime.datetime()
- print("точное время:")
- print(datetime.datetime.now())
- if curu == 'admin':
- if command == 'adduser': #++++++++++++++++++++
- print("adduser: вводим новый логин-пароль")
- print("введите логин")
- newname = input()
- print("введите пароль")
- newpass = input()
- c.execute("INSERT INTO users (name,password) VALUES (?, ?)",(newname,newpass,))
- print("пользователь добавлен")
- if command == 'deleteuser': #+++++++++++++
- print("deluser - удалить пользователя")
- deltarget = input("ввести имя того кого хотим удалить: ")
- c.execute("DELETE FROM users WHERE name=?",(deltarget,))
- print("пользователь "+deltarget+" удален")
- if command == 'changepaz': # +++++++++++++++++++++++
- if curu != 'admin':
- print(
- "смена пароля, но сначала нужно ввести повторно свой логин и затем старый пароль") # добавить проверку
- c.execute("SELECT password FROM users WHERE name=?", (curu,)) # хватаю пароль по логину
- b = c.fetchone() # разбил пароль на символы
- e = b[0]
- i = 0
- r = 0
- r1 = 0
- while r != 1:
- print("ввод пароля: ")
- box = getpass.getpass()
- if box == b[0]:
- token = 1
- r = 1
- print("введите новый пароль")
- newpas = input()
- c.execute("UPDATE users SET password=? WHERE name=?", (newpas, curu))
- print("пароль был успешно изменен")
- break
- else:
- r1 = r1 + 10
- print("ошибка ввода пароля - попытка сменить его провалилась")
- r1 = str(r1)
- print("повторный ввод доступен через " + r1 + " секунд")
- r1 = int(r1)
- time.sleep(r1)
- newpas = input()
- c.execute("UPDATE users SET password=? WHERE name=?", (newpas, curu,))
- print("пароль изменен")
- else: # админский участок
- print("вводим логин того кому меняем пароль и новый пароль:")
- logtarget = input()
- newpas = input()
- c.execute("UPDATE users SET password=? WHERE name=?", (newpas, logtarget))
- if command == 'currentinfo': #++++++++++++++
- print("current_info - информация о текущем пользователе")
- #c.execute('SELECT * from users')
- c.execute("SELECT * FROM users WHERE name=?", (curu,))
- row = c.fetchone()
- print(row)
- if command == 'changelog':
- print("введите свой новый логин\n")
- newlog = input()
- print("заменили ваш логин " + curu + " на введеный вами" + newlog)
- c.execute("UPDATE users SET name=? WHERE name=?", (newlog,curu))
- curu = newlog
- if command == 'allinfo': #++++++++++
- print("all_info - доступная информация о всех пользователях")
- if curu == 'admin':
- c.execute('SELECT * FROM users')
- row = c.fetchone()
- while row is not None:
- # print(" Логин: ")
- print(" Логин: " + row[1] + " | Пароль: " + row[2])
- # print("Пароль: ")
- # print(row[2])
- # print("--------")
- row = c.fetchone()
- if curu != 'admin':
- c.execute('SELECT name FROM users')
- row = c.fetchone()
- while row is not None:
- print(" Логин: " + row[0])
- row = c.fetchone()
- else:
- print("залогиньтесь для работы")
- if command == 'exit': #++++++++++++++
- print("из системы не выбраться!!!")
- #print("exit")
- c.close()
- conn.close()
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement