import ssh import csv from util import fprint from util import find_data_file from time import sleep import bcrypt def login(config, user, password, sysid): fprint("Attempting to login as " + user) filename = sysid + "login.csv" #hashpasswd = bcrypt.hashpw(password.encode('utf-8'), user).decode() with open(find_data_file(filename), "w", newline="") as f: writer = csv.writer(f) writer.writerows([[user,password,sysid],]) fprint("done creating csv") #return True ssh.sftp_send_data(config, filename, 'sendlogin') command = "python3 login_service.py " + sysid ssh.run_ssh(config, command, 'scripts') filename = sysid + "success.txt" count = 0 while count < 20: output = ssh.check_for_file(config, filename, 'receivelogin') if output == False: filename = sysid + "fail.txt" if ssh.check_for_file(config, filename, 'receivelogin') == False: # try again count += 1 sleep(0.1) filename = sysid + "success.txt" #raise ValueError("Unable to determine login status") else: return False else: fprint(type(output)) if str(output).find("admin") >= 0 or str(output).find("Admin") >= 0: fprint("Authorized as admin!") return True else: fprint("Not admin") return False return False