import tkinter as tk from tkinter import messagebox import mysql.connector import os import subprocess from dotenv import load_dotenv # Charger les variables d'environnement load_dotenv() DB_HOST = os.getenv("DB_HOST") DB_USER = os.getenv("DB_USER") DB_PASSWORD = os.getenv("DB_PASSWORD") DB_NAME = os.getenv("DB_NAME") def ouvrir_excel(site, login): dossier_excel = os.path.join(os.path.dirname(__file__), "excel") chemin_excel = os.path.join(dossier_excel, "Commun.xlsm") subprocess.Popen(["start", chemin_excel], shell=True) # Écrit le nom du site with open(os.path.join(dossier_excel, "site_selectionne.txt"), "w") as f: f.write(site) # Écrit le nom de l'utilisateur connecté with open(os.path.join(dossier_excel, "login_utilisateur.txt"), "w") as f: f.write(login) os.chdir(dossier_excel) # On se place dans le dossier pour lancer Excel subprocess.Popen(["start", "Commun.xlsm"], shell=True) from datetime import date def verifier_connexion(): login = entry_login.get() mdp = entry_mdp.get() try: conn = mysql.connector.connect( host=DB_HOST, user=DB_USER, password=DB_PASSWORD, database=DB_NAME ) cursor = conn.cursor() cursor.execute("SELECT Site, DateExpiration FROM AccesUtilisateurs WHERE NomUtilisateur=%s AND MotDePasse=%s", (login, mdp)) result = cursor.fetchone() if result: site, expiration = result if expiration and expiration < date.today(): messagebox.showerror("Compte expiré", f"Votre compte a expiré le {expiration}.") else: root.destroy() ouvrir_excel(site, login) else: messagebox.showerror("Erreur", "Identifiants invalides.") except Exception as e: messagebox.showerror("Erreur de connexion", str(e)) # Interface utilisateur root = tk.Tk() root.title("Connexion à l'inventaire") tk.Label(root, text="Nom d'utilisateur").grid(row=0, column=0) tk.Label(root, text="Mot de passe").grid(row=1, column=0) entry_login = tk.Entry(root) entry_mdp = tk.Entry(root, show="*") entry_login.grid(row=0, column=1) entry_mdp.grid(row=1, column=1) tk.Button(root, text="Connexion", command=verifier_connexion).grid(row=2, columnspan=2, pady=10) root.mainloop()