def import_users(csv): """ Importing users from .csv file. """ mongo = database.MongoDB() db = mongo.connect() try: with open(csv, "r") as f: print("Format expected:\n") print("John, Adm, Analyst, [email protected], john, 5up3r") print("Alan, Oper, Analyst, [email protected], alan, s3cr3t") opt = input("\nConfirm Import (y/n)? ") if opt == "y": for line in f: line_split = line.split(',') print("INFO: processing user ->", line_split[4]) user_data = {} salt = bcrypt.gensalt() timestamp = datetime.now() user_data["FullName"] = line_split[0] user_data["Area"] = line_split[1] user_data["Role"] = line_split[2] user_data["Email"] = line_split[3] user_data["UserName"] = line_split[4] p_text = line_split[5].rstrip('\n') p_hash = bcrypt.hashpw(p_text.encode('utf8'), salt) user_data["Password"] = p_hash user_data["Creation"] = timestamp user_data["Modification"] = timestamp db.Users.insert_one(user_data) print("Done!") else: print("Bye!") except Exception as e: print("ERROR:", e) print(" - line:", line)
def export_users(csv): """ Export users from .csv file. """ print("[Exporting]\n") print("INFO: do not import this file !!!") mongo = database.MongoDB() db = mongo.connect() try: users = db.Users.find({}, {"_id": 0}) if users.count() > 0: with open(csv, "w") as f: f.write("*** DO NOT IMPORT THIS FILE ***\n") for user in users: line = "{0},{1},{2},{3},{4}".format( user["FullName"], user["Area"], user["Role"], user["Email"], user["UserName"]) f.write(line + "\n") print("Done!") else: print("INFO: no users to export") except Exception as e: print("ERROR:", e)
print(" --search: searches user and returns info (summary)") print(" --search-full: searches user and returns info (full)") print(" --credentials: verifies user credentials") print(" --update: updates information for a user") print(" --create: creates user") print(" --remove: removes user") print(" --expire: expire session for a user") print(" --sessions: list active sessions") print(" --help: this help") if __name__ == "__main__": if len(sys.argv) == 1: helper() else: mongo = database.MongoDB() db = mongo.connect() param = sys.argv[1] if param == "--credentials": username = input("\n* Username: "******"--search": username = input("\n* Username: "******"summary")) elif param == "--search-full": username = input("\n* Username: "******"full") elif param == "--create": username = input("\n* Username: "******"--remove":