source: pmb4.2/trunk/fuentes/pmb/admin/acces/domain.inc.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 9.1 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: domain.inc.php,v 1.7.4.1 2015-10-02 08:37:08 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9require_once("$class_path/acces.class.php");
10require_once("$include_path/templates/acces.tpl.php");
11
12//recuperation domaine
13if (!$id) return;
14if (!$ac) {
15        $ac= new acces();
16        $t_cat= $ac->getCatalog();
17}
18if (!$dom) {
19        $dom=$ac->setDomain($id);
20}
21
22
23echo window_title($database_window_title.$msg[7].$msg[1003].$msg[1001]);
24//construction menu
25$admin_menu_acces = "<h1>".htmlentities($msg["admin_menu_acces"], ENT_QUOTES, $charset)."<span>&nbsp;&gt;&nbsp;!!menu_sous_rub!!</span></h1>";
26$admin_menu_acces.= "<div class='hmenu'>";
27foreach($t_cat as $k=>$v) {
28        $lib=htmlentities($v['comment'], ENT_QUOTES, $charset);
29        $admin_menu_acces.= '<span';
30        if ($id==$k) {
31                $admin_menu_acces.= " class='selected'";
32                $menu_sous_rub=$lib;
33        }
34        $admin_menu_acces.= "><a href='./admin.php?categ=acces&sub=domain&action=view&id=".$k."'>$lib</a></span>";
35}
36unset($v);
37$admin_menu_acces.= "</div>";
38$admin_menu_acces=str_replace('!!menu_sous_rub!!',$menu_sous_rub, $admin_menu_acces);
39$admin_layout = str_replace('!!menu_contextuel!!', $admin_menu_acces, $admin_layout);
40print $admin_layout;
41               
42
43function show_domain($id,$maj=false) {
44
45        global $dbh, $msg, $charset;
46        global $dom;
47        global $dom_view_form, $dom_glo_rights_form,$maj_form; 
48       
49        $form = $dom_view_form;
50       
51        //affichage lien roles utilisateurs
52        $txt = htmlentities($dom->getComment('user_prf_lib'),ENT_QUOTES,$charset);
53        $row = "<tr style=\"cursor:pointer;\" onmousedown=\"document.location='./admin.php?categ=acces&sub=user_prf&action=list&id=$id';\" ";
54        $row.= "onmouseout=\"this.className='even'\" onmouseover=\"this.className='surbrillance'\" class=\"even\"><td><strong>$txt</strong></td></tr>";
55        //affichage lien profils ressources
56        $txt = htmlentities($dom->getComment('res_prf_lib'),ENT_QUOTES,$charset);
57        $row.= "<tr style=\"cursor:pointer;\" onmousedown=\"document.location='./admin.php?categ=acces&sub=res_prf&action=list&id=$id';\" ";
58        $row.= "onmouseout=\"this.className='odd'\" onmouseover=\"this.className='surbrillance'\" class=\"odd\"><td><strong>$txt</strong></td></tr>";
59        $form = str_replace ('<!-- rows -->', $row, $form);
60       
61        //affichage droits
62        $r_header = $msg['dom_rights_lib'];
63        $form = str_replace ('!!rights_header!!', htmlentities($r_header, ENT_QUOTES, $charset), $form);
64       
65        //recuperation roles utilisateurs
66        $t_u[0]= $dom->getComment('user_prf_def_lib');  //role par defaut
67        $qu=$dom->loadUsedUserProfiles();
68        $ru=pmb_mysql_query($qu, $dbh);
69        if (pmb_mysql_num_rows($ru)) {
70                while(($row=pmb_mysql_fetch_object($ru))) {
71                       
72                $t_u[$row->prf_id]= $row->prf_name;
73                }
74        }
75        //print '<pre>';print_r($t_u);print '</pre>';
76       
77        //recuperation profils ressources
78        $t_r[0]=$dom->getComment('res_prf_def_lib');    //profil par defaut
79        $qr=$dom->loadUsedResourceProfiles();
80        $rr=pmb_mysql_query($qr, $dbh);
81        if (pmb_mysql_num_rows($rr)) {
82                while(($row=pmb_mysql_fetch_object($rr))) {
83                $t_r[$row->prf_id]= $row->prf_name;
84                }
85        }
86        //print '<pre>';print_r($t_r);print '</pre>';
87       
88        //Recuperation des controles dependants de l'utilisateur       
89        $t_ctl=$dom->getControls(0);
90        //print '<pre>';print_r($t_ctl);print '</pre><br />';
91       
92        //Recuperation des controles independants de l'utilisateur     
93        $t_ctli=$dom->getControls(1);
94        //print '<pre>';print_r($t_ctl);print '</pre><br />';
95       
96        //Recuperation des droits
97        $t_rights = $dom->loadDomainRights();
98        //print '<pre>';print_r($t_rights);print '</pre><br />';
99
100       
101        //creation du formulaire
102       
103        //droits independants des profils
104        if (count($t_ctli)) {
105               
106                        $r_rows = "";
107                        foreach($t_ctli as $k2=>$v2) {
108                                                                               
109                                $r_rows.="
110                                        <tr>
111                                                <td style='width:25px;' ><input type='checkbox' name='chk_rights[0][0][".$k2."]' id='chk_rights[0][0][".$k2."]' value='1' ";
112                                if ($t_rights[0][0] & (pow(2,$k2-1)) ) {
113                                        $r_rows.= "checked='checked' ";
114                                }
115                                $r_rows.= "/></td>
116                                                <td><label for='chk_rights[0][0][".$k2."]'>".htmlentities($v2, ENT_QUOTES, $charset)."</label></td>
117                                        </tr>";
118                        }
119
120                        $dom_glo_rights_form = str_replace ('<!-- rows -->', $r_rows, $dom_glo_rights_form);           
121                        $form = str_replace('<!-- dom_glo_rights_form -->',$dom_glo_rights_form,$form);
122        }
123
124       
125       
126        //droits par profils   
127        $nb_u=count($t_u);
128        $nb_r=count($t_r);
129        if ($nb_u && $nb_r) {
130               
131                $dom_usr_sel= "<select name='dom_usr_sel' class='dom_sel' onchange='dom_move_to(this.value, this.selectedIndex);'>";
132                foreach($t_u as $k0=>$v0) {
133                        $dom_usr_sel.= "<option value='col_".$k0."' ".(($k0==0)?"selected='selected'":'')." >".(htmlentities($v0, ENT_QUOTES, $charset))."</option>";
134                }
135                $dom_usr_sel.= "</select>";
136               
137                $dom_nb_col_sel= "<select name='dom_nb_col_sel' onchange='dom_resize_to(this.value, this.selectedIndex);'>";
138                for($i=5;$i<$nb_u;$i+=5) {
139                        $dom_nb_col_sel.="<option value='".$i."' >".$i."</option>";
140                }
141                $dom_nb_col_sel.="<option value='".$nb_u."' >".$nb_u."</option>";
142                $dom_nb_col_sel.= "</select>";
143               
144                $form = str_replace('<!-- prf_rights_lib -->',htmlentities($msg['dom_prf_rights_lib'],ENT_QUOTES,$charset),$form);
145               
146                //1ere colonne
147                $nr=10;
148                $l_form="<div class='dom_row2' ><div class='dom_cell2' ><br /><input type='button' class='bouton_small' value='<<' onclick='dom_move_first();' /><input type='button' class='bouton_small' value='<' onclick='dom_move_left();' />".$dom_nb_col_sel."<input type='button' class='bouton_small' value='>' onclick='dom_move_right();' /><br />".$dom_usr_sel."</div></div>";
149                foreach($t_r as $k=>$v) {
150                        if(!$nr) {
151                                $l_form.="<div class='dom_row2'><div class='dom_cell2'><input type='button' class='bouton_small' value='<<' onclick='dom_move_first();' /><input type='button' class='bouton_small' value='<' onclick='dom_move_left();' />".$dom_nb_col_sel."<input type='button' class='bouton_small' value='>' onclick='dom_move_right();' /><br />".$dom_usr_sel."</div></div>";
152                                $nr=10;
153                        }
154                        $nr--;
155                        $l_form.= "<div class='dom_row2'><div class='dom_cell2_h' title='".htmlentities($v, ENT_QUOTES, $charset)."' >".htmlentities($v, ENT_QUOTES, $charset)."</div></div>";
156                }
157                $form = str_replace ('<!-- col_h -->', $l_form, $form);
158               
159                //autres colonnes
160                $n_col=1;
161                foreach($t_u as $k1=>$v1) {
162
163                        $form = str_replace ('<!-- o_cols -->', "<div id='col_".$k1."' class='dom_col2' ".(($n_col>5)?"style='display:none'":'')." ><!-- col_n --></div><!-- o_cols -->", $form);
164                        $n_col++;
165                        $r_form = "<div class='dom_row2'><div class='dom_cell2_h' title='".htmlentities($v1, ENT_QUOTES, $charset)."' >".htmlentities($v1, ENT_QUOTES, $charset)."</div></div><!-- rows -->";
166                       
167                        $nr=10;
168                        foreach($t_r as $k2=>$v2) {
169                                if(!$nr) {
170                                        $r_form = str_replace('<!-- rows -->',"<div class='dom_row2'><div class='dom_cell2_h' title='".htmlentities($v1, ENT_QUOTES, $charset)."' >".htmlentities($v1, ENT_QUOTES, $charset)."</div></div><!-- rows -->",$r_form);
171                                        $nr=10;
172                                }
173                                $nr--;
174                                $r_rows = "<div class='dom_row2'><div class='dom_cell2'><table>";
175                                foreach($t_ctl as $k3=>$v3) {
176                                        $r_rows.="
177                                        <tr>
178                                        <td style='width:25px;' ><input type='checkbox' name='chk_rights[".$k1."][".$k2."][".$k3."]' id='chk_rights[".$k1."][".$k2."][".$k3."]' value='1' ";
179                                        if ($t_rights[$k1][$k2] & (pow(2,$k3-1)) ) {
180                                                $r_rows.= "checked='checked' ";
181                                        }
182                                        $r_rows.= "/></td>
183                                        <td><label for='chk_rights[".$k1."][".$k2."][".$k3."]'>".htmlentities($v3, ENT_QUOTES, $charset)."</label></td>
184                                        </tr>";
185                                }
186                                $r_rows.= "</table></div></div>";
187                                $r_form = str_replace('<!-- rows -->', $r_rows.'<!-- rows -->', $r_form);
188                        }
189                        $form = str_replace ('<!-- col_n -->', $r_form, $form);
190                }               
191               
192        }
193       
194        //bouton enregistrer
195        $bt_enr = "<input type='button' onclick=\"
196        this.form.action='./admin.php?categ=acces&sub=domain&action=update&id=$id';
197        this.form.submit();return false;\" 
198        value=\"".addslashes($msg['77'])."\" class='bouton' />";
199        $form = str_replace('<!-- bt_enr -->', $bt_enr,$form);
200       
201        //bouton appliquer
202        $bt_app = "<input type='button' onclick=\"pbar_init();\" 
203        value=\"".addslashes($msg['dom_prf_ini'])."\" class='bouton' />";
204        $form = str_replace('<!-- bt_app -->', $bt_app,$form);
205       
206        $chk_sav_spe_rights = "<input type='checkbox' id='chk_sav_spe_rights' name='chk_sav_spe_rights' value='1' checked='checked' />&nbsp;<label for='chk_sav_spe_rights' >".htmlentities($msg['dom_sav_spe_rights'], ENT_QUOTES, $charset)."</label>";
207        $form = str_replace('<!-- chk_sav_spe_rights -->', $chk_sav_spe_rights, $form);
208
209        //bouton raz droits calculés
210        $bt_raz ="<input type='button' onclick=\"
211        this.form.action='./admin.php?categ=acces&sub=domain&action=raz&id=$id';
212        this.form.submit();return false;\"
213        value=\"".addslashes($msg['dom_prf_raz'])."\" class='bouton' />";
214        $form = str_replace('<!-- bt_raz -->', $bt_raz,$form);
215       
216        if ($maj) {
217                $form = str_replace('<!-- maj -->',$maj_form,$form);
218        }
219       
220        print $form;
221}
222
223
224switch ($action) {
225        case 'update' :
226                $dom->saveDomainRights($chk_rights);
227                show_domain($id,true);
228                break;
229        case 'raz' :
230                $dom->deleteDomainRights();
231        case 'view' :
232        default:
233                show_domain($id);
234                break;
235}
236
237?>
Note: See TracBrowser for help on using the repository browser.