1 |
<?php |
2 |
/** |
3 |
* |
4 |
* |
5 |
* @package openmairie_exemple |
6 |
* @version SVN : $Id: om_utilisateur.class.php 2470 2013-09-09 12:21:44Z fmichon $ |
7 |
*/ |
8 |
|
9 |
require_once "../gen/obj/om_utilisateur.class.php"; |
10 |
|
11 |
class om_utilisateur extends om_utilisateur_gen { |
12 |
|
13 |
function om_utilisateur($id,&$db,$debug) { |
14 |
$this->constructeur($id,$db,$debug); |
15 |
}// fin constructeur |
16 |
|
17 |
function setvalF($val) { |
18 |
// |
19 |
parent::setvalF($val); |
20 |
|
21 |
/* Gestion des mises a jour du mot de passe */ |
22 |
|
23 |
// si un mot de passe est soumis par formulaire |
24 |
if ($val["pwd"] != '') { |
25 |
|
26 |
// si le mot de passe contient une valeur 'valide' (!= "*****") |
27 |
if ($val["pwd"] != "*****") { |
28 |
|
29 |
// calcul du md5 et mise a jour dans la base |
30 |
$this->valF["pwd"] = md5($val["pwd"]); |
31 |
|
32 |
// si le mot de passe n'a pas ete modifie, aucune maj dans la base |
33 |
} else { |
34 |
unset($this->valF["pwd"]); |
35 |
} |
36 |
} |
37 |
} |
38 |
|
39 |
function cleSecondaire($id, &$db = NULL, $val = array(), $DEBUG = false) { |
40 |
// Initialisation de l'attribut correct a true |
41 |
$this->correct = true; |
42 |
// Recherche si le login a supprimer est identique au login de |
43 |
// l'utilisateur connecte |
44 |
$sql = "select * from ".DB_PREFIXE."om_utilisateur where om_utilisateur='".$id."'"; |
45 |
$res = $db->query($sql); |
46 |
if (database::isError($res)) { |
47 |
$this->erreur_db($res->getDebugInfo(), $res->getMessage(), ""); |
48 |
} else { |
49 |
// |
50 |
$row =& $res->fetchRow(DB_FETCHMODE_ASSOC); |
51 |
if ($row['login'] == $_SESSION ['login']) { |
52 |
$this->msg .= _("Vous ne pouvez pas supprimer votre utilisateur.")."<br/>"; |
53 |
$this->correct = false; |
54 |
} |
55 |
} |
56 |
// Si la suppression n'est pas possible, on ajoute un message clair |
57 |
// pour l'utilisateur |
58 |
if ($this->correct == false) { |
59 |
$this->msg .= _("SUPPRESSION IMPOSSIBLE")."<br />"; |
60 |
} |
61 |
} |
62 |
|
63 |
function setType(&$form,$maj) { |
64 |
// |
65 |
parent::setType($form, $maj); |
66 |
// Gestion du type d'utilisateur (DB ou LDAP) |
67 |
$form->setType("om_type", "hidden"); |
68 |
// Test du MODE |
69 |
if ($maj == 0) { |
70 |
// Modes : AJOUTER |
71 |
// Gestion du mot de passe |
72 |
$form->setType("pwd", "password"); |
73 |
} elseif ($maj == 1) { |
74 |
// Modes : AJOUTER |
75 |
// Gestion du mot de passe |
76 |
$form->setType("pwd", "password"); |
77 |
// Gestion du login |
78 |
$form->setType("login", "hiddenstatic"); |
79 |
} |
80 |
} |
81 |
|
82 |
function setVal(&$form,$maj,$validation,&$db,$DEBUG=null){ |
83 |
// |
84 |
parent::setVal($form, $maj, $validation, $db, $DEBUG); |
85 |
// |
86 |
if ($validation == 0) { |
87 |
// Test du MODE |
88 |
if ($maj == 0) { |
89 |
// Mode : AJOUTER |
90 |
// Gestion du type d'utilisateur (DB ou LDAP) |
91 |
$form->setVal("om_type", "db"); |
92 |
} else { |
93 |
// Modes : MODIFIER & SUPPRIMER |
94 |
// Gestion du mot de passe |
95 |
// Lié a setValF() |
96 |
$form->setVal('pwd', "*****"); |
97 |
} |
98 |
} |
99 |
} |
100 |
|
101 |
function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,&$db,$DEBUG=null){ |
102 |
// |
103 |
parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, $db, $DEBUG); |
104 |
// |
105 |
if ($validation == 0) { |
106 |
// Test du MODE |
107 |
if ($maj == 0) { |
108 |
// Mode : AJOUTER |
109 |
// Gestion du type d'utilisateur (DB ou LDAP) |
110 |
$form->setVal("om_type", "db"); |
111 |
} else { |
112 |
// Modes : MODIFIER & SUPPRIMER |
113 |
// Gestion du mot de passe |
114 |
// Lié a setValF() |
115 |
$form->setVal("pwd", "*****"); |
116 |
} |
117 |
} |
118 |
} |
119 |
|
120 |
/** |
121 |
* Permet d’effectuer des actions avant la modification des données dans la base |
122 |
* @param mixed $id Identifiant de l'enregistrement |
123 |
* @param mixed $db Connecteur BDD |
124 |
* @param array $val Valeurs |
125 |
* @param boolean $DEBUG Mode debug |
126 |
*/ |
127 |
function triggersupprimer($id, $db, $val, $DEBUG) { |
128 |
|
129 |
// Si l'utilisateur est un instructeur |
130 |
$get_instructeur_by_om_utilisateur = $this->get_instructeur_by_om_utilisateur($id); |
131 |
if ($get_instructeur_by_om_utilisateur != '') { |
132 |
|
133 |
// Instanciation de la classe instructeur |
134 |
require_once '../obj/instructeur.class.php'; |
135 |
$instructeur = new instructeur($get_instructeur_by_om_utilisateur, $db, $DEBUG); |
136 |
// Valeurs de l'enregistrement |
137 |
$value_instructeur = array(); |
138 |
foreach($instructeur->champs as $key => $champ) { |
139 |
// |
140 |
$value_instructeur[$champ] = $instructeur->val[$key]; |
141 |
} |
142 |
// Valeur à modifier |
143 |
$value_instructeur['om_utilisateur'] = NULL; |
144 |
// Modifie l'enregistrement |
145 |
$instructeur->modifier($value_instructeur, $db, $DEBUG); |
146 |
} |
147 |
|
148 |
// Si l'utilisateur est associé à des services |
149 |
$get_lien_service_om_utilisateur_by_om_utilisateur = $this->get_lien_service_om_utilisateur_by_om_utilisateur($id); |
150 |
if ($get_lien_service_om_utilisateur_by_om_utilisateur != '') { |
151 |
|
152 |
//Instanciation de la classe lien_service_om_utilisateur |
153 |
require_once '../obj/lien_service_om_utilisateur.class.php'; |
154 |
|
155 |
// |
156 |
while ($row = &$get_lien_service_om_utilisateur_by_om_utilisateur->fetchRow(DB_FETCHMODE_ASSOC)) { |
157 |
|
158 |
$lien_service_om_utilisateur = new lien_service_om_utilisateur($row['lien_service_om_utilisateur'], $db, $DEBUG); |
159 |
// Valeurs de l'enregistrement |
160 |
$value_lien_service_om_utilisateur = array(); |
161 |
foreach($lien_service_om_utilisateur->champs as $key => $champ) { |
162 |
// |
163 |
$value_lien_service_om_utilisateur[$champ] = $lien_service_om_utilisateur->val[$key]; |
164 |
} |
165 |
// Valeur à modifier |
166 |
$value_lien_service_om_utilisateur['om_utilisateur'] = NULL; |
167 |
// Modifie l'enregistrement |
168 |
$lien_service_om_utilisateur->modifier($value_lien_service_om_utilisateur, $db, $DEBUG); |
169 |
} |
170 |
|
171 |
|
172 |
} |
173 |
|
174 |
} |
175 |
|
176 |
/** |
177 |
* Récupère l'identifiant de l'instructeur par rapport à l'utilisateur |
178 |
* @param integer $om_utilisateur Identifiant de l'utilisateur |
179 |
* @return integer Identifiant de l'instructeur |
180 |
*/ |
181 |
function get_instructeur_by_om_utilisateur($om_utilisateur) { |
182 |
|
183 |
// Initialisation résultat |
184 |
$instructeur = ''; |
185 |
|
186 |
// Si la condition n'est pas vide |
187 |
if ($om_utilisateur != "" |
188 |
&& $om_utilisateur != null |
189 |
&& is_numeric($om_utilisateur)) { |
190 |
|
191 |
// Requête SQL |
192 |
$sql = "SELECT instructeur |
193 |
FROM ".DB_PREFIXE."instructeur |
194 |
WHERE om_utilisateur = $om_utilisateur"; |
195 |
$this->f->addToLog("get_instructeur_by_om_utilisateur() : db->getOne(\"".$sql."\")", VERBOSE_MODE); |
196 |
$instructeur = $this->db->getOne($sql); |
197 |
$this->f->isDatabaseError($instructeur); |
198 |
} |
199 |
|
200 |
// Retourne résultat |
201 |
return $instructeur; |
202 |
|
203 |
} |
204 |
|
205 |
/** |
206 |
* Récupère l'identifiant de lien_service_om_utilisateur par rapport à |
207 |
* l'utilisateur |
208 |
* @param integer $om_utilisateur Identifiant de l'utilisateur |
209 |
* @return object Résultat de la requête |
210 |
*/ |
211 |
function get_lien_service_om_utilisateur_by_om_utilisateur($om_utilisateur) { |
212 |
|
213 |
// Initialisation résultat |
214 |
$res = ''; |
215 |
|
216 |
// Si la condition n'est pas vide |
217 |
if ($om_utilisateur != "" |
218 |
&& $om_utilisateur != null |
219 |
&& is_numeric($om_utilisateur)) { |
220 |
|
221 |
// Requête SQL |
222 |
$sql = "SELECT lien_service_om_utilisateur |
223 |
FROM ".DB_PREFIXE."lien_service_om_utilisateur |
224 |
WHERE om_utilisateur = $om_utilisateur"; |
225 |
$this->f->addToLog("get_lien_service_om_utilisateur_by_om_utilisateur() : db->query(\"".$sql."\")", VERBOSE_MODE); |
226 |
$res = $this->db->query($sql); |
227 |
$this->f->isDatabaseError($res); |
228 |
} |
229 |
|
230 |
// Retourne résultat |
231 |
return $res; |
232 |
|
233 |
} |
234 |
} |
235 |
|
236 |
?> |