3 class mw_admin_users extends mw_mod{
7 function validate(&$env){
9 if(($this->roles = $data->roles()) === false) return "impossible de lire la liste des roles";
13 function index(&$env){
15 if($this->roles) $env->set_out("roles", $this->roles);
17 $env->erreur("impossible de lire la liste des roles");
21 ( $users = $data->users(
22 isset($_GET[$env->param("start")]) ? $_GET[$env->param("start")] : 0,
23 isset($_GET[$env->param("alpha")]) ? $_GET[$env->param("alpha")] : null,
24 isset($_GET[$env->param("role")]) ? $_GET[$env->param("role")] : null
28 $env->set_out("users", $users);
30 else $env->erreur("impossible de lire la liste des utilisateurs");
36 $env->set_out("roles", $this->roles);
45 $user["login"] = $_POST["login"];
48 $env->message("merci de préciser un login");
51 if(($exists = $data->user($_POST["login"])) !== false){
53 $env->message("ce login existe déjà");
58 $env->erreur("impossible de savoir si cet login existe déjà");
61 if($_POST["email"]) $user["email"] = $_POST["email"];
63 $env->message("merci de preciser un email");
66 if($_POST["password"]){
67 if($_POST["password"] == $_POST["password_confirm"]) $user["password"] = md5($_POST["password"]);
69 $env->message("la confirmation du mot de passe est incorrecte");
74 $env->message("merci de preciser un mot de passe");
77 $user["roles"] = array();
78 foreach($_POST as $key => $value){
79 if(substr($key, 0, 5) == "role_"){
80 $id_role = substr($key, 5);
81 if(preg_match("/^[0-9]+$/", $id_role)){
82 $user["roles"][] = $id_role;
96 $env->url("admin/users/edit", array("id" => $user["login"])),
97 "l'utilisateur <strong>".$_POST["login"]."</strong> a été ajouté"
100 else $env->erreur("Impossible d'ajouter l'utilisateur");
103 $env->set_out("user", $user);
105 else $env->erreur("impossible de lire la liste des roles");
108 function edit(&$env){
109 $data = $env->data();
111 $env->set_out("roles", $this->roles);
112 if($user = $data->user($_GET[$env->param("id")])){
115 if($_POST["email"]) $user["email"] = $_POST["email"];
117 $env->message("merci de preciser un email");
120 if(isset($_POST["change_password"]) && $_POST["change_password"]){
121 if(!$_POST["password"]){
122 $env->message("merci de preciser un mot de passe");
125 if($_POST["password"] != $_POST["password_confirm"]){
126 $env->message("la confirmation du mot de passe est incorrecte");
129 if($VALID) $user["password"] = md5($_POST["password"]);
131 $user["roles"] = array();
132 foreach($_POST as $key => $value){
133 if(substr($key, 0, 5) == "role_"){
134 $id_role = substr($key, 5);
135 if(preg_match("/^[0-9]+$/", $id_role) && isset($this->roles[$id_role])){
136 $user["roles"][] = $id_role;
151 $env->url("admin/users/edit", array("id" => $user["login"])),
152 "l'utilisateur a été modifié"
154 else $env->erreur("Impossible de mettre à jour l'utilisateur");
157 $env->set_out("user", $user);
159 else $env->erreur("Impossible de lire les informations de cet utilisateur");
161 else $env->erreur("impossible de lire la liste des roles");
165 $data = $env->data();
166 if($env->set_out("user", $data->user($_GET[$env->param("id")]))){
167 $user = $env->out("user");
168 if($data->del_user($_GET[$env->param("id")])) $env->redirect(
169 $env->url("admin/users"),
170 "l'utilisateur <strong>".$user["login"]."</strong> a été supprimé"
172 else $env->erreur("Impossible de supprimer l'utilisateur");
174 else $env->erreur("Impossible de lire les informations de cet utilisateur");