source: pmb4.2/trunk/fuentes/pmb/admin/connecteurs/out_auth.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: 10.3 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: out_auth.inc.php,v 1.3 2015-04-03 11:16:23 jpermanne Exp $
6if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
7
8require_once($class_path."/external_services_esusers.class.php");
9
10function list_esgroups() {
11        global $msg, $charset, $dbh;
12        $esgroups = new es_esgroups();
13        print "<table>
14                                <tr>
15                                        <th>".$msg["es_group_name"]."</th>
16                                        <th>".$msg["es_group_fullname"]."</th>
17                                        <th>".$msg["connector_out_authorization_authorizedsourcecount"]."</th>
18                                </tr>";
19       
20        //Ajoutons l'utilisateur anonyme
21        $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_esgroupnum = -1";
22        $anonymous_count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0);
23        $pair_impair = "odd";
24        $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair'\" onmousedown=\"document.location='./admin.php?categ=connecteurs&sub=out_auth&action=editanonymous'\" ";
25        print "         <tr style='cursor: pointer' class='$pair_impair' $tr_javascript>
26                                        <td>&lt;".$msg["admin_connecteurs_outauth_anonymgroupname"]."&gt;</td>
27                                        <td>".$msg["admin_connecteurs_outauth_anonymgroupfullname"]."</td>
28                                        <td>".$anonymous_count."</td>
29                                </tr>";
30       
31        $parity=1;
32        foreach($esgroups->groups as &$aesgroup) {
33                //Récupérons le nombre de sources autorisées dans le groupe
34                $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_esgroupnum = ".$aesgroup->esgroup_id;
35                $count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0);
36
37                $pair_impair = $parity++ % 2 ? 'even' : 'odd';
38                $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='$pair_impair'\" onmousedown=\"document.location='./admin.php?categ=connecteurs&sub=out_auth&action=edit&id=$aesgroup->esgroup_id';\" ";
39                print "<tr style='cursor: pointer' class='$pair_impair' $tr_javascript>";
40                print "<td>".htmlentities($aesgroup->esgroup_name ,ENT_QUOTES, $charset)."</td>";
41                print "<td>".htmlentities($aesgroup->esgroup_fullname ,ENT_QUOTES, $charset)."</td>";
42                print "<td>".$count."</td>";
43                print "</tr>";
44        }
45       
46        print "</table>";
47}
48
49function show_auth_edit_form($group_id) {
50        global $msg, $charset, $dbh;
51       
52        $the_group = new es_esgroup($group_id);
53        if ($the_group->error) {
54                exit();
55        }
56       
57        print '<form method="POST" action="admin.php?categ=connecteurs&sub=out_auth&action=update" name="form_outauth">';
58        print '<h3>'.$msg['admin_connecteurs_outauth_edit'].'</h3>';
59               
60        print '<div class="form-contenu">';
61       
62        //id
63        print '<input type="hidden" name="id" value="'.$group_id.'">';
64       
65        //Nom du groupe
66        print '<div class=row><label class="etiquette" for="set_caption">'.$msg["admin_connecteurs_outauth_groupname"].'</label><br />';
67        print $the_group->esgroup_name;
68        print '</div><br />';
69       
70        //Nom complet du groupe
71        print '<div class=row><label class="etiquette" for="set_caption">'.$msg["admin_connecteurs_outauth_groupfullname"].'</label><br />';
72        print $the_group->esgroup_fullname;
73        print '</div><br />';
74
75        $current_sources=array();
76        $current_sql = "SELECT connectors_out_source_esgroup_sourcenum FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_esgroupnum = ".$group_id;
77        $current_res = pmb_mysql_query($current_sql, $dbh);
78        while($row = pmb_mysql_fetch_assoc($current_res)) {
79                $current_sources[] = $row["connectors_out_source_esgroup_sourcenum"];
80        }
81       
82        $data_sql = "SELECT connectors_out_sources_connectornum, connectors_out_source_id, connectors_out_source_name, EXISTS(SELECT 1 FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = connectors_out_source_id AND connectors_out_source_esgroup_esgroupnum = ".$group_id.") AS authorized FROM connectors_out_sources ORDER BY connectors_out_sources_connectornum";
83        $data_res = pmb_mysql_query($data_sql, $dbh);
84        $current_connid = 0;
85        print '<div class=row><label class="etiquette">'.$msg["admin_connecteurs_outauth_usesource"].'</label><br />';
86        while($asource=pmb_mysql_fetch_assoc($data_res)) {
87                if ($current_connid != $asource["connectors_out_sources_connectornum"]) {
88                        if ($current_connid) 
89                                print '<br />';
90                        $current_connid = $asource["connectors_out_sources_connectornum"];
91                }
92                print '<input '.(in_array($asource["connectors_out_source_id"], $current_sources) ? 'checked' : '').' type="checkbox" name="authorized_sources[]" value="'.$asource["connectors_out_source_id"].'">';
93                print $asource["connectors_out_source_name"];
94               
95                print '<br />';
96        }
97        print '</div>';
98       
99        //buttons
100        print "<br /><div class='row'>
101        <div class='left'>";
102        print "<input class='bouton' type='button' value=' $msg[76] ' onClick=\"document.location='./admin.php?categ=connecteurs&sub=out_auth'\" />&nbsp";
103        print '<input class="bouton" type="submit" value="'.$msg[77].'">';
104        print "</div>
105        <br /><br /></div>";
106       
107        print '</form>';
108}
109
110function show_auth_edit_form_anonymous() {
111        global $msg, $charset, $dbh;
112       
113        print '<form method="POST" action="admin.php?categ=connecteurs&sub=out_auth&action=updateanonymous" name="form_outauth">';
114        print '<h3>'.$msg['admin_connecteurs_outauth_edit'].'</h3>';
115               
116        print '<div class="form-contenu">';
117       
118        //Nom du groupe
119        print '<div class=row><label class="etiquette" for="set_caption">'.$msg["admin_connecteurs_outauth_groupname"].'</label><br />';
120        print '&lt;'.$msg["admin_connecteurs_outauth_anonymgroupname"].'&gt;';
121        print '</div><br />';
122       
123        //Nom complet du groupe
124        print '<div class=row><label class="etiquette" for="set_caption">'.$msg["admin_connecteurs_outauth_groupfullname"].'</label><br />';
125        print $msg["admin_connecteurs_outauth_anonymgroupfullname"];
126        print '</div><br />';
127
128        $current_sources=array();
129        $current_sql = "SELECT connectors_out_source_esgroup_sourcenum FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_esgroupnum = -1";
130        $current_res = pmb_mysql_query($current_sql, $dbh);
131        while($row = pmb_mysql_fetch_assoc($current_res)) {
132                $current_sources[] = $row["connectors_out_source_esgroup_sourcenum"];
133        }
134       
135        $data_sql = "SELECT connectors_out_sources_connectornum, connectors_out_source_id, connectors_out_source_name, EXISTS(SELECT 1 FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = connectors_out_source_id AND connectors_out_source_esgroup_esgroupnum = -1) AS authorized FROM connectors_out_sources ORDER BY connectors_out_sources_connectornum";
136        $data_res = pmb_mysql_query($data_sql, $dbh);
137        $current_connid = 0;
138        print '<div class=row><label class="etiquette">'.$msg["admin_connecteurs_outauth_usesource"].'</label><br />';
139        while($asource=pmb_mysql_fetch_assoc($data_res)) {
140                if ($current_connid != $asource["connectors_out_sources_connectornum"]) {
141                        if ($current_connid) 
142                                print '<br />';
143                        $current_connid = $asource["connectors_out_sources_connectornum"];
144                }
145                print '<input '.(in_array($asource["connectors_out_source_id"], $current_sources) ? 'checked' : '').' type="checkbox" name="authorized_sources[]" value="'.$asource["connectors_out_source_id"].'">';
146                print $asource["connectors_out_source_name"];
147               
148                print '<br />';
149        }
150        print '</div>';
151       
152        //buttons
153        print "<br /><div class='row'>
154        <div class='left'>";
155        print "<input class='bouton' type='button' value=' $msg[76] ' onClick=\"document.location='./admin.php?categ=connecteurs&sub=out_auth'\" />&nbsp";
156        print '<input class="bouton" type="submit" value="'.$msg[77].'">';
157        print "</div>
158        <br /><br /></div>";
159       
160        print '</form>';
161}
162
163if (!isset($action))
164        $action="";
165switch ($action) {
166        case "edit":
167                if (!isset($id) || !$id) {
168                        list_esgroups();
169                        exit();
170                }
171                show_auth_edit_form($id+0);
172                break;
173        case "editanonymous":
174                show_auth_edit_form_anonymous();
175                break;
176        case "update":
177                if (isset($id) && $id) {
178                        array_walk($authorized_sources, create_function('&$a', '$a+=0;')); //Virons de la liste ce qui n'est pas entier
179                        //Croisons ce que l'on nous propose avec ce qui existe vraiment dans la base
180                        //Vérifions que les sources existents
181                        $sql = "SELECT connectors_out_source_id FROM connectors_out_sources WHERE connectors_out_source_id IN (".implode(",", $authorized_sources).')';
182                        $res = pmb_mysql_query($sql, $dbh);
183                        $final_authorized_sources = array();
184                        while ($row=pmb_mysql_fetch_assoc($res))
185                                $final_authorized_sources[] = $row["connectors_out_source_id"];
186
187                        //Vérifions que le groupe existe
188                        $esgroup = new es_esgroup($id);
189                        if ($esgroup->error) {
190                                exit();
191                        }
192                       
193                        //On vire ce qui existe déjà:
194                        $sql = "DELETE FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_esgroupnum = ".$id;
195                        pmb_mysql_query($sql, $dbh);
196                       
197                        //Tout est bon? On insert
198                        $values = array();
199                        $insert_sql = "INSERT INTO connectors_out_sources_esgroups (connectors_out_source_esgroup_sourcenum, connectors_out_source_esgroup_esgroupnum) VALUES ";
200                        foreach ($final_authorized_sources as $an_authorized_source) {
201                                $values[] = '('.$an_authorized_source.','.$id.')';
202                        }
203                        $insert_sql .= implode(",", $values);
204                        pmb_mysql_query($insert_sql, $dbh);
205                }
206                list_esgroups();
207                break;
208        case "updateanonymous":
209                if (!$authorized_sources)
210                        $final_authorized_sources=array();
211                else {
212                        array_walk($authorized_sources, create_function('&$a', '$a+=0;')); //Virons de la liste ce qui n'est pas entier
213                        //Croisons ce que l'on nous propose avec ce qui existe vraiment dans la base
214                        //Vérifions que les sources existents
215                        $sql = "SELECT connectors_out_source_id FROM connectors_out_sources WHERE connectors_out_source_id IN (".implode(",", $authorized_sources).')';
216                        $res = pmb_mysql_query($sql, $dbh);
217                        $final_authorized_sources = array();
218                        while ($row=pmb_mysql_fetch_assoc($res))
219                                $final_authorized_sources[] = $row["connectors_out_source_id"];
220                       
221                }
222
223                //On vire ce qui existe déjà:
224                $sql = "DELETE FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_esgroupnum = -1";
225                pmb_mysql_query($sql, $dbh);
226               
227                //Tout est bon? On insert
228                $values = array();
229                $insert_sql = "INSERT INTO connectors_out_sources_esgroups (connectors_out_source_esgroup_sourcenum, connectors_out_source_esgroup_esgroupnum) VALUES ";
230                foreach ($final_authorized_sources as $an_authorized_source) {
231                        $values[] = '('.$an_authorized_source.', -1)';
232                }
233                $insert_sql .= implode(",", $values);
234                pmb_mysql_query($insert_sql, $dbh);
235
236                list_esgroups();
237                break;
238        default:
239                list_esgroups();
240                break;
241}
242
243
244?>
Note: See TracBrowser for help on using the repository browser.