12f3e561cfae5f792ea3f5e81e57ab5776bbafb1
[mtweb] / mw / app / mods / admin / users.php
1 <?php
2
3   class mw_admin_users extends mw_mod{
4
5     var $status;
6
7     function validate(&$env){
8       $data = $env->data();
9       if(($this->status = $data->status()) === false) return "impossible de lire la liste des statuts";
10       return true;
11     }
12
13     function index(&$env){
14       $data = $env->data();
15       if(
16         $env->set_out(
17           "users",
18           $data->users(
19             isset($_GET[$env->param("start")]) ? $_GET[$env->param("start")] : 0,
20             isset($_GET[$env->param("alpha")]) ? $_GET[$env->param("alpha")] : null,
21             isset($_GET[$env->param("status")]) ? $_GET[$env->param("status")] : null
22           )
23         ) !== false
24       ){
25         if($this->status){
26           $env->set_out("status", $this->status);
27         }
28         else $env->erreur("impossible de lire la liste des status");
29       }
30       else $env->erreur("impossible de lire la liste des utilisateurs");
31     }
32
33     function add(&$env){
34       $data = $env->data();
35       if($this->status){
36         $env->set_out("status", $this->status);
37         $env->set_out("user", array("status" => $data->creation_default_status()));
38         if($_POST){
39           $env->set_out("user", $_POST);
40           if($_POST["login"]){
41             if(($exists = $data->user($_POST["login"])) !== false){
42               if(!$exists){
43                 $VALID = true;
44                 if(!$_POST["email"]){
45                   $env->message("merci de preciser un email");
46                   $VALID = false;
47                 }
48                 if(!$_POST["password"]){
49                   $env->message("merci de preciser un mot de passe");
50                   $VALID = false;
51                 }
52                 if($_POST["password"] != $_POST["password_confirm"]){
53                   $env->message("la confirmation du mot de passe est incorrecte");
54                   $VALID = false;
55                 }
56                 if($VALID){
57                   if(
58                     $data->add_user(
59                       $_POST["login"],
60                       md5($_POST["password"]),
61                       $_POST["email"],
62                       $_POST["status"]
63                     )
64                   ){
65                     $env->redirect(
66                       $env->url("admin/users"),
67                       "l'utilisateur <strong>".$_POST["login"]."</strong> a &eacute;t&eacute; ajout&eacute;"
68                     );
69                   }
70                   else $env->erreur("Impossible d'ajouter l'utilisateur");
71                 }
72               }
73               else $env->message("ce login existe d&eacute;j&agrave;");
74             }
75             else $env->erreur("impossible de savoir si cet login existe d&eacute;j&agrave;");
76           }
77           else $env->message("merci de pr&eacute;ciser un login");
78         }
79       }
80       else $env->erreur("impossible de lire la liste des status");
81     }
82
83     function edit(&$env){
84       $data = $env->data();
85       if($this->status){
86         $env->set_out("status", $this->status);
87         if($env->set_out("user", $data->user($_GET[$env->param("id")]))){
88           if($_POST){
89             $user = $env->out("user");
90             $id = $user["id"];
91             $login = $user["login"];
92             $password = $user["password"];
93             $_POST["login"] = $login;
94             $env->set_out("user", $_POST);
95             $VALID = true;
96             if(!$_POST["email"]){
97               $env->message("merci de preciser un email");
98               $VALID = false;
99             }
100             if(isset($_POST["change_password"]) && $_POST["change_password"]){
101               if(!$_POST["password"]){
102                 $env->message("merci de preciser un mot de passe");
103                 $VALID = false;
104               }
105               if($_POST["password"] != $_POST["password_confirm"]){
106                 $env->message("la confirmation du mot de passe est incorrecte");
107                 $VALID = false;
108               }
109             }
110             if($VALID){
111               if(
112                 $data->set_user(
113                   $id,
114                   $login,
115                   isset($_POST["change_password"]) && $_POST["change_password"] ? md5($_POST["password"]) : $password,
116                   $_POST["email"],
117                   $_POST["status"]
118                 )
119               )
120               $env->redirect(
121                 $env->url("admin/users"),
122                 "l'utilisateur <strong>".$login."</strong> a &eacute;t&eacute; modifi&eacute;"
123               );
124               else $env->erreur("Impossible de mettre &agrave; jour l'utilisateur");
125             }
126           }
127         }
128         else $env->erreur("Impossible de lire les informations de cet utilisateur");
129       }
130       else $env->erreur("impossible de lire la liste des status");
131     }
132
133     function del(&$env){
134       $data = $env->data();
135       if($env->set_out("user", $data->user($_GET[$env->param("id")]))){
136         $user = $env->out("user");
137         if($data->del_user($_GET[$env->param("id")])) $env->redirect(
138           $env->url("admin/users"),
139           "l'utilisateur <strong>".$user["login"]."</strong> a &eacute;t&eacute; supprim&eacute;"
140         );
141         else $env->erreur("Impossible de supprimer l'utilisateur");
142       }
143       else $env->erreur("Impossible de lire les informations de cet utilisateur");
144     }
145
146   }
147
148 ?>