Gestion de usuarios

This commit is contained in:
Tatiana Villa Ema 2026-05-03 23:51:54 +02:00
parent d0eaed0f5d
commit e34d855f7c
3 changed files with 15 additions and 4 deletions

1
.gitignore vendored
View File

@ -1,6 +1,5 @@
# Datos sensibles — nunca al repo # Datos sensibles — nunca al repo
config.ini config.ini
users.json
*.pdf *.pdf
tickets/ tickets/

11
app.py
View File

@ -139,16 +139,20 @@ def parsear_texto_ticket(texto):
# Gestion de usuarios (users.json — NO subir al repo) # Gestion de usuarios (users.json — NO subir al repo)
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
def cargar_usuarios(): def cargar_usuarios():
if not USERS_FILE.exists(): if not USERS_FILE.exists() or USERS_FILE.is_dir():
return {} return {}
try: try:
with open(USERS_FILE, encoding="utf-8") as f: with open(USERS_FILE, encoding="utf-8") as f:
contenido = f.read().strip() contenido = f.read().strip()
return json.loads(contenido) if contenido else {} return json.loads(contenido) if contenido else {}
except json.JSONDecodeError: except (json.JSONDecodeError, OSError):
return {} return {}
def guardar_usuarios(users): def guardar_usuarios(users):
# Si por error Docker creó un directorio en lugar del archivo, lo eliminamos
if USERS_FILE.exists() and USERS_FILE.is_dir():
import shutil
shutil.rmtree(USERS_FILE)
with open(USERS_FILE, "w", encoding="utf-8") as f: with open(USERS_FILE, "w", encoding="utf-8") as f:
json.dump(users, f, indent=2, ensure_ascii=False) json.dump(users, f, indent=2, ensure_ascii=False)
@ -653,7 +657,8 @@ def api_estadisticas():
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
# Entry point # Entry point
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
inicializar_admin() # Necesario tanto para gunicorn como para python app.py
if __name__ == "__main__": if __name__ == "__main__":
inicializar_admin()
debug = os.environ.get("FLASK_DEBUG", "false").lower() == "true" debug = os.environ.get("FLASK_DEBUG", "false").lower() == "true"
app.run(host="127.0.0.1", port=5000, debug=debug) app.run(host="127.0.0.1", port=5000, debug=debug)

7
users.json Normal file
View File

@ -0,0 +1,7 @@
{
"admin": {
"password_hash": "scrypt:32768:8:1$lOBFZebKVlP6Q2bH$6e5bffda7080d9b9ae3638ce13e14aae9819e2aeca2ae6809a0b62b93380c939c9ac5bfff9249dc57c4fcc757f8038965b454a9c8715e843c671ace227b7821d",
"nombre": "Admin",
"admin": true
}
}