-- Verrouillage automatique apres une serie d'echecs de mot de passe.
--
-- Une colonne distincte de actif, et non une reutilisation de actif = 0. Les
-- deux etats n'ont ni la meme cause ni le meme remede, et les confondre
-- afficherait « revoque » a un titulaire qui s'est seulement trompe :
--
--   actif = 0                    revocation, decidee par un administrateur ;
--   verrouille_le IS NOT NULL    verrouillage, consequence mecanique d'echecs
--                                repetes, sans decision de personne.
--
-- Ils sont independants : un compte peut etre verrouille et actif, revoque et
-- non verrouille, ou les deux. Reactiver leve les deux, ce qui evite d'avoir a
-- comprendre la difference pour depanner quelqu'un.
--
-- A savoir sur ce mecanisme : verrouiller sur echec de mot de passe est un
-- vecteur de deni de service, puisque connaitre une adresse suffit a bloquer son
-- titulaire. C'est pourquoi le seuil (securite.verrou_max) est nettement
-- au-dessus de celui du blocage temporaire, et pourquoi « mot de passe oublie »
-- leve le verrou : la situation doit pouvoir se reparer sans intervention.

ALTER TABLE utilisateurs
    ADD COLUMN verrouille_le DATETIME NULL AFTER actif,
    ADD KEY idx_utilisateurs_verrouille (verrouille_le);
