3 class mw_admin_users extends mw_controller{
10 if(($this->roles = $data->roles()) === false) return "impossible de lire la liste des roles";
17 if($this->roles) $env->set_out("roles", $this->roles);
19 $env->erreur("impossible de lire la liste des roles");
23 ( $users = $data->users(
24 isset($_GET[$env->param("start")]) ? $_GET[$env->param("start")] : 0,
25 isset($_GET[$env->param("alpha")]) ? $_GET[$env->param("alpha")] : null,
26 isset($_GET[$env->param("role")]) ? $_GET[$env->param("role")] : null
30 $env->set_out("users", $users);
32 else $env->erreur("impossible de lire la liste des utilisateurs");
39 $env->erreur("impossible de lire la liste des roles");
42 $user = $env->get_model(
49 $user->set_roles(array());
52 foreach($_POST as $key => $value){
53 if(substr($key, 0, 5) == "role_"){
54 $id_role = substr($key, 5);
55 if(preg_match("/^[0-9]+$/", $id_role) && isset($this->roles[$id_role])){
60 $user->set_roles($roles);
61 $user->set_email($_POST["email"]);
62 $user->set_login($_POST["login"]);
63 $user->set_password($_POST["password"]);
64 $valid = $user->valid();
65 foreach($valid["messages"] as $message) $env->message($message);
66 if(!$env->messages()){
67 if(($exists = $data->user($user->get_login())) === false){
68 $env->erreur("impossible de savoir si ce login existe déjà");
72 $env->message("ce login existe déjà");
74 if($_POST["password"] !== $_POST["password_confirm"]){
75 $env->message("la confirmation du mot de passe est incorrecte");
78 if(!$env->messages()){
80 $env->erreur("Impossible d'ajouter l'utilisateur");
84 $env->url("admin/users/edit", array("id" => $user->get_login())),
85 "l'utilisateur a été ajouté"
89 $env->set_out("roles", $this->roles);
90 $env->set_out("user", $user->get_values());
96 $env->erreur("impossible de lire la liste des roles");
99 $user = $env->get_model("users");
100 if(!$user->load("login", $_GET[$env->param("id")])){
101 $env->erreur("impossible de lire les informations de l'utilisateur");
106 foreach($_POST as $key => $value){
107 if(substr($key, 0, 5) == "role_"){
108 $id_role = substr($key, 5);
109 if(preg_match("/^[0-9]+$/", $id_role) && isset($this->roles[$id_role])){
114 $user->set_roles($roles);
115 $user->set_email($_POST["email"]);
116 if(isset($_POST["change_password"]) && $_POST["change_password"]){
117 if(!$_POST["password"]){
118 $env->message("merci de preciser un mot de passe");
120 if($_POST["password"] != $_POST["password_confirm"]){
121 $env->message("la confirmation du mot de passe est incorrecte");
123 if(!$env->messages()) $user->set_password($_POST["password"]);
125 $valid = $user->valid();
126 foreach($valid["messages"] as $message) $env->message($message);
127 if(!$env->messages()){
128 if($user->update("id", $user->get_id())){
130 $env->url("admin/users/edit", array("id" => $user->get_login())),
131 "l'utilisateur a été modifié"
134 else $env->erreur("Impossible de mettre à jour l'utilisateur");
137 $env->set_out("roles", $this->roles);
138 $env->set_out("user", $user->get_values());
143 $user = $env->get_model("users");
144 if(!$user->load("login", $_GET[$env->param("id")])){
145 $env->erreur("impossible de lire les informations de l'utilisateur");
148 if(!$user->delete("login", $user->get_login())){
149 $env->erreur("Impossible de supprimer l'utilisateur");
153 $env->url("admin/users"),
154 "l'utilisateur a été supprimé"