| Line 37... |
Line 37... |
| 37 |
$utilisateur['connecte'] = true;
|
37 |
$utilisateur['connecte'] = true;
|
| 38 |
}
|
38 |
}
|
| 39 |
return $utilisateur;
|
39 |
return $utilisateur;
|
| 40 |
}
|
40 |
}
|
| Line -... |
Line 41... |
| - |
|
41 |
|
| 41 |
|
42 |
/**
|
| 42 |
private function chargerInfosUtilisateur($login) {
|
43 |
* Retourne les informations contenues dans la table cel_utilisateurs_infos,
|
| - |
|
44 |
* pour un login (adresse courriel) donné
|
| - |
|
45 |
*/
|
| 43 |
//var_dump($this->token_decode);
|
46 |
protected function lireCelUtilisateursInfos($login) {
|
| 44 |
$requete = 'SELECT * '.
|
47 |
$requete = 'SELECT * '.
|
| 45 |
'FROM cel_utilisateurs_infos AS cu '.
|
48 |
'FROM cel_utilisateurs_infos AS cu '.
|
| 46 |
'WHERE courriel = '.Cel::db()->proteger($login).' '.
|
49 |
'WHERE courriel = '.Cel::db()->proteger($login).' '.
|
| 47 |
' -- '.__FILE__.':'.__LINE__;
|
50 |
' -- '.__FILE__.':'.__LINE__;
|
| Line 48... |
Line -... |
| 48 |
$resultats = Cel::db()->requeter($requete);
|
- |
|
| 49 |
|
51 |
$resultats = Cel::db()->requeter($requete);
|
| 50 |
$retour = false;
|
52 |
|
| - |
|
53 |
if (is_array($resultats) && count($resultats) > 0) {
|
| - |
|
54 |
return $resultats[0];
|
| - |
|
55 |
} else {
|
| - |
|
56 |
return false;
|
| - |
|
57 |
}
|
| - |
|
58 |
}
|
| - |
|
59 |
|
| - |
|
60 |
/**
|
| - |
|
61 |
* Retourne true si le profil local stocké dans cel_utilisateurs_infos
|
| - |
|
62 |
* n'est plus à jour par rapport aux informations du jeton SSO; si le
|
| - |
|
63 |
* jeton est vide, retourne false pour éviter de tout casser
|
| - |
|
64 |
*/
|
| - |
|
65 |
protected function profilAChange($infosCUI) {
|
| - |
|
66 |
$aChange = false;
|
| - |
|
67 |
if ($this->token_decode != null) {
|
| - |
|
68 |
$aChange = ($this->token_decode['nom'] != $infosCUI['nom'])
|
| - |
|
69 |
|| ($this->token_decode['intitule'] != $infosCUI['intitule'])
|
| - |
|
70 |
|| ($this->token_decode['prenom'] != $infosCUI['prenom']);
|
| - |
|
71 |
}
|
| - |
|
72 |
//var_dump($aChange);
|
| - |
|
73 |
return $aChange;
|
| - |
|
74 |
}
|
| - |
|
75 |
|
| - |
|
76 |
/**
|
| - |
|
77 |
* Met à jour cel_utilisateurs_infos en fonction des informations
|
| - |
|
78 |
* contenues par le jeton SSO; si ce dernier est vide, ne fait
|
| - |
|
79 |
* rien (boulette-proof)
|
| - |
|
80 |
*/
|
| - |
|
81 |
protected function mettreAJourProfilLocal() {
|
| - |
|
82 |
//echo "Mise à jour profil local !!";
|
| - |
|
83 |
if ($this->token_decode != null && $this->token_decode['id'] != '') {
|
| - |
|
84 |
$requete = 'UPDATE cel_utilisateurs_infos SET'
|
| - |
|
85 |
. ' nom = ' . Cel::db()->proteger($this->token_decode['nom']) . ', '
|
| - |
|
86 |
. ' intitule = ' . Cel::db()->proteger($this->token_decode['intitule']) . ', '
|
| - |
|
87 |
. ' prenom = ' . Cel::db()->proteger($this->token_decode['prenom'])
|
| - |
|
88 |
. ' WHERE id_utilisateur = ' . Cel::db()->proteger($this->token_decode['id'])
|
| - |
|
89 |
. ' -- '.__FILE__.':'.__LINE__
|
| - |
|
90 |
;
|
| - |
|
91 |
//var_dump($requete);
|
| - |
|
92 |
Cel::db()->executer($requete);
|
| - |
|
93 |
}
|
| - |
|
94 |
}
|
| - |
|
95 |
|
| - |
|
96 |
/**
|
| - |
|
97 |
* Répercute le nom et le prénom contenus dans le jeton SSO (si au
|
| - |
|
98 |
* moins un des deux n'est pas vide) dans toutes les observations
|
| - |
|
99 |
* et images de l'auteur; si le jeton SSO est vide, ne fait rien
|
| - |
|
100 |
* (boulette-proof)
|
| - |
|
101 |
*
|
| - |
|
102 |
* @TODO gérer l'intitulé un jour
|
| - |
|
103 |
*/
|
| - |
|
104 |
protected function mettreAJourCoordonneesDansObsEtImages() {
|
| - |
|
105 |
//echo "Mise à jour obs et images !!";
|
| - |
|
106 |
if ($this->token_decode != null && $this->token_decode['id'] != '' && ($this->token_decode['nom'] != '' || $this->token_decode['prenom'] != '')) {
|
| - |
|
107 |
$requete = 'UPDATE cel_obs SET'
|
| - |
|
108 |
. ' nom_utilisateur = ' . Cel::db()->proteger($this->token_decode['nom']) . ', '
|
| - |
|
109 |
. ' prenom_utilisateur = ' . Cel::db()->proteger($this->token_decode['prenom'])
|
| - |
|
110 |
. ' WHERE ce_utilisateur = ' . Cel::db()->proteger($this->token_decode['id']) // s'assurer qu'il y a des ' autour de l'ID sans quoi les hash MD5 matcheront !
|
| - |
|
111 |
. ' -- '.__FILE__.':'.__LINE__
|
| - |
|
112 |
;
|
| - |
|
113 |
//var_dump($requete);
|
| - |
|
114 |
Cel::db()->executer($requete);
|
| - |
|
115 |
$requete = 'UPDATE cel_images SET'
|
| - |
|
116 |
. ' nom_utilisateur = ' . Cel::db()->proteger($this->token_decode['nom']) . ', '
|
| - |
|
117 |
. ' prenom_utilisateur = ' . Cel::db()->proteger($this->token_decode['prenom'])
|
| - |
|
118 |
. ' WHERE ce_utilisateur = ' . Cel::db()->proteger($this->token_decode['id']) // s'assurer qu'il y a des ' autour de l'ID sans quoi les hash MD5 matcheront !
|
| - |
|
119 |
. ' -- '.__FILE__.':'.__LINE__
|
| - |
|
120 |
;
|
| - |
|
121 |
//var_dump($requete);
|
| - |
|
122 |
Cel::db()->executer($requete);
|
| - |
|
123 |
}
|
| - |
|
124 |
}
|
| - |
|
125 |
|
| - |
|
126 |
/**
|
| - |
|
127 |
* Charge l'état de l'utilisateur en fonction du jeton SSO avec lequel celui-ci
|
| - |
|
128 |
* est identifié; si c'est la première fois que l'utilisateur se connecte au CeL,
|
| - |
|
129 |
* crée un profil local dans celè_utilisateurs_infos; si le profil a changé depuis
|
| - |
|
130 |
* la dernière connextion, le met à jour ainsi que les coordonnées dans les images
|
| - |
|
131 |
* et observations
|
| - |
|
132 |
*
|
| - |
|
133 |
* @param string $login le login (adresse courriel) de l'utilisateur
|
| - |
|
134 |
*/
|
| - |
|
135 |
private function chargerInfosUtilisateur($login) {
|
| - |
|
136 |
//var_dump($this->token_decode);
|
| - |
|
137 |
$infosCUI = $this->lireCelUtilisateursInfos($login);
|
| - |
|
138 |
|
| - |
|
139 |
$retour = false;
|
| - |
|
140 |
if ($infosCUI !== false) {
|
| - |
|
141 |
// Les données du profil ont-elles changé depuis la dernière connexion ?
|
| - |
|
142 |
if ($this->profilAChange($infosCUI)) {
|
| - |
|
143 |
// mise à jour du profil local
|
| - |
|
144 |
$this->mettreAJourProfilLocal();
|
| - |
|
145 |
// mise à jour des obs et images
|
| - |
|
146 |
$this->mettreAJourCoordonneesDansObsEtImages();
|
| - |
|
147 |
// re-lecture du nouveau profil local (permet de détecter si la mise à jour s'est mal passée)
|
| - |
|
148 |
$retour = $this->lireCelUtilisateursInfos($login);
|
| - |
|
149 |
} else {
|
| 51 |
if (is_array($resultats) && count($resultats) > 0) {
|
150 |
$retour = $infosCUI;
|
| 52 |
$retour = $resultats[0];
|
151 |
}
|
| 53 |
} else {
|
152 |
} else {
|
| 54 |
// première connexion au CeL !
|
153 |
// première connexion au CeL !
|
| 55 |
$this->initialiserInfosUtilisateur();
|
154 |
$this->initialiserInfosUtilisateur();
|