import mtweb.0.4.1
[mtweb] / web / 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           ( $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0,
20             $_GET[$env->param("alpha")],
21             $_GET[$env->param("status")]
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                   else $env->erreur("Impossible d'ajouter l'utilisateur");
70                 }
71               }
72               else $env->message("ce login existe d&eacute;j&agrave;");
73             }
74             else $env->erreur("impossible de savoir si cet login existe d&eacute;j&agrave;");
75           }
76           else $env->message("merci de pr&eacute;ciser un login");
77         }
78       }
79       else $env->erreur("impossible de lire la liste des status");
80     }
81
82     function edit(&$env)
83     { $data = $env->data();
84       if($this->status)
85       { $env->set_out("status", $this->status);
86         if($env->set_out("user", $data->user($_GET[$env->param("id")])))
87         { if($_POST)
88           { $user = $env->out("user");
89             $id = $user["id"];
90             $login = $user["login"];
91             $password = $user["password"];
92             $_POST["login"] = $login;
93             $env->set_out("user", $_POST);
94             $VALID = true;
95             if(!$_POST["email"])
96             { $env->message("merci de preciser un email");
97               $VALID = false;
98             }
99             if(isset($_POST["change_password"]) && $_POST["change_password"])
100             { if(!$_POST["password"])
101               { $env->message("merci de preciser un mot de passe");
102                 $VALID = false;
103               }
104               if($_POST["password"] != $_POST["password_confirm"])
105               { $env->message("la confirmation du mot de passe est incorrecte");
106                 $VALID = false;
107               }
108             }
109             if($VALID)
110             { if
111               ( $data->set_user
112                 ( $id,
113                   $login,
114                   isset($_POST["change_password"]) && $_POST["change_password"] ? md5($_POST["password"]) : $password,
115                   $_POST["email"],
116                   $_POST["status"]
117                 )
118               )
119               $env->redirect
120               ( $env->url("admin/users"),
121                 "l'utilisateur <strong>".$login."</strong> a &eacute;t&eacute; modifi&eacute;"
122               );
123               else $env->erreur("Impossible de mettre &agrave; jour l'utilisateur");
124             }
125           }
126         }
127         else $env->erreur("Impossible de lire les informations de cet utilisateur");
128       }
129       else $env->erreur("impossible de lire la liste des status");
130     }
131
132     function del(&$env)
133     { $data = $env->data();
134       if($env->set_out("user", $data->user($_GET[$env->param("id")])))
135       { $user = $env->out("user");
136         if($data->del_user($_GET[$env->param("id")])) $env->redirect
137         ( $env->url("admin/users"),
138           "l'utilisateur <strong>".$user["login"]."</strong> a &eacute;t&eacute; supprim&eacute;"
139         );
140         else $env->erreur("Impossible de supprimer l'utilisateur");
141       }
142       else $env->erreur("Impossible de lire les informations de cet utilisateur");
143     }
144
145   }
146
147 ?>