Gestion de usuarios
This commit is contained in:
parent
d0eaed0f5d
commit
e34d855f7c
|
|
@ -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
11
app.py
|
|
@ -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)
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"admin": {
|
||||||
|
"password_hash": "scrypt:32768:8:1$lOBFZebKVlP6Q2bH$6e5bffda7080d9b9ae3638ce13e14aae9819e2aeca2ae6809a0b62b93380c939c9ac5bfff9249dc57c4fcc757f8038965b454a9c8715e843c671ace227b7821d",
|
||||||
|
"nombre": "Admin",
|
||||||
|
"admin": true
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue