authentification_demarrage.py — code ou reconnaissance faciale

Bienvenue sur CFTPfr.fr Forums authentification_demarrage.py — code ou reconnaissance faciale

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

    Nouveau composant du 01/08/2026 — authentification au démarrage. À l’insertion de la clé, avant tout accès à MIRA : reconnaissance faciale si une caméra est disponible ET activée, sinon code. Le code reste toujours disponible en secours, même avec la caméra activée — jamais de risque de se retrouver bloqué.

    Principe

    1. Détecte si une caméra est branchée (test léger, ne charge rien de lourd juste pour vérifier)
    2. Si oui et si tu actives cette option : propose la reconnaissance faciale en premier, avec le code en repli
    3. Si non, ou si tu préfères : code uniquement
    4. S’appuie sur le hachage sécurisé déjà en place (interface_demarrage.py)
    from pathlib import Path
    
    def camera_disponible():
        """
        Détecte la présence d'une caméra sous Linux via les périphériques vidéo
        standards, sans charger de bibliothèque lourde juste pour le test.
        """
        return any(Path("/dev").glob("video*"))
    
    class AuthentificationDemarrage:
        """
        Vérifie l'identité de la personne à l'insertion de la clé, avant de
        donner accès à MIRA. Priorité : reconnaissance faciale si caméra
        disponible ET activée par l'utilisateur, sinon code. Le code reste
        TOUJOURS une option de secours, même caméra activée.
        """
    
        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"]  # toujours disponible, en premier ou en secours
            if self.camera_ok and self.reconnaissance_faciale_activee:
                methodes.insert(0, "reconnaissance_faciale")
            return methodes
    
        def authentifier(self, methode, donnee):
            """
            methode : "code" ou "reconnaissance_faciale"
            donnee : le code tapé, ou l'image capturée selon la méthode
            """
            if methode == "code":
                return self._verifier_code(donnee)
            elif methode == "reconnaissance_faciale" and self.camera_ok:
                return self._verifier_visage(donnee)
            return False
    
        def _verifier_code(self, code):
            # S'appuie sur la vérification déjà en place (hachage sécurisé,
            # voir interface_demarrage.py)
            return self.gestionnaire_utilisateurs.verifier_utilisateur("admin", code)
    
        def _verifier_visage(self, image_capturee):
            """
            À brancher une fois une bibliothèque de reconnaissance faciale
            choisie. Volontairement pas installée par défaut — ajoute un vrai
            poids au système, donc uniquement si tu confirmes vouloir cette
            option activée.
            """
            raise NotImplementedError("Reconnaissance faciale pas encore installée — active-la explicitement quand tu es prêt.")

    Ce qui reste à décider avec toi

    • Veux-tu vraiment activer la reconnaissance faciale (poids supplémentaire), ou le code seul suffit pour l’instant ?
    • Si oui : choisir la bibliothèque à utiliser une fois OS-MIRE installé et qu’on peut tester avec une vraie caméra
Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.
Retour en haut