authentification_demarrage.py — v2 (correction utilisateur figé)

Bienvenue sur CFTPfr.fr Forums authentification_demarrage.py — v2 (correction utilisateur figé)

  • Ce sujet est vide.
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #292
    Mario Da Conceicao
    Maître des clés

    Correction du 01/08/2026, après contrôle général. Le nom d’utilisateur "admin" était en dur — corrigé pour accepter n’importe quel compte créé via interface_demarrage.py.

    from pathlib import Path
    
    def camera_disponible():
        return any(Path("/dev").glob("video*"))
    
    class AuthentificationDemarrage:
        """
        Vérifie l'identité de la personne à l'insertion de la clé. Priorité :
        reconnaissance faciale si caméra disponible ET activée, sinon code.
        Le code reste TOUJOURS une option de secours.
        """
    
        def __init__(self, gestionnaire_utilisateurs, reconnaissance_faciale_activee=False):
            self.gestionnaire_utilisateurs = gestionnaire_utilisateurs
            self.camera_ok = camera_disponible()
            self.reconnaissance_faciale_activee = reconnaissance_faciale_activee
    
        def methodes_disponibles(self):
            methodes = ["code"]
            if self.camera_ok and self.reconnaissance_faciale_activee:
                methodes.insert(0, "reconnaissance_faciale")
            return methodes
    
        def authentifier(self, methode, donnee, nom_utilisateur=None):
            """
            CORRECTION : nom_utilisateur n'est plus figé sur "admin" — accepte
            n'importe quel compte créé via interface_demarrage.py.
            """
            if methode == "code":
                return self._verifier_code(donnee, nom_utilisateur)
            elif methode == "reconnaissance_faciale" and self.camera_ok:
                return self._verifier_visage(donnee, nom_utilisateur)
            return False
    
        def _verifier_code(self, code, nom_utilisateur=None):
            if nom_utilisateur:
                return self.gestionnaire_utilisateurs.verifier_utilisateur(nom_utilisateur, code)
            # Si aucun nom n'est fourni, tente "admin" par défaut (compte créé
            # automatiquement au premier lancement), mais ce n'est plus une
            # obligation figée.
            return self.gestionnaire_utilisateurs.verifier_utilisateur("admin", code)
    
        def _verifier_visage(self, image_capturee, nom_utilisateur=None):
            raise NotImplementedError("Reconnaissance faciale pas encore installée — active-la explicitement quand tu es prêt.")
Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.
Retour en haut