source: pmb4.1/trunk/fuentes/pmb/admin/users/user_update.inc.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 8.2 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: user_update.inc.php,v 1.32 2013-10-04 10:09:43 dgoron Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9$droits = 0;
10
11/* le user admin ne peut perdre le droit admin */
12if ($id==1) $form_admin = 1 ;
13/* le user admin ne peut perdre le droit de forçage */
14if ($id==1) $form_edition_forcing = 1 ;
15
16if($form_admin) $droits = $droits + ADMINISTRATION_AUTH;
17if($form_catal) $droits = $droits + CATALOGAGE_AUTH;
18if($form_circ)  $droits = $droits + CIRCULATION_AUTH;
19if($form_auth)  $droits = $droits + AUTORITES_AUTH;
20if($form_edition)       $droits = $droits + EDIT_AUTH;
21if($form_edition_forcing)       $droits = $droits + EDIT_FORCING_AUTH;
22if($form_sauv)  $droits = $droits + SAUV_AUTH;
23if($form_pref)  $droits = $droits + PREF_AUTH;
24if($form_dsi)   $droits = $droits + DSI_AUTH;
25if($form_acquisition)   $droits = $droits + ACQUISITION_AUTH;
26if($form_restrictcirc)  $droits = $droits + RESTRICTCIRC_AUTH;
27if($form_thesaurus)     $droits = $droits + THESAURUS_AUTH;
28if($form_transferts) $droits = $droits + TRANSFERTS_AUTH;
29if($form_extensions) $droits = $droits + EXTENSIONS_AUTH;
30if($form_demandes) $droits = $droits + DEMANDES_AUTH;
31if($form_fiches) $droits = $droits + FICHES_AUTH;
32if($form_cms) $droits = $droits + CMS_AUTH;
33
34// no duplication
35$requete = " SELECT count(1) FROM users WHERE (username='$form_login' AND userid!='$id' )  LIMIT 1 ";
36$res = mysql_query($requete, $dbh);
37$nbr = mysql_result($res, 0, 0);
38
39if ($nbr > 0) {
40        error_form_message($form_login.$msg["user_login_already_used"]);
41} elseif($form_actif) {
42        // visibilité des exemplaires
43        if ($pmb_droits_explr_localises) {
44                $requete_droits_expl="select idlocation from docs_location order by location_libelle";
45                $resultat_droits_expl=mysql_query($requete_droits_expl);
46                $form_expl_visibilite=array();
47                while ($j=mysql_fetch_array($resultat_droits_expl)) {
48                        $temp_global="form_expl_visibilite_".$j["idlocation"];
49                        global $$temp_global;
50                        switch ($$temp_global) {
51                                case "explr_invisible":
52                                        $form_expl_visibilitei[] = $j["idlocation"];
53                                break;
54                                case "explr_visible_mod":
55                                        $form_expl_visibilitevm[] .= $j["idlocation"];
56                                break;
57                                case "explr_visible_unmod":
58                                        $form_expl_visibilitevu[] .= $j["idlocation"];
59                                break; 
60                        }       
61                }
62               
63                if (count($form_expl_visibilitei)) 
64                        $form_expl_visibilite[0]= implode(',',$form_expl_visibilitei);
65                else
66                        $form_expl_visibilite[0]="0";
67               
68                if (count($form_expl_visibilitevm))     
69                        $form_expl_visibilite[1]= implode(',',$form_expl_visibilitevm);
70                else 
71                        $form_expl_visibilite[1]="0";
72
73                if (count($form_expl_visibilitevu))
74                        $form_expl_visibilite[2]= implode(',',$form_expl_visibilitevu);
75                else
76                        $form_expl_visibilite[2]="0";
77
78                mysql_free_result($resultat_droits_expl);
79        } else {
80                $form_expl_visibilite[0]="0";
81                $form_expl_visibilite[1]="0";
82                $form_expl_visibilite[2]="0";
83        } //fin visibilité des exemplaires
84         
85        // O.K.  if item already exists UPDATE else INSERT
86        if(!$id) {
87                if(!empty($form_login) && $form_pwd==$form_pwd2) {
88                        $requete = "INSERT INTO users (userid, deflt_styles, create_dt, last_updated_dt, username, pwd, nom, prenom, rights, user_lang, nb_per_page_search, nb_per_page_select, ";
89                        $requete.= "nb_per_page_gestion, user_email, user_alert_resamail, user_alert_demandesmail, user_alert_subscribemail, explr_invisible, explr_visible_mod, explr_visible_unmod";
90                        if (isset($sel_group)) {
91                                $requete.= ", grp_num";
92                        }
93                        $requete.= ") VALUES";
94                        $requete .= "(null,'light',curdate(),curdate()";
95                        $requete .= ",'$form_login'";
96                        $requete .= ",password('$form_pwd')";
97                        $requete .= ",'$form_nom'";
98                        $requete .= ",'$form_prenom'";
99                        $requete .= ",'$droits'";
100                        $requete .= ", '$user_lang'";
101                        $requete .= ", '$form_nb_per_page_search'";
102                        $requete .= ", '$form_nb_per_page_select'";
103                        $requete .= ", '$form_nb_per_page_gestion'";
104                        $requete .= ", '$form_user_email'";
105                        if (!$form_user_alert_resamail) $form_user_alert_resamail="0" ;
106                        $requete .= ", '$form_user_alert_resamail'";
107                        if ((!$demandes_active) || (!$form_user_alert_demandesmail)) $form_user_alert_demandesmail="0" ;
108                        $requete .= ", '$form_user_alert_demandesmail'";
109                        if ((!$opac_websubscribe_show) || (!$form_user_alert_subscribemail)) $form_user_alert_subscribemail="0" ;
110                        $requete .= ", '$form_user_alert_subscribemail'";
111                        $requete .= ", '".$form_expl_visibilite[0]."'";
112                        $requete .= ", '".$form_expl_visibilite[1]."'";
113                        $requete .= ", '".$form_expl_visibilite[2]."'";
114                        if (isset($sel_group)) {
115                                $requete.= ", '$sel_group' ";
116                        }
117                        $requete.= ") ";
118                        $res = @mysql_query($requete, $dbh);
119                        $id=mysql_insert_id($dbh);
120                        echo "<script>document.location=\"./admin.php?categ=users&sub=users&action=modif&id=$id\";</script>";
121                }
122        } else {
123                $requete = "SELECT username,nom,prenom,rights, user_lang, nb_per_page_search, nb_per_page_select, nb_per_page_gestion, explr_invisible, explr_visible_mod, explr_visible_unmod, grp_num  ";
124                $requete .= "FROM users WHERE userid='$id' LIMIT 1 ";
125                $res = @mysql_query($requete, $dbh);
126                $nbr = mysql_num_rows($res);
127               
128                $requete_param = "SELECT * FROM users WHERE userid='$id' LIMIT 1 ";
129                $res_param = mysql_query($requete_param, $dbh);
130                $field_values = mysql_fetch_row ( $res_param );
131               
132                if($nbr==1) {
133                        $row=mysql_fetch_row($res);
134                        $dummy=array();
135                        if($row[0] != $form_login && !empty($form_login)) {
136                                $dummy[0] = "username='$form_login'";
137                        }
138                        $dummy[1] = "nom='$form_nom'";
139                        $dummy[2] = "prenom='$form_prenom'";
140                        $dummy[3] = "rights='$droits'";
141                        $dummy[4] = "user_lang='$user_lang'";
142                        $dummy[5] = "nb_per_page_search='$form_nb_per_page_search'";
143                        $dummy[6] = "nb_per_page_select='$form_nb_per_page_select'";
144                        $dummy[7] = "nb_per_page_gestion='$form_nb_per_page_gestion'";
145                        $dummy[8] = "explr_invisible='".$form_expl_visibilite[0]."'";
146                        $dummy[9] = "explr_visible_mod='".$form_expl_visibilite[1]."'";
147                        $dummy[10]= "explr_visible_unmod='".$form_expl_visibilite[2]."'";
148                        if (isset($sel_group)) {
149                                $dummy[11]= "grp_num='$sel_group'";
150                        }               
151                        /* insérer ici la maj des param et deflt */
152                        $i = 0;
153                        while ($i < mysql_num_fields($res_param)) {
154                                $field = mysql_field_name($res_param, $i) ;
155                                $field_deb = substr($field,0,6);
156                                switch ($field_deb) {
157                                        case "deflt_" :
158                                                if ($field == "deflt_styles") {
159                                                        $dummy[$i+12]=$field."='".$form_style."'";
160                                                } elseif ($field == "deflt_docs_section") {
161                                                        $formlocid="f_ex_section".$form_deflt_docs_location ;
162                                                        $dummy[$i+12]=$field."='".$$formlocid."'";
163                                                } else {
164                                                        $var_form = "form_".$field;
165                                                        $dummy[$i+12]=$field."='".$$var_form."'";
166                                                }
167                                                break;
168                                        case "deflt2" :
169                                                $var_form = "form_".$field;
170                                                $dummy[$i+12]=$field."='".$$var_form."'";
171                                                break ;
172                                        case "param_" :
173                                                $var_form = "form_".$field;
174                                                $dummy[$i+12]=$field."='".$$var_form."'";
175                                                break ;
176                                        case "value_" :
177                                                $var_form = "form_".$field;
178                                                $dummy[$i+12]=$field."='".$$var_form."'";
179                                                break ;
180                                        case "deflt3" :
181                                                $var_form = "form_".$field;
182                                                $dummy[$i+12]=$field."='".$$var_form."'";
183                                                break ;
184                                        case "xmlta_" :
185                                                $var_form = "form_".$field;
186                                                $dummy[$i+12]=$field."='".$$var_form."'";
187                                                break ;
188                                        case "speci_" :
189                                                $speci_func = substr($field, 6);
190                                                eval('$dummy[$i+12].= set_'.$speci_func.'();');
191                                                break;
192                                        default :
193                                                break ;
194                                }
195                               
196                                $i++;
197                        }
198
199                        $dummy[] = "user_email='$form_user_email'";
200                        if (!$form_user_alert_resamail) $form_user_alert_resamail="0" ;
201                        $dummy[] = "user_alert_resamail='$form_user_alert_resamail'";
202                        if ((!$demandes_active) || (!$form_user_alert_demandesmail)) $form_user_alert_demandesmail="0" ;
203                        $dummy[] = "user_alert_demandesmail='$form_user_alert_demandesmail'";
204                        if ((!$opac_websubscribe_show) || (!$form_user_alert_subscribemail)) $form_user_alert_subscribemail="0" ;
205                        $dummy[] = "user_alert_subscribemail='$form_user_alert_subscribemail'";
206
207                        if(!empty($dummy)) {
208                                $set = join($dummy, ", ");
209                        }
210
211                        if(!empty($set)) {
212                                $set = "SET last_updated_dt=curdate(),".$set;
213                                $requete = "UPDATE users $set WHERE userid=$id ";
214                                $res = mysql_query($requete, $dbh);
215                        }
216                }
217        }
218}       
219
220show_users($dbh);
221echo window_title("$msg[7] $msg[25]");
Note: See TracBrowser for help on using the repository browser.