source: pmb4.2/trunk/fuentes/pmb/admin/users/users_func.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: 18.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: users_func.inc.php,v 1.36 2015-04-03 11:16:23 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9require_once("$class_path/entites.class.php");
10require_once("$class_path/coordonnees.class.php");
11
12// affichage du form de création/modification utilisateur
13function user_form($login="", $nom="", $prenom="", $flag=3, $id=0, $lang="", $nb_per_page_search=10, $nb_per_page_select=10, $nb_per_page_gestion=10, $form_param_default="", $form_user_email="", $form_user_alert_resamail="0", $form_user_alert_demandesmail="0", $form_user_alert_subscribemail="0", $form_user_alert_suggmail="0", $usr_grp=FALSE ) {
14
15        global $msg;
16        global $admin_user_form;
17        global $charset;
18        global $password_field;
19        global $include_path ;
20        global $demandes_active;
21        global $opac_websubscribe_show,$acquisition_active;
22
23        $user_encours=$_COOKIE["PhpMyBibli-LOGIN"];
24        if(($id == 1) || ($login==$user_encours) || ($id==0)) // $id est admin ou $login est l'utilisateur en cours
25                $admin_user_form =str_replace('!!bouton_suppression!!', "", $admin_user_form);
26        else 
27                $admin_user_form =str_replace('!!bouton_suppression!!', " <input class='bouton' type='button' value=' $msg[63] ' onClick=\"javascript:confirmation_delete(!!id!!,'$login')\" /> ", $admin_user_form);
28       
29        if(!$id) $title = $msg[85]; // ajout
30        else $title = $msg[90];         // modification
31
32        $admin_user_form = str_replace('!!id!!', $id, $admin_user_form);
33        $admin_user_form = str_replace('!!title!!', $title, $admin_user_form);
34        $admin_user_form = str_replace('!!login!!', $login, $admin_user_form);
35        $admin_user_form = str_replace('!!nom!!', $nom, $admin_user_form);
36        $admin_user_form = str_replace('!!prenom!!', $prenom, $admin_user_form);
37        $admin_user_form = str_replace('!!nb_per_page_search!!', $nb_per_page_search, $admin_user_form);
38        $admin_user_form = str_replace('!!nb_per_page_select!!', $nb_per_page_select, $admin_user_form);
39        $admin_user_form = str_replace('!!nb_per_page_gestion!!', $nb_per_page_gestion, $admin_user_form);
40       
41        if(!$id) $admin_user_form = str_replace('!!password_field!!', $password_field, $admin_user_form);
42        else $admin_user_form = str_replace('!!password_field!!', '', $admin_user_form);
43
44        $flag & ADMINISTRATION_AUTH ? $admin_flg_form = "checked " : $admin_flg_form = "";
45        $flag & CIRCULATION_AUTH ? $circ_flg_form = "checked " : $circ_flg_form = "";
46        $flag & CATALOGAGE_AUTH ? $catal_flg_form = "checked " : $catal_flg_form = "";
47        $flag & AUTORITES_AUTH ? $auth_flg_form = "checked " : $auth_flg_form = "";
48        $flag & EDIT_AUTH ? $edit_flg_form = "checked " : $edit_flg_form = "";
49        $flag & EDIT_FORCING_AUTH ? $edit_forcing_flg_form = "checked " : $edit_forcing_flg_form = "";
50        $flag & SAUV_AUTH ? $sauv_flg_form = "checked " : $sauv_flg_form = "";
51        $flag & DSI_AUTH ? $dsi_flg_form = "checked " : $dsi_flg_form = "";
52        $flag & PREF_AUTH ? $pref_flg_form = "checked " : $pref_flg_form = "";
53        $flag & ACQUISITION_AUTH ? $acquisition_flg_form = "checked " : $acquisition_flg_form = "";
54        $flag & RESTRICTCIRC_AUTH ? $restrictcirc_flg_form = "checked " : $restrictcirc_flg_form = "";
55        $flag & THESAURUS_AUTH ? $thesaurus_flg_form = "checked " : $thesaurus_flg_form = "";
56        $flag & TRANSFERTS_AUTH ? $transferts_flg_form = "checked " : $transferts_flg_form = "";
57        $flag & EXTENSIONS_AUTH ? $extensions_flg_form = "checked " : $extensions_flg_form = "";
58        $flag & DEMANDES_AUTH ? $demandes_flg_form = "checked " : $extensions_flg_form = "";
59        $flag & CMS_AUTH ? $cms_flg_form = "checked " : $cms_flg_form = "";
60        $flag & FICHES_AUTH ? $fiches_flg_form = "checked " : $fiches_flg_form = "";
61       
62        $admin_user_form = str_replace('!!admin_flg!!', $admin_flg_form, $admin_user_form);
63        $admin_user_form = str_replace('!!catal_flg!!', $catal_flg_form, $admin_user_form);
64        $admin_user_form = str_replace('!!circ_flg!!', $circ_flg_form, $admin_user_form);
65        $admin_user_form = str_replace('!!auth_flg!!', $auth_flg_form, $admin_user_form);
66        $admin_user_form = str_replace('!!edit_flg!!', $edit_flg_form, $admin_user_form);
67        $admin_user_form = str_replace('!!edit_forcing_flg!!', $edit_forcing_flg_form, $admin_user_form);
68        $admin_user_form = str_replace('!!sauv_flg!!', $sauv_flg_form, $admin_user_form);
69        $admin_user_form = str_replace('!!dsi_flg!!', $dsi_flg_form, $admin_user_form);
70        $admin_user_form = str_replace('!!pref_flg!!', $pref_flg_form, $admin_user_form);
71        $admin_user_form = str_replace('!!acquisition_flg!!', $acquisition_flg_form, $admin_user_form);
72        $admin_user_form = str_replace('!!restrictcirc_flg!!', $restrictcirc_flg_form, $admin_user_form);
73        $admin_user_form = str_replace('!!thesaurus_flg!!', $thesaurus_flg_form, $admin_user_form);
74        $admin_user_form = str_replace('!!transferts_flg!!', $transferts_flg_form, $admin_user_form);
75        $admin_user_form = str_replace('!!extensions_flg!!', $extensions_flg_form, $admin_user_form);
76        $admin_user_form = str_replace('!!demandes_flg!!', $demandes_flg_form, $admin_user_form);
77        $admin_user_form = str_replace('!!cms_flg!!', $cms_flg_form, $admin_user_form);
78        $admin_user_form = str_replace('!!fiches_flg!!', $fiches_flg_form, $admin_user_form);
79       
80        if ($form_user_alert_resamail==1) $alert_resa_mail=" checked"; 
81        else $alert_resa_mail="";
82        $admin_user_form = str_replace('!!alter_resa_mail!!', $alert_resa_mail, $admin_user_form);
83        if ($demandes_active) {
84                if ($form_user_alert_demandesmail==1) $alert_demandes_mail=" checked"; 
85                else $alert_demandes_mail="";
86                $admin_user_form = str_replace('!!alert_demandes_mail!!', $alert_demandes_mail, $admin_user_form);
87        }
88        if ($opac_websubscribe_show) {
89                if ($form_user_alert_subscribemail==1) $alert_subscribe_mail=" checked";
90                else $alert_subscribe_mail="";
91                $admin_user_form = str_replace('!!alert_subscribe_mail!!', $alert_subscribe_mail, $admin_user_form);
92        }
93        if ($acquisition_active) {
94                if ($form_user_alert_suggmail==1) $alert_sugg_mail=" checked";
95                else $alert_sugg_mail="";
96                $admin_user_form = str_replace('!!alert_sugg_mail!!', $alert_sugg_mail, $admin_user_form);
97        }
98        $admin_user_form = str_replace('!!user_email!!', $form_user_email, $admin_user_form);
99                       
100
101        if(!$id) $form_type = '1';
102        else $form_type = '0';
103
104        // récupération des codes langues
105        $la = new XMLlist("$include_path/messages/languages.xml", 0);
106        $la->analyser();
107        $languages = $la->table;
108
109        // constitution du sélecteur
110        $selector = "<select name='user_lang'>  ";
111        while(list($codelang, $libelle) = each($languages)) {
112                // arabe seulement si on est en utf-8
113                if (($charset != 'utf-8' and $codelang != 'ar') or ($charset == 'utf-8')) {
114                        if($lang == $codelang) $selector .= "<option value='".htmlentities($codelang,ENT_QUOTES, $charset)."' SELECTED>".htmlentities($libelle,ENT_QUOTES, $charset)."</option>";
115                        else $selector .= "<option value='".htmlentities($codelang,ENT_QUOTES, $charset)."'>".htmlentities($libelle,ENT_QUOTES, $charset)."</option>";
116                }
117        }
118        $selector .= '</select>';
119       
120        $admin_user_form = str_replace('!!select_lang!!', $selector, $admin_user_form);
121        $admin_user_form = str_replace('!!form_type!!', $form_type, $admin_user_form);
122        $admin_user_form = str_replace('!!form_param_default!!', $form_param_default, $admin_user_form);
123       
124        //groupes
125        if ($usr_grp!==FALSE) {
126                $q = "select * from users_groups order by grp_name ";
127                $sel_group = gen_liste($q, 'grp_id', 'grp_name', 'sel_group', '', $usr_grp, '0', $msg[128], '0',$msg[128]);
128                $sel_group = "<label class='etiquette'>".htmlentities($msg['admin_usr_grp_aff'], ENT_QUOTES, $charset).'</label><br />'.$sel_group;
129                $admin_user_form = str_replace('<!-- sel_group -->', $sel_group, $admin_user_form);
130        }
131        print confirmation_delete("./admin.php?categ=users&sub=users&action=del&id=");
132        print $admin_user_form;
133       
134}
135
136function show_users($dbh) {
137
138        global $msg;
139        global $admin_user_list;
140        global $admin_user_link1;
141       
142        // affichage du tableau des utilisateurs
143        $requete = "SELECT * FROM users ORDER BY username";
144        $res = pmb_mysql_query($requete, $dbh);
145
146        $nbr = pmb_mysql_num_rows($res);
147
148        while(($row=pmb_mysql_fetch_object($res))) {
149
150                // réinitialisation des chaînes
151                $dummy = $admin_user_list;
152                $dummy1 = $admin_user_link1;
153               
154                $flag = "<img src='./images/flags/".$row->user_lang.".gif' width='24' height='16' vspace='3'>";
155
156                $dummy =str_replace('!!user_link!!', $dummy1, $dummy);
157                $dummy =str_replace('!!user_name!!', "$row->prenom $row->nom", $dummy);
158                $dummy =str_replace('!!user_login!!', $row->username, $dummy);
159
160                if($row->rights & ADMINISTRATION_AUTH)
161                        $dummy =str_replace('!!nuseradmin!!', '<img src=./images/coche.gif align=top hspace=3>' , $dummy);
162                else 
163                        $dummy =str_replace('!!nuseradmin!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
164
165                if($row->rights & CATALOGAGE_AUTH)
166                        $dummy =str_replace('!!nusercatal!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
167                else 
168                        $dummy =str_replace('!!nusercatal!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
169
170                if($row->rights & CIRCULATION_AUTH)
171                        $dummy =str_replace('!!nusercirc!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
172                else 
173                        $dummy =str_replace('!!nusercirc!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
174
175                if($row->rights & PREF_AUTH)
176                        $dummy =str_replace('!!nuserpref!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
177                else 
178                        $dummy =str_replace('!!nuserpref!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
179
180                if($row->rights & AUTORITES_AUTH)
181                        $dummy =str_replace('!!nuserauth!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
182                else 
183                        $dummy =str_replace('!!nuserauth!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
184                if($row->rights & EDIT_AUTH)
185                        $dummy =str_replace('!!nuseredit!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
186                else 
187                        $dummy =str_replace('!!nuseredit!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
188                if($row->rights & EDIT_FORCING_AUTH)
189                        $dummy =str_replace('!!nusereditforcing!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
190                else 
191                        $dummy =str_replace('!!nusereditforcing!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
192                if($row->rights & SAUV_AUTH)
193                        $dummy =str_replace('!!nusersauv!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
194                else 
195                        $dummy =str_replace('!!nusersauv!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
196
197                if($row->rights & DSI_AUTH)
198                        $dummy =str_replace('!!nuserdsi!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
199                else 
200                        $dummy =str_replace('!!nuserdsi!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
201                       
202                if($row->rights & ACQUISITION_AUTH)
203                        $dummy =str_replace('!!nuseracquisition!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
204                else 
205                        $dummy =str_replace('!!nuseracquisition!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
206                       
207                if($row->rights & RESTRICTCIRC_AUTH)
208                        $dummy =str_replace('!!nuserrestrictcirc!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
209                else 
210                        $dummy =str_replace('!!nuserrestrictcirc!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
211
212                if($row->rights & THESAURUS_AUTH)
213                        $dummy =str_replace('!!nuserthesaurus!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
214                else 
215                        $dummy =str_replace('!!nuserthesaurus!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
216                       
217                if($row->rights & TRANSFERTS_AUTH)
218                        $dummy =str_replace('!!nusertransferts!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
219                else 
220                        $dummy =str_replace('!!nusertransferts!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
221
222                if($row->rights & EXTENSIONS_AUTH)
223                        $dummy =str_replace('!!nuserextensions!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
224                else 
225                        $dummy =str_replace('!!nuserextensions!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
226               
227                if($row->rights & DEMANDES_AUTH)
228                        $dummy =str_replace('!!nuserdemandes!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);
229                else 
230                        $dummy =str_replace('!!nuserdemandes!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);
231                if($row->rights & CMS_AUTH)
232                        $dummy =str_replace('!!nusercms!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy); 
233                else 
234                        $dummy =str_replace('!!nusercms!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);                       
235                if($row->rights & FICHES_AUTH)
236                        $dummy =str_replace('!!nuserfiches!!', '<img src=./images/coche.gif align=top hspace=3>', $dummy);     
237                else 
238                        $dummy =str_replace('!!nuserfiches!!', '<img src=./images/uncoche.gif align=top hspace=3>', $dummy);           
239               
240                $dummy = str_replace('!!lang_flag!!', $flag, $dummy);
241                $dummy = str_replace('!!nuserlogin!!', $row->username, $dummy);
242                $dummy = str_replace('!!nuserid!!', $row->userid, $dummy);
243               
244                if($row->user_alert_resamail)
245                        $dummy =str_replace('!!user_alert_resamail!!', $msg['alert_resa_user_mail'].'<img src=./images/tick.gif align=top hspace=3>' , $dummy);
246                else 
247                        $dummy =str_replace('!!user_alert_resamail!!', '', $dummy);
248               
249                if($row->user_alert_demandesmail)
250                        $dummy =str_replace('!!user_alert_demandesmail!!', $msg['alert_demandes_user_mail'].'<img src=./images/tick.gif align=top hspace=3>' , $dummy);
251                else 
252                        $dummy =str_replace('!!user_alert_demandesmail!!', '', $dummy);
253
254                if($row->user_alert_subscribemail)
255                        $dummy =str_replace('!!user_alert_subscribemail!!', $msg['alert_subscribe_user_mail'].'<img src=./images/tick.gif align=top hspace=3>' , $dummy);
256                else
257                        $dummy =str_replace('!!user_alert_subscribemail!!', '', $dummy);
258               
259                if($row->user_alert_suggmail)
260                        $dummy =str_replace('!!user_alert_suggmail!!', $msg['alert_sugg_user_mail'].'<img src=./images/tick.gif align=top hspace=3>' , $dummy);
261                else
262                        $dummy =str_replace('!!user_alert_suggmail!!', '', $dummy);
263               
264                print $dummy;
265        }
266        print "<div class='row'>
267                <input class='bouton' type='button' value=' $msg[85] ' onClick=\"document.location='./admin.php?categ=users&sub=users&action=add'\" />
268                </div>";
269
270}
271       
272       
273function get_coordonnees_etab($user_id='0', $field_values, $current_field, $form_name) {
274
275        global $dbh, $msg, $charset;
276        global $acquisition_active;
277        global $user_acquisition_adr_form;
278       
279        if (!$acquisition_active ) return;
280        if (!($field_values[7] & ACQUISITION_AUTH)) return;
281        if ($user_id=='0') return;
282       
283        //Affichage de la liste des bibliothèques auxquelles a accès l'utilisateur
284        $q = entites::list_biblio($user_id);
285        $res = pmb_mysql_query($q, $dbh);
286        $nbr = pmb_mysql_num_rows($res);
287       
288        if ($nbr == '0') return;
289
290        $tab1 = explode('|', $field_values[$current_field]);
291
292        $tab_adr=array();
293        foreach ($tab1 as $key=>$value) {
294                $tab2=explode(',', $value);
295                $tab_adr[$tab2[0]]['id_adr_fac']=$tab2[1];
296                $tab_adr[$tab2[0]]['id_adr_liv']=$tab2[2];
297        }
298
299        while($row=pmb_mysql_fetch_object($res)){
300               
301                $acquisition_user_param.= "<div class='row'>";
302                $acquisition_user_param.= "<label class='etiquette'>".htmlentities($row->raison_sociale, ENT_QUOTES, $charset)."</label>";
303               
304                $temp_adr_form = $user_acquisition_adr_form;
305               
306                if ($tab_adr[$row->id_entite]['id_adr_fac']) {
307                        $coord = new coordonnees($tab_adr[$row->id_entite]['id_adr_fac']);
308                        $id_adr_fac = $coord->id_contact;
309                        if($coord->libelle != '') $adr_fac = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
310                        if($coord->contact != '') $adr_fac.= htmlentities($coord->contact, ENT_QUOTES, $charset)."\n";
311                        if($coord->adr1 != '') $adr_fac.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
312                        if($coord->adr2 != '') $adr_fac.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
313                        if($coord->cp !='') $adr_fac.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
314                        if($coord->ville != '') $adr_fac.= htmlentities($coord->ville, ENT_QUOTES, $charset);
315                } else {
316                        $id_adr_fac = '0';
317                        $adr_fac = '';
318                }
319
320                if ($tab_adr[$row->id_entite]['id_adr_liv']) {
321                        $coord = new coordonnees($tab_adr[$row->id_entite]['id_adr_liv']);
322                        $id_adr_liv = $coord->id_contact;
323                        if($coord->libelle != '') $adr_liv = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
324                        if($coord->contact != '') $adr_liv.= htmlentities($coord->contact, ENT_QUOTES, $charset)."\n"; 
325                        if($coord->adr1 != '') $adr_liv.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
326                        if($coord->adr2 != '') $adr_liv.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
327                        if($coord->cp !='') $adr_liv.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
328                        if($coord->ville != '') $adr_liv.= htmlentities($coord->ville, ENT_QUOTES, $charset);
329                } else {
330                        $id_adr_liv = 0;
331                        $adr_liv = '';
332                }
333
334                $temp_adr_form = str_replace('!!id_bibli!!',$row->id_entite, $temp_adr_form);
335                $temp_adr_form = str_replace('!!id_adr_liv!!',$id_adr_liv, $temp_adr_form);
336                $temp_adr_form = str_replace('!!adr_liv!!',$adr_liv, $temp_adr_form);
337                $temp_adr_form = str_replace('!!id_adr_fac!!',$id_adr_fac, $temp_adr_form);
338                $temp_adr_form = str_replace('!!adr_fac!!',$adr_fac, $temp_adr_form);
339                                               
340                $acquisition_user_param.= $temp_adr_form;
341                $acquisition_user_param.= "</div>";
342               
343        }
344        $acquisition_user_param = str_replace('!!form_name!!', $form_name, $acquisition_user_param);
345        $acquisition_user_param="<hr /><div class='row'>".htmlentities($msg['acquisition_user_deflt_adr'], ENT_QUOTES, $charset).$acquisition_user_param."</div>";
346        return $acquisition_user_param;                 
347}
348
349
350function set_coordonnees_etab() {
351
352        global $id_adr_fac, $id_adr_liv;
353
354        $acquisition_user_param = "speci_coordonnees_etab = '' ";       
355        if (!is_array($id_adr_fac)) return $acquisition_user_param ;
356       
357        ksort($id_adr_fac);
358        reset($id_adr_fac);
359        $i=0;
360        $j=count($id_adr_fac);
361        while (list($key, $val) = each($id_adr_fac)) {
362                $acquisition_user_param.=$key.','.$val.','.$id_adr_liv[$key];
363                $i++;
364                if ($i < $j) $acquisition_user_param.='|';
365        };
366       
367        $acquisition_user_param = "speci_coordonnees_etab = '".$acquisition_user_param."' "; 
368        return $acquisition_user_param;                 
369}
370
371//Retourne un tableau (userid=>nom prenom) à partir d'un tableau d'id
372function getUserName($tab=array()) {
373       
374        global $dbh;
375       
376        $res=array();
377        if(is_array($tab) && count($tab)) {
378                $q ="select userid, concat(nom,' ',prenom) as lib from users where userid in ('".implode("','", $tab)."') ";
379                $r = pmb_mysql_query($q,$dbh);
380                while($row=pmb_mysql_fetch_object($r)) {
381                        $res[$row->userid]=$row->lib;
382                }
383        }
384        return $res;
385}
386
Note: See TracBrowser for help on using the repository browser.