2010-moteur-site-simple/cms2/modules/admin/admin-utilisateurs.php

102 lines
2.7 KiB
PHP

<?php
class AdminListeUtilisateurs extends Page {
public static function ressources_statiques() {
return qw("i_icône_nouvelle_page c_style");
}
public static function ressources_dynamiques() {
return qw("h_page h_liste_mots_de_passe");
}
public static function types_enfants() {
return qw("AdminUtilisateur");
}
public static function attributs() {
return qw();
}
public function res_i_icône_nouvelle_page() {
return StockageFichiers::envoyer_fichier_statique(Path::combine(dirname(__FILE__), "nouvel_utilisateur.png"));
}
public function res_c_style() {
niy("res_c_style");
}
public function res_h_page($d) {
$d->w_titre("Utilisateurs");
$l = $d->article()->w_tableau($this->enfants(true, "nom asc prenom asc"), function($e, $tr) {
$e->rendu("h_admin", $tr);
});
$nouveau = $l->tbody(0)->tr()->td(); // TODO : colspan
$nouveau->text("Nouvel utilisateur");
return $d;
}
public function res_h_liste_mots_de_passe($d) {
$d->w_titre("Liste de mots de passe.");
$l = $d->article()->w_liste($this->enfants("@groupe = utilisateurs", "nom asc prenom asc"), function($e, $li) {
$e->rendu("h_admin_mdp", $li);
});
return $d;
}
}
class AdminUtilisateur extends Page {
public static function ressources_statiques() {
return qw("c_style");
}
public static function ressources_dynamiques() {
// TODO : h_page = affichage "en grand" de l'utilisateur (~= page perso, par ex. destination d'un lien de la page contacts).
return qw("h_admin");
}
public static function types_enfants() {
return qw("AdminUtilisateur");
}
public static function attributs() {
return array(
"nom" => "Dupondt",
"prenom" => "Jean",
"equipe" => null, // TODO
"mot_de_passe" => "",
"groupe" => "utilisateurs",
"peut_se_connecter" => false // TODO : permissions différentes (l'utilisateur ne peut pas modifier ça).
);
}
public function res_c_style() {
niy("res_c_style");
}
public function res_h_admin($d) {
// Vue de l'utilisateur pour inclusion dans admin/utilisateurs.
assert('$d->type() == "tr"');
$a = $d->article();
//$d->w_titre("" . $this->nom . $this->prenom);
$a->w_field($this->nom);
$a->w_field($this->prenom);
$a->w_field($this->equipe);
$a->w_field($this->mot_de_passe);
$a->w_field($this->groupe); // TODO : menu de séléction
$a->w_field($this->peut_se_connecter); // TODO : checkbox
return $a;
}
public function res_h_admin_mdp($d) {
// Vue de l'utilisateur pour inclusion dans admin/utilisateurs/liste des mots de passe.
$a = $d->article();
$a->w_field($this->nom);
$a->w_field($this->prenom);
$a->w_field($this->mot_de_passe);
return $a;
}
}
Page::ajouter_type("AdminListeUtilisateurs");
?>