Files
loustique-home/flask/add_user.py

48 lines
1.3 KiB
Python
Raw Normal View History

2026-03-21 10:53:02 +01:00
import pymysql
import getpass
import bcrypt
from dotenv import load_dotenv
from datetime import datetime
import os
2026-03-24 23:06:07 +01:00
from log import log
2026-03-21 10:53:02 +01:00
load_dotenv()
def init():
try:
conn = pymysql.connect(
host=os.getenv("DB_HOST", "127.0.0.1"),
port=int(os.getenv("DB_PORT", 3306)),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
database=os.getenv("DB_NAME"),
charset=os.getenv("DB_CHARSET", "utf8mb4")
)
return conn
except pymysql.err.OperationalError as e:
2026-03-24 23:06:07 +01:00
print(f"Erreur de connexion : {e}")
log.error(f"Erreur de connexion : {e}")
2026-03-21 10:53:02 +01:00
return None
2026-03-24 23:06:07 +01:00
def add_user(username, password, role):
2026-03-21 10:53:02 +01:00
conn = init()
if conn is None:
return False
2026-03-24 23:06:07 +01:00
2026-03-21 10:53:02 +01:00
hashed = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
2026-03-24 23:06:07 +01:00
2026-03-21 10:53:02 +01:00
try:
cursor = conn.cursor()
2026-03-24 23:06:07 +01:00
requete = "INSERT INTO Auth (username, password, Fonctions, created_at) VALUES (%s, %s, %s, %s)"
cursor.execute(requete, (username, hashed, role, datetime.now()))
2026-03-21 10:53:02 +01:00
conn.commit()
2026-03-24 23:06:07 +01:00
log.info(f"Utilisateur '{username}' ({role}) ajouté")
return True
2026-03-21 10:53:02 +01:00
except pymysql.err.IntegrityError:
2026-03-24 23:06:07 +01:00
log.error(f"Utilisateur existant : {username}")
return False
2026-03-21 10:53:02 +01:00
finally:
cursor.close()
2026-03-24 23:06:07 +01:00
conn.close()