X-Git-Url: http://git.dj3c1t.com/index.cgi?a=blobdiff_plain;f=mw%2Fapp%2Fmods%2Fadmin%2Fusers.php;fp=mw%2Fapp%2Fmods%2Fadmin%2Fusers.php;h=12f3e561cfae5f792ea3f5e81e57ab5776bbafb1;hb=36ed114046cbe3d72a3589230e9f306a54fcc79d;hp=0000000000000000000000000000000000000000;hpb=281c96e95451269f2614684b8de5be25862c8374;p=mtweb diff --git a/mw/app/mods/admin/users.php b/mw/app/mods/admin/users.php new file mode 100644 index 0000000..12f3e56 --- /dev/null +++ b/mw/app/mods/admin/users.php @@ -0,0 +1,148 @@ +data(); + if(($this->status = $data->status()) === false) return "impossible de lire la liste des statuts"; + return true; + } + + function index(&$env){ + $data = $env->data(); + if( + $env->set_out( + "users", + $data->users( + isset($_GET[$env->param("start")]) ? $_GET[$env->param("start")] : 0, + isset($_GET[$env->param("alpha")]) ? $_GET[$env->param("alpha")] : null, + isset($_GET[$env->param("status")]) ? $_GET[$env->param("status")] : null + ) + ) !== false + ){ + if($this->status){ + $env->set_out("status", $this->status); + } + else $env->erreur("impossible de lire la liste des status"); + } + else $env->erreur("impossible de lire la liste des utilisateurs"); + } + + function add(&$env){ + $data = $env->data(); + if($this->status){ + $env->set_out("status", $this->status); + $env->set_out("user", array("status" => $data->creation_default_status())); + if($_POST){ + $env->set_out("user", $_POST); + if($_POST["login"]){ + if(($exists = $data->user($_POST["login"])) !== false){ + if(!$exists){ + $VALID = true; + if(!$_POST["email"]){ + $env->message("merci de preciser un email"); + $VALID = false; + } + if(!$_POST["password"]){ + $env->message("merci de preciser un mot de passe"); + $VALID = false; + } + if($_POST["password"] != $_POST["password_confirm"]){ + $env->message("la confirmation du mot de passe est incorrecte"); + $VALID = false; + } + if($VALID){ + if( + $data->add_user( + $_POST["login"], + md5($_POST["password"]), + $_POST["email"], + $_POST["status"] + ) + ){ + $env->redirect( + $env->url("admin/users"), + "l'utilisateur ".$_POST["login"]." a été ajouté" + ); + } + else $env->erreur("Impossible d'ajouter l'utilisateur"); + } + } + else $env->message("ce login existe déjà"); + } + else $env->erreur("impossible de savoir si cet login existe déjà"); + } + else $env->message("merci de préciser un login"); + } + } + else $env->erreur("impossible de lire la liste des status"); + } + + function edit(&$env){ + $data = $env->data(); + if($this->status){ + $env->set_out("status", $this->status); + if($env->set_out("user", $data->user($_GET[$env->param("id")]))){ + if($_POST){ + $user = $env->out("user"); + $id = $user["id"]; + $login = $user["login"]; + $password = $user["password"]; + $_POST["login"] = $login; + $env->set_out("user", $_POST); + $VALID = true; + if(!$_POST["email"]){ + $env->message("merci de preciser un email"); + $VALID = false; + } + if(isset($_POST["change_password"]) && $_POST["change_password"]){ + if(!$_POST["password"]){ + $env->message("merci de preciser un mot de passe"); + $VALID = false; + } + if($_POST["password"] != $_POST["password_confirm"]){ + $env->message("la confirmation du mot de passe est incorrecte"); + $VALID = false; + } + } + if($VALID){ + if( + $data->set_user( + $id, + $login, + isset($_POST["change_password"]) && $_POST["change_password"] ? md5($_POST["password"]) : $password, + $_POST["email"], + $_POST["status"] + ) + ) + $env->redirect( + $env->url("admin/users"), + "l'utilisateur ".$login." a été modifié" + ); + else $env->erreur("Impossible de mettre à jour l'utilisateur"); + } + } + } + else $env->erreur("Impossible de lire les informations de cet utilisateur"); + } + else $env->erreur("impossible de lire la liste des status"); + } + + function del(&$env){ + $data = $env->data(); + if($env->set_out("user", $data->user($_GET[$env->param("id")]))){ + $user = $env->out("user"); + if($data->del_user($_GET[$env->param("id")])) $env->redirect( + $env->url("admin/users"), + "l'utilisateur ".$user["login"]." a été supprimé" + ); + else $env->erreur("Impossible de supprimer l'utilisateur"); + } + else $env->erreur("Impossible de lire les informations de cet utilisateur"); + } + + } + +?> \ No newline at end of file