public static function vérifier_permission($chemin, $action, $utilisateur = null)
 {
     if ($utilisateur === null) {
         $utilisateur = Authentification::get_utilisateur();
     }
     $groupe = Authentification::get_groupe($utilisateur, true);
     // true => forcer permissions.
     // Parcourt la liste les règles de sécurité (get_regles()), et
     // sélectionne la première pour laquelle $chemin correspond au motif
     // de la règle, $action correspond au motif de la règle, et
     // $utilisateur a comme groupe le groupe de la règle (get_groupe()).
     // Si le champ "autorisation" de la règle est true, on renvoie true,
     // sinon on renvoie false
     foreach (self::get_regles() as $r) {
         if (self::chemin_correspond($chemin, $r["chemin"]) && self::action_correspond($action, $r["action"]) && self::groupe_correspond($groupe, $r["groupe"])) {
             return $r["autorisation"];
         }
     }
     return false;
 }
 public static function vue($chemin, $vue = "normal")
 {
     $singleton = new Chemin("/admin/utilisateurs/");
     if ($vue == "normal") {
         $ret = '';
         $ret .= "<h2>Utilisateurs</h2>";
         if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
             // afficher le lien "Nouvel utilisateur"
         }
         $ret .= '<table class="utilisateurs index"><thead><th>Nom</th><th>Prénom</th><th>Groupe</th><th>Mot de passe</th><th>Peut se connecter</th><th colspan="2"></th></thead><tbody>';
         $listegroupes = "";
         // Construire la liste des groupes sous forme de menu drop-down.
         foreach (Authentification::liste_utilisateurs() as $u) {
             $ret .= '<tr>' . '<form action="' . $chemin->get_url() . '">' . '<td>' . $u . '</td>' . '<td>' . $u . '</td>' . '<td>' . Authentification::get_groupe($u) . '</td>' . '<td>' . Authentification::get_mot_de_passe($u) . '<input type="submit" value="Générer un nouveau mot de passe"/></td>' . '<td>' . (Authentification::get_peut_se_connecter($u) ? "oui" : "non") . '</td>' . '<td><input type="submit" value="appliquer"/></td>' . '<td><input type="submit" value="supprimer"/></td>' . '</form>' . '</tr>';
             // Le champ mot de passe doit être un lien / bouton "nouveau
             // mot de passe automatique" qui redirige vers
             // $chemin->enfant("$utilisateur") ?action=gen_mdp .
         }
         $ret .= '</tbody></table>';
         return new Page($ret, "Utilisateurs");
     }
 }