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"); } }