Dateien hochladen nach „“
parent
07e6ebe859
commit
678a0bd740
|
@ -0,0 +1,83 @@
|
|||
print("newcmd setup start.")
|
||||
# init
|
||||
print("importing modules")
|
||||
try:
|
||||
import ast
|
||||
import hashlib
|
||||
from simplecrypt import encrypt, decrypt
|
||||
from copy import deepcopy
|
||||
except ModuleNotFoundError:
|
||||
print("error: some modules are missing or not being found")
|
||||
print("done")
|
||||
print("loading users")
|
||||
users = open("ressources/users", 'r')
|
||||
users = users.read()
|
||||
users = ast.literal_eval(users)
|
||||
userslen = len(users)
|
||||
usersdata = {}
|
||||
if userslen != 0:
|
||||
errorcount = 0
|
||||
sucesscount = 0
|
||||
for i in range(len(users)):
|
||||
try:
|
||||
tempuser = users[i]
|
||||
usersdata[tempuser["name"]] = tempuser
|
||||
sucesscount += 1
|
||||
except:
|
||||
errorcount += 1
|
||||
print("loading users done. {} users failed to load {} users loaded correctly".format(errorcount, sucesscount))
|
||||
else:
|
||||
print("no users found")
|
||||
# define's
|
||||
def login(user, password):
|
||||
backuser = user
|
||||
h = hashlib.new('sha256')
|
||||
h.update(password.encode())
|
||||
h = h.hexdigest()
|
||||
if h == user["pass"]:
|
||||
decrypted = decrypt(h, user["data"])
|
||||
backuser["data"] = ast.literal_eval(decrypted.decode('utf-8'))
|
||||
backuser["pass"] = h
|
||||
return backuser
|
||||
else:
|
||||
return False
|
||||
|
||||
def updateusersfile(users):
|
||||
usersfile = {}
|
||||
for i in range(len(users)):
|
||||
usersfile[i] = list(users.values())[i]
|
||||
file = open("ressources/users", 'w')
|
||||
file.write(str(usersfile))
|
||||
file.close()
|
||||
|
||||
def createnewaccount():
|
||||
name = input("enter name for your new user: ")
|
||||
password = input("enter password for your new user: ")
|
||||
back = {}
|
||||
back["name"] = name
|
||||
h = hashlib.new('sha256')
|
||||
h.update(password.encode())
|
||||
h = h.hexdigest()
|
||||
back["pass"] = h
|
||||
back["data"] = {}
|
||||
user = deepcopy(back)
|
||||
user["data"] = encrypt(h, str({"rights": "Admin"}).encode())
|
||||
usersdata[user["name"]] = user
|
||||
updateusersfile(usersdata)
|
||||
return back
|
||||
# login
|
||||
if userslen != 0:
|
||||
count = 0
|
||||
for i in usersdata:
|
||||
count += 1
|
||||
print("{}: {}".format(count, i))
|
||||
userin = int(input("please enter target user to login by number: "))
|
||||
if 1 <= userin <= count:
|
||||
back = False
|
||||
while back == False:
|
||||
password = input("please enter password for {}: ".format(list(usersdata.keys())[userin-1]))
|
||||
back = login(list(usersdata.values())[userin-1], password)
|
||||
user = back
|
||||
else:
|
||||
user = createnewaccount()
|
||||
|
Loading…
Reference in New Issue