3 class mw_config_roles extends mw_controller{
10 if(($this->roles = $data->roles()) === false) return "impossible de lire la liste des roles";
17 $roles = $this->roles;
18 $id_role = isset($_GET[$env->param("id")]) && $_GET[$env->param("id")] ? $_GET[$env->param("id")] : 0;
19 if(!isset($roles) || $roles === false){
20 $env->erreur("impossible de lire la liste des roles");
23 if(($actions = $data->get_actions($id_role)) === false){
24 $env->erreur("impossible de lire la liste des droits d'acces");
27 $env->set_out("roles", $roles);
28 $env->set_out("id_role", $id_role);
29 $env->set_out("actions", $actions);
32 function set_default_allow(){
34 $default_allow = $_GET[$env->param("id")];
35 if(!isset($default_allow) || ($default_allow !== "0" && $default_allow !== "1")){
36 $env->erreur("parametre default_allow invalide");
40 if(!$data->set_config("default_allow", $default_allow)){
41 $env->erreur("impossible de mettre a jour la configuration default_allow");
45 $env->url("config/roles"),
46 "la configuration default_allow a été enregistrée"
58 if(!($role["nom"] = $_POST["nom"])) $env->message("merci de preciser un nom");
59 if(!($role["intitule"] = $_POST["intitule"])) $env->message("merci de preciser un intitule");
60 if(!$env->messages()){
61 if(($id_role = $data->add_role($role["nom"], $role["intitule"])) !== false){
63 $env->url("config/roles", array("id" => $id_role)),
64 "le rôle a été enregistré"
67 else $env->erreur("impossible d'enregistrer les informations du role");
70 $env->set_out("role", $role);
76 if(!isset($_GET[$env->param("id")]) || !($role = $data->get_role($_GET[$env->param("id")]))){
77 $env->erreur("impossible de lire les informations du role");
81 if(!($role["nom"] = $_POST["nom"])) $env->message("merci de preciser un nom");
82 if(!($role["intitule"] = $_POST["intitule"])) $env->message("merci de preciser un intitule");
83 if(!$env->messages()){
84 if($data->set_role($role["id"], $role["nom"], $role["intitule"])){
86 $env->url("config/roles", array("id" => $role["id"])),
87 "le rôle a été enregistré"
90 else $env->erreur("impossible d'enregistrer les informations du role");
93 $env->set_out("role", $role);
99 if(!($role = $data->get_role($_POST["id_role"]))){
100 $env->erreur("impossible de lire les informations du role");
103 if(!$data->clear_role_actions($role["id"])){
104 $env->erreur("impossible de supprimer les actions du role");
107 $action_roles = array();
109 foreach($_POST as $key => $value){
110 if(substr($key, 0, 7) == "module_" && ($action = substr($key, 7))) $action_roles[$action] = $role["id"];
111 elseif(substr($key, 0, 11) == "controleur_" && ($action = substr($key, 11))) $action_roles[$action] = $role["id"];
112 elseif(substr($key, 0, 3) == "al_" && ($al_index = substr($key, 3))) $als[] = $al_index;
114 foreach($als as $al_index){
115 $al_prefix = "action_".$al_index."_";
116 $al_prefix_length = strlen($al_prefix);
117 foreach($_POST as $key => $value){
118 if(substr($key, 0, $al_prefix_length) == $al_prefix) $action_roles[$value] = $role["id"];
121 foreach($action_roles as $action => $id_role){
122 if(!$data->add_role_action($id_role, $action)){
123 $env->erreur("impossible d'enregistrer les actions du role");
128 $env->url("config/roles", array("id" => $role["id"])),
129 "les actions du rôle ont été enregistrées"
135 $data = $env->data();
136 if(!isset($_GET[$env->param("id")]) || !($role = $data->get_role($_GET[$env->param("id")]))){
137 $env->erreur("impossible de lire les informations du role");
140 if($data->clear_role_actions($role["id"])){
141 if($data->clear_role_users($role["id"])){
142 if($data->del_role($role["id"])){
144 $env->url("config/roles"),
145 "le rôle a été effacé"
148 else $env->erreur("impossible de supprimer le role");
150 else $env->erreur("impossible de supprimer le role aux utilisateurs");
152 else $env->erreur("impossible de supprimer les actions du role");