Guest User

Untitled

a guest
May 20th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.99 KB | None | 0 0
  1. import os
  2.  
  3. key_id = {'login': ['lol', 'admin'],
  4. 'password': ['123456', 'qwerty1'],
  5. 'role': ['user', 'admin'],}
  6. login_authorize = ""
  7. os.system('clear')
  8. print("Добро пожаловать!")
  9.  
  10. def writedatabase():
  11. with open("kek.txt", "w") as file:
  12. if os.stat("kek.txt").st_size == 0:
  13. for key, val in key_id.items():
  14. file.write('{}:{}\n'.format(str(key),str(val)))
  15. file.close()
  16.  
  17. def readdatabase():
  18. OpenFile = True
  19. try:
  20. file = open("kek.txt", "r")
  21. except FileNotFoundError:
  22. OpenFile = False
  23. if OpenFile:
  24. file = open("kek.txt", "r")
  25. onstring = file.read().split("\n")[:-1]
  26. for item in onstring:
  27. key = item.split(" ")[0]
  28. value = item.split(" ")[1:]
  29. key_id[key] = value
  30.  
  31.  
  32. if os.stat("kek.txt").st_size == 0:
  33. writedatabase()
  34.  
  35. def reg():
  36. print("Регистрация:")
  37. print("Создать имя пользователя:")
  38. login = input()
  39. while 1:
  40. if not login:
  41. print('Имя пользователя не может быть пустым!')
  42. print("Пройдите регистрацию заново!")
  43. os.system('pause')
  44. return
  45. if (checkDuplicate(login, 'login') == 1):
  46. print("Пользователь существует!")
  47. login = input()
  48. elif (checkDuplicate(login, 'login') == 0):
  49. break
  50.  
  51. print("Создать пароль:")
  52. password = input()
  53.  
  54. key_id['login'].append(login)
  55. key_id['password'].append(password)
  56. while 1:
  57. if not password:
  58. print("Пароль не может быть пустым!")
  59. print('Пройдите регистрацию заново!')
  60. os.system('pause')
  61. break
  62.  
  63. if login_authorize == "":
  64. choosingRole()
  65. writedatabase()
  66. print('Вы успешно зарегистрировались!')
  67. main()
  68. else:
  69. choosingRole()
  70. writedatabase()
  71. menuAdmin()
  72. return
  73.  
  74. def choosingRole():
  75. print("Выберите вашу роль: 1-пользователь, 2-администратор")
  76. m = input()
  77. if (int(m) == 1):
  78. key_id['role'].append('user')
  79. elif (int(m) == 2):
  80. print("Введите код:")
  81. code = input()
  82. if (int(code) == 1234):
  83. key_id['role'].append('admin')
  84. writedatabase()
  85. else:
  86. print("Вы используете неверный код!")
  87. key_id['role'].append('user')
  88. writedatabase()
  89.  
  90.  
  91.  
  92.  
  93. def authorize():
  94. global login_authorize
  95. print('Вход в систему')
  96. print("Введите ваш логин:")
  97. login = input()
  98.  
  99. while 1:
  100. if (checkDuplicate(login, 'login') == 1):
  101. print("Ведите ваш пароль:")
  102. indexOfLogin = key_id['login'].index(login)
  103. break
  104. elif (checkDuplicate(login, 'login') == 0):
  105. print('Неверный логин!')
  106. os.system('pause')
  107. print("Введите ваш логин заново")
  108. login = input()
  109.  
  110. password = input()
  111. while 1:
  112. if (checkDuplicate(password, 'password') == 1) and (indexOfLogin == key_id['password'].index(password)):
  113. print("Авторизация прошла успешно!")
  114. login_authorize = login
  115. indexOfUser = key_id['login'].index(login)
  116. checkRole()
  117. break
  118. elif (checkDuplicate(password, 'password') == 0):
  119. print("Неккоректный пароль")
  120. os.system('pause')
  121. print('Введите пароль заново')
  122. password = input()
  123.  
  124.  
  125.  
  126. def changePasswordUser():
  127.  
  128. indexOfLogin = key_id['login'].index(login_authorize)
  129. old_password = key_id['password'][indexOfLogin]
  130. print("Введите старый пароль")
  131. password = input()
  132. while password != old_password:
  133. print("Неверный пароль!")
  134. os.system('pause')
  135. print("Попробуйте ввести старый пароль заново")
  136. password = input()
  137. if password == '0':
  138. checkRole()
  139. print("Введите новый проль")
  140. password = input()
  141. key_id['password'][indexOfLogin] = password
  142. writedatabase()
  143. checkRole()
  144.  
  145. def resetPassword():
  146. print("Введите логин пользователя для сброса пароля:")
  147. login = input()
  148. i = 0
  149. while 1:
  150. if (login == key_id['login'][i]):
  151. break
  152. else:
  153. print("Повторите попытку входа в систему")
  154. i = 0
  155. login = input()
  156. i = i + 1
  157. indexOfLogin = key_id['login'].index(login)
  158. key_id['password'][i] = 1234;
  159. writedatabase()
  160. menuAdmin()
  161.  
  162.  
  163. def changeLoginUser():
  164. global login_authorize
  165. print("Введите новый логин для своей учетной записи:")
  166. new_login = input()
  167. indexOfLogin = key_id['login'].index(login_authorize)
  168. key_id['login'][indexOfLogin] = new_login
  169. login_authorize = new_login
  170. writedatabase()
  171. checkRole()
  172.  
  173. def changeRole():
  174. print("Введите логин для изменения учетной записи:")
  175. login = input()
  176. if (checkDuplicate(login, 'login') == 0):
  177. print("Введите ваш логин заново")
  178. login = input()
  179. i = 0
  180. while 1:
  181. if (login == key_id['login'][i]) and i < len(key_id['login']):
  182. break
  183. elif (i > len(key_id['login'])):
  184. print("Повторите попытку входа в систему")
  185. i = 0
  186. login = input()
  187. i = i + 1
  188. print("Выберите роль для изменения: 1 - администратор, 2 - пользователь")
  189. value = int(input())
  190. if value == 1:
  191. key_id['role'][i] = 'admin'
  192. elif value == 2:
  193. key_id['role'][i] = 'user'
  194. else:
  195. key_id['role'][i] = 'user'
  196. writedatabase()
  197. menuAdmin()
  198.  
  199. def checkDuplicate(login, key):
  200. n = 0
  201. for lists_log in key_id[key]:
  202. if (lists_log == login):
  203. n = n + 1
  204. if n > 0:
  205. return 1
  206. else:
  207. return 0
  208.  
  209. def checkRole():
  210. index = key_id['login'].index(login_authorize)
  211. if (key_id['role'][index] == 'admin'):
  212. menuAdmin()
  213. else:
  214. menuUser()
  215.  
  216. def menuUser():
  217. global login_authorize
  218. print("\n\n Добро пожаловать, ", login_authorize, " - пользователь")
  219. print("1 - изменить логин \n2 - изменить пароль \n3 - покинуть учетную запись \n4 - закрыть программу")
  220. value = int(input())
  221. if (value == 1):
  222. print("изменить логин")
  223. changeLoginUser()
  224. elif (value == 2):
  225. print("изменить пароль")
  226. changePasswordUser()
  227. elif (value == 3):
  228. login_authorize = ""
  229. print("Вы покинули учетную запись")
  230. main()
  231. elif (value == 4):
  232. print("До свидания")
  233. exit(0)
  234. else:
  235. print("Некорректный ввод")
  236. menuUser()
  237.  
  238.  
  239. def menuAdmin():
  240. global login_authorize
  241. print("\n\n Добро пожаловать, ", login_authorize, " - администратор")
  242. print("1 - создать пользователя,\n2 - Изменить свой логин,\n3 - изменить свой пароль,\n4 - сбросить пароль пользователя,\n5 - вывести список пользователей,\n6 - изменить роль пользователя,\n7 - выход\n8 - Выход из программы\n")
  243. i = int(input())
  244. if (i == 1):
  245. reg()
  246. elif (i == 2):
  247. changeLoginUser()
  248. elif (i == 3):
  249. changePasswordUser()
  250. elif (i == 4):
  251. print("Сбросить пароль пользователя (автоматически значение пароля равно- 1234")
  252. resetPassword()
  253. elif (i == 5):
  254. print(key_id)
  255. menuAdmin()
  256. elif (i == 6):
  257. print("Изменить роль пользователя")
  258. changeRole()
  259. elif (i == 7):
  260. login_authorize = ""
  261. main()
  262. elif (i == 8):
  263. exit(0)
  264. else:
  265. print("Некорректный ввод")
  266. menuAdmin()
  267.  
  268. def main():
  269. readdatabase()
  270. while (1):
  271. print("\n\n1 - Вход;\n2 - Регистрация;\n3 - Вывод;\n4 - Выход.")
  272. i = input()
  273. if (int(i) == 1):
  274. authorize()
  275. elif (int(i) == 2):
  276. reg()
  277. elif (int(i) == 3):
  278. print(key_id)
  279. elif (int(i) == 4):
  280. exit(0)
  281. else:
  282. print("Некорректный ввод")
  283. main()
  284.  
  285. main()
Add Comment
Please, Sign In to add comment