#!/usr/bin/env python3 """Legt einen normalen (Nicht-Admin) Benutzer im PoE Manager an.""" import os import sqlite3 from getpass import getpass from flask_bcrypt import Bcrypt BASE_DIR = os.path.dirname(os.path.abspath(__file__)) DB_PATH = os.environ.get("POE_DB_PATH", os.path.join(BASE_DIR, "sqlite.db")) bcrypt = Bcrypt() def main(): username = input("Benutzername: ").strip() password = getpass("Passwort: ") password_confirm = getpass("Passwort bestätigen: ") if password != password_confirm: print("Passwörter stimmen nicht überein!") return pw_hash = bcrypt.generate_password_hash(password).decode("utf-8") conn = sqlite3.connect(DB_PATH) cur = conn.cursor() try: cur.execute( "INSERT INTO users (username, password, is_admin) VALUES (?, ?, ?)", (username, pw_hash, 0), ) conn.commit() print(f"Benutzer '{username}' erfolgreich angelegt.") except sqlite3.IntegrityError: print("Benutzername existiert bereits!") finally: conn.close() if __name__ == "__main__": main()