7a29629c7e3accee6df273b7f16be5ba05b531dc
[mw_actions_logs] / app / controllers / config / actions_logs.php
1 <?php
2
3   class mw_config_actions_logs extends mw_controller{
4
5     function index(&$env){
6       $env->run("config/actions_logs/historique");
7     }
8
9     function historique(&$env){
10       $env->set_config(array("max_list" => 20));
11       $data = $env->data();
12       if(
13         (
14           $historique = $data->list_actions_logs(
15             array(
16               "index_name" => "id",
17               "order_by" => "date_log",
18               "order" => "DESC",
19               "offset" => isset($_GET[$env->param("start")]) ? $_GET[$env->param("start")] : 0,
20               "limit" => $env->config("max_list") ? $env->config("max_list") : null
21             )
22           )
23         ) === false
24       ){
25         $env->erreur("impossible de lire l'historique des logs");
26         return;
27       }
28       foreach($historique["list"] as $id_log => $log){
29         $historique["list"][$id_log]["get"] = $log["get"] ? @unserialize($log["get"]) : false;
30         $historique["list"][$id_log]["post"] = $log["post"] ? @unserialize($log["post"]) : false;
31       }
32       $env->set_out("historique", $historique);
33     }
34
35     function del_historique(&$env){
36       $data = $env->data();
37       if(!$data->clear_actions_logs()){
38         $env->erreur("impossible de vider l'historique");
39         return;
40       }
41       $env->redirect(
42         $env->url("config/actions_logs/historique"),
43         "l'historique a été vidé"
44       );
45     }
46
47     function config(&$env){
48       $data = $env->data();
49       if(($actions_logs_config = $data->get_actions_logs_config()) === false){
50         $env->erreur("impossible de lire la configuration");
51         return;
52       }
53       if($_POST){
54         $actions_logs_config["do_log"] = isset($_POST["do_log"]) ? true : false;
55         $actions_logs_config["default_log"] = ($_POST["default_log"] == "1") ? true : false;
56         $actions_logs_config["default_log_get"] = isset($_POST["default_log_get"]) ? true : false;
57         $actions_logs_config["default_log_post"] = isset($_POST["default_log_post"]) ? true : false;
58         if(!$data->set_actions_logs_config($actions_logs_config)){
59           $env->erreur("erreur lors de la mise à jour de la configuration");
60           return;
61         }
62         $env->redirect(
63           $env->url("config/actions_logs/config"),
64           "la configuration a été mise à jour"
65         );
66       }
67       $env->set_out("actions_logs_config", $actions_logs_config);
68     }
69
70     function logs_actions(&$env){
71       $data = $env->data();
72       if(($actions_logs_config = $data->get_actions_logs_config()) === false){
73         $env->erreur("impossible de lire la configuration");
74         return;
75       }
76       if(($logs_actions = $data->list_logs_actions(array("index_name" => "id", "order_by" => "action"))) === false){
77         $env->erreur("impossible de lire la table #--logs_actions");
78         return;
79       }
80       if($_POST){
81         foreach($_POST as $key => $value){
82           if(substr($key, 0, 14) == "id_log_action_"){
83             $id_log_action = $value;
84             $log_action = array(
85               "log_get" => isset($_POST["log_get_".$id_log_action]) ? 1 : 0,
86               "log_post" => isset($_POST["log_post_".$id_log_action]) ? 1 : 0
87             );
88             if(!$data->set_logs_actions("id", $id_log_action, $log_action)){
89               $env->erreur("erreur lors de l'enregistrement des informations pour les actions");
90               return;
91             }
92           }
93         }
94         $env->redirect(
95           $env->url("config/actions_logs/logs_actions"),
96           "Les informations ont été enregistrées"
97         );
98       }
99       $env->set_out("actions_logs_config", $actions_logs_config);
100       $env->set_out("logs_actions", $logs_actions);
101     }
102
103     function add_log_action(&$env){
104       $data = $env->data();
105       if(($actions_logs_config = $data->get_actions_logs_config()) === false){
106         $env->erreur("impossible de lire la configuration");
107         return;
108       }
109       $log_action = array(
110         "action" => "",
111         "log_get" => false,
112         "log_post" => false
113       );
114       if($_POST){
115         if($_POST["action"]){
116           if($etat = $env->valid_etat($_POST["action"])){
117             $action = $etat["mod"]."/".$etat["controller"]."/".$etat["action"];
118             if(($exists = $data->get_logs_actions("action", $action)) === false){
119               $env->erreur("impossible de savoir si cette action est déjà dans la liste");
120               return;
121             }
122             if($exists) $env->message("l'action ".$action." est déjà dans la liste");
123             $log_action["action"] = $action;
124           }
125           else $env->message("format d'action invalide");
126         }
127         else $env->message("merci de préciser une action");
128         $log_action["log_get"] = isset($_POST["log_get"]) ? true : false;
129         $log_action["log_post"] = isset($_POST["log_post"]) ? true : false;
130         if(!$env->messages()){
131           if($data->add_logs_actions($log_action)){
132             $env->redirect(
133               $env->url("config/actions_logs/logs_actions"),
134               "L'action a été ajoutée dans la liste"
135             );
136           }
137           else{
138             $env->erreur("impossible d'ajouter l'action dans la liste");
139             return;
140           }
141         }
142       }
143       $env->set_out("actions_logs_config", $actions_logs_config);
144       $env->set_out("log_action", $log_action);
145     }
146
147     function del_log_action(&$env){
148       $data = $env->data();
149       if(!($log_action = $data->get_logs_actions("id", $_GET[$env->param("id")]))){
150         $env->erreur("impossible de lire les informations de cette action dans la liste");
151         return;
152       }
153       if(!$data->del_logs_actions("id", $log_action["id"])){
154         $env->erreur("impossible d'effacer cette action de la liste");
155         return;
156       }
157       $env->redirect(
158         $env->url("config/actions_logs/logs_actions"),
159         "l'action a été retirée de la liste"
160       );
161     }
162
163     function del_logs_actions(&$env){
164       $data = $env->data();
165       if(!$data->clear_logs_actions()){
166         $env->erreur("impossible de vider la liste");
167         return;
168       }
169       $env->redirect(
170         $env->url("config/actions_logs/logs_actions"),
171         "la liste a été vidée"
172       );
173     }
174
175   }
176
177 ?>