Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pas= '123456'
- passs = 'abcd12'
- import sqlite3
- import string
- import random
- #import menu
- #import data_time
- #пароль случайное число случайных позиций
- #password = "mypass"
- #passwordByChar = list(password)
- #print(passwordByChar)
- #print(passwordByChar[3])
- import getpass
- #pw = getpass.getpass()
- conn = sqlite3.connect('laba21.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','123')") #для теста второй пользователь обычный
- #c.execute("INSERT INTO users (name,password) VALUES ('user1','qwerty')") #для теста третий пользователь обычный
- curu = 'admin' #для проверки
- token = 1
- print("для входа в систему нужно ввести `login`, после авторизации `help` - для вывода доступных команд")
- 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,)) #хватаю пароль по логину
- # number = random.randint(1, 6) # значение от 1 до 6 органичил
- b = c.fetchone() #разбил пароль на символы
- print(b)
- e = str(b)
- print("b =" + e)
- # print (e)
- i = 0
- print("проверим позиций: ")# + str(number)) #str(переменная( превращает что-то в строку
- # for i in range(number):
- # g = random.randint(1,6)
- ##print("позиция" + str(g))
- #print(e[i])
- ##check = e[g-1]
- # print("check assist:" + check)
- box = input()
- q = 123
- q = str(q)
- print("box = " + box)
- #box = getpass.getpass('Password:')
- #print(box)
- # print("box=" + box +" b=" + b)
- if box == e:
- token = 1
- else:
- token = 0
- print("ошибка ввода пароля")
- break
- if token == 1:
- print("вы вошли в систему под логином: " + curu)
- if token != 0:
- if command == 'logout': #+++++++++++++++++++
- print("вы вышли из системы")
- token = 0
- if command == 'help': #+++++++++++++++++++++++
- menu.help()
- if command == 'datetime': #+++++++++++++++++
- data_time.datetime()
- if curu == 'admin':
- if command == 'adduser': #++++++++++++++++++++
- print("adduser: вводим новый логин-пароль")
- newname = input()
- newpass = input()
- c.execute("INSERT INTO users (name,password) VALUES (?, ?)",(newname,newpass,))
- if command == 'deleteuser': #+++++++++++++
- print("deluser - удалить пользователя")
- deltarget = input("ввести имя того кого хотим удалить: ")
- c.execute("DELETE FROM users WHERE name=?",(deltarget,))
- print("пользователь "+deltarget+" удален")
- if command == 'changepaz': # +++++++++++++++++++++++
- if curu != 'admin':
- print(
- "changepassword - смена пароля, но сначала нужно ввести повторно свой логин и затем старый пароль") # добавить проверку
- c.execute("SELECT password FROM users WHERE name=?", (curu,)) # хватаю пароль по логину
- number = random.randint(1, 6) # значение от 1 до 6 органичил
- b = c.fetchone() # разбил пароль на символы
- e = b[0]
- print(e[1])
- i = 0
- print("проверим позиций: " + str(number)) # str(переменная( превращает что-то в строку
- for i in range(number):
- g = random.randint(1, 6)
- print("позиция" + str(g))
- # print(e[i])
- check = e[g-1]
- print("check assist:" + check)
- box = input()
- if check == box:
- # permission = 1
- newpas = input()
- c.execute("UPDATE users SET password=? WHERE name=?", (newpas, curu))
- print("пароль был успешно изменен")
- break
- else:
- # permission = 0
- print("ошибка ввода пароля - попытка сменить его провалилась")
- break
- 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(" Логин: " + row[0] + " | Пароль: " + row[1])
- 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("exit")
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement