Completed
Push — master ( e5d515...3c12a8 )
by cam
05:30
created
prive/formulaires/login.php 1 patch
Indentation   +204 added lines, -204 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 include_spip('base/abstract_sql');
@@ -31,11 +31,11 @@  discard block
 block discarded – undo
31 31
  *     true si espace privé, false sinon.
32 32
  **/
33 33
 function is_url_prive($cible) {
34
-	include_spip('inc/filtres_mini');
35
-	$path = parse_url(tester_url_absolue($cible) ? $cible : url_absolue($cible));
36
-	$path = (isset($path['path']) ? $path['path'] : '');
34
+    include_spip('inc/filtres_mini');
35
+    $path = parse_url(tester_url_absolue($cible) ? $cible : url_absolue($cible));
36
+    $path = (isset($path['path']) ? $path['path'] : '');
37 37
 
38
-	return strncmp(substr($path, -strlen(_DIR_RESTREINT_ABS)), _DIR_RESTREINT_ABS, strlen(_DIR_RESTREINT_ABS)) == 0;
38
+    return strncmp(substr($path, -strlen(_DIR_RESTREINT_ABS)), _DIR_RESTREINT_ABS, strlen(_DIR_RESTREINT_ABS)) == 0;
39 39
 }
40 40
 
41 41
 /**
@@ -60,89 +60,89 @@  discard block
 block discarded – undo
60 60
  *     Environnement du formulaire
61 61
  **/
62 62
 function formulaires_login_charger_dist($cible = '', $login = '', $prive = null) {
63
-	$erreur = _request('var_erreur');
64
-
65
-	if (!$login) {
66
-		$login = strval(_request('var_login'));
67
-	}
68
-	// si on est deja identifie
69
-	if (!$login and isset($GLOBALS['visiteur_session']['email'])) {
70
-		$login = $GLOBALS['visiteur_session']['email'];
71
-	}
72
-	if (!$login and isset($GLOBALS['visiteur_session']['login'])) {
73
-		$login = $GLOBALS['visiteur_session']['login'];
74
-	}
75
-	// ou si on a un cookie admin
76
-	if (!$login) {
77
-		if (isset($_COOKIE['spip_admin'])
78
-			and preg_match(',^@(.*)$,', $_COOKIE['spip_admin'], $regs)
79
-		) {
80
-			$login = $regs[1];
81
-		}
82
-	}
83
-
84
-	include_spip('inc/auth');
85
-	$row = auth_informer_login($login);
86
-
87
-	// Construire l'environnement du squelette
88
-	// Ne pas proposer de "rester connecte quelques jours"
89
-	// si la duree de l'alea est inferieure a 12 h (valeur par defaut)
90
-
91
-	$valeurs = array(
92
-		'var_login' => $login,
93
-		'editable' => !$row,
94
-		'cnx' => isset($row['cnx']) ? $row['cnx'] : '0',
95
-		'auth_http' => login_auth_http(),
96
-		'rester_connecte' => ((_RENOUVELLE_ALEA < 12 * 3600) ? '' : ' '),
97
-		'_logo' => isset($row['logo']) ? $row['logo'] : '',
98
-		'_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '',
99
-		'_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '',
100
-		'_pipeline' => 'affiche_formulaire_login', // faire passer le formulaire dans un pipe dedie pour les methodes auth
101
-	);
102
-
103
-	if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
104
-		$valeurs['editable'] = true;
105
-	}
106
-
107
-	if (is_null($prive) ? is_url_prive($cible) : $prive) {
108
-		include_spip('inc/autoriser');
109
-		$loge = autoriser('ecrire');
110
-	} else {
111
-		$loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
112
-	}
113
-
114
-	// Si on est connecte, appeler traiter()
115
-	// et lancer la redirection si besoin
116
-	if (!$valeurs['editable'] and $loge and _request('formulaire_action')!=='login') {
117
-		$traiter = charger_fonction('traiter', 'formulaires/login');
118
-		$res = $traiter($cible, $login, $prive);
119
-		$valeurs = array_merge($valeurs, $res);
120
-
121
-		if (isset($res['redirect']) and $res['redirect']) {
122
-			include_spip('inc/headers');
123
-			# preparer un lien pour quand redirige_formulaire ne fonctionne pas
124
-			$m = redirige_formulaire($res['redirect'], '', 'ajaxform');
125
-			$valeurs['_deja_loge'] = inserer_attribut(
126
-				'<a>' . _T('login_par_ici') . "</a>$m",
127
-				'href',
128
-				$res['redirect']
129
-			);
130
-		}
131
-	}
132
-	// en cas d'echec de cookie, inc_auth a renvoye vers le script de
133
-	// pose de cookie ; s'il n'est pas la, c'est echec cookie
134
-	// s'il est la, c'est probablement un bookmark sur bonjour=oui,
135
-	// et pas un echec cookie.
136
-	if ($erreur == 'cookie') {
137
-		$valeurs['echec_cookie'] = ' ';
138
-	} elseif ($erreur) {
139
-		// une erreur d'un SSO indique dans la redirection vers ici
140
-		// mais il faut se proteger de toute tentative d'injection malveilante
141
-		include_spip('inc/filtres');
142
-		$valeurs['message_erreur'] = textebrut($erreur);
143
-	}
144
-
145
-	return $valeurs;
63
+    $erreur = _request('var_erreur');
64
+
65
+    if (!$login) {
66
+        $login = strval(_request('var_login'));
67
+    }
68
+    // si on est deja identifie
69
+    if (!$login and isset($GLOBALS['visiteur_session']['email'])) {
70
+        $login = $GLOBALS['visiteur_session']['email'];
71
+    }
72
+    if (!$login and isset($GLOBALS['visiteur_session']['login'])) {
73
+        $login = $GLOBALS['visiteur_session']['login'];
74
+    }
75
+    // ou si on a un cookie admin
76
+    if (!$login) {
77
+        if (isset($_COOKIE['spip_admin'])
78
+            and preg_match(',^@(.*)$,', $_COOKIE['spip_admin'], $regs)
79
+        ) {
80
+            $login = $regs[1];
81
+        }
82
+    }
83
+
84
+    include_spip('inc/auth');
85
+    $row = auth_informer_login($login);
86
+
87
+    // Construire l'environnement du squelette
88
+    // Ne pas proposer de "rester connecte quelques jours"
89
+    // si la duree de l'alea est inferieure a 12 h (valeur par defaut)
90
+
91
+    $valeurs = array(
92
+        'var_login' => $login,
93
+        'editable' => !$row,
94
+        'cnx' => isset($row['cnx']) ? $row['cnx'] : '0',
95
+        'auth_http' => login_auth_http(),
96
+        'rester_connecte' => ((_RENOUVELLE_ALEA < 12 * 3600) ? '' : ' '),
97
+        '_logo' => isset($row['logo']) ? $row['logo'] : '',
98
+        '_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '',
99
+        '_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '',
100
+        '_pipeline' => 'affiche_formulaire_login', // faire passer le formulaire dans un pipe dedie pour les methodes auth
101
+    );
102
+
103
+    if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
104
+        $valeurs['editable'] = true;
105
+    }
106
+
107
+    if (is_null($prive) ? is_url_prive($cible) : $prive) {
108
+        include_spip('inc/autoriser');
109
+        $loge = autoriser('ecrire');
110
+    } else {
111
+        $loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
112
+    }
113
+
114
+    // Si on est connecte, appeler traiter()
115
+    // et lancer la redirection si besoin
116
+    if (!$valeurs['editable'] and $loge and _request('formulaire_action')!=='login') {
117
+        $traiter = charger_fonction('traiter', 'formulaires/login');
118
+        $res = $traiter($cible, $login, $prive);
119
+        $valeurs = array_merge($valeurs, $res);
120
+
121
+        if (isset($res['redirect']) and $res['redirect']) {
122
+            include_spip('inc/headers');
123
+            # preparer un lien pour quand redirige_formulaire ne fonctionne pas
124
+            $m = redirige_formulaire($res['redirect'], '', 'ajaxform');
125
+            $valeurs['_deja_loge'] = inserer_attribut(
126
+                '<a>' . _T('login_par_ici') . "</a>$m",
127
+                'href',
128
+                $res['redirect']
129
+            );
130
+        }
131
+    }
132
+    // en cas d'echec de cookie, inc_auth a renvoye vers le script de
133
+    // pose de cookie ; s'il n'est pas la, c'est echec cookie
134
+    // s'il est la, c'est probablement un bookmark sur bonjour=oui,
135
+    // et pas un echec cookie.
136
+    if ($erreur == 'cookie') {
137
+        $valeurs['echec_cookie'] = ' ';
138
+    } elseif ($erreur) {
139
+        // une erreur d'un SSO indique dans la redirection vers ici
140
+        // mais il faut se proteger de toute tentative d'injection malveilante
141
+        include_spip('inc/filtres');
142
+        $valeurs['message_erreur'] = textebrut($erreur);
143
+    }
144
+
145
+    return $valeurs;
146 146
 }
147 147
 
148 148
 
@@ -157,19 +157,19 @@  discard block
 block discarded – undo
157 157
  *     - chaîne vide sinon.
158 158
  **/
159 159
 function login_auth_http() {
160
-	if (!$GLOBALS['ignore_auth_http']
161
-		and _request('var_erreur') == 'cookie'
162
-		and (!isset($_COOKIE['spip_session']) or $_COOKIE['spip_session'] != 'test_echec_cookie')
163
-		and (($GLOBALS['flag_sapi_name'] and preg_match(',apache,i', @php_sapi_name()))
164
-			or preg_match(',^Apache.* PHP,', $_SERVER['SERVER_SOFTWARE']))
165
-		// Attention dans le cas 'intranet' la proposition de se loger
166
-		// par auth_http peut conduire a l'echec.
167
-		and !(isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW']))
168
-	) {
169
-		return generer_url_action('cookie', '', false, true);
170
-	} else {
171
-		return '';
172
-	}
160
+    if (!$GLOBALS['ignore_auth_http']
161
+        and _request('var_erreur') == 'cookie'
162
+        and (!isset($_COOKIE['spip_session']) or $_COOKIE['spip_session'] != 'test_echec_cookie')
163
+        and (($GLOBALS['flag_sapi_name'] and preg_match(',apache,i', @php_sapi_name()))
164
+            or preg_match(',^Apache.* PHP,', $_SERVER['SERVER_SOFTWARE']))
165
+        // Attention dans le cas 'intranet' la proposition de se loger
166
+        // par auth_http peut conduire a l'echec.
167
+        and !(isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW']))
168
+    ) {
169
+        return generer_url_action('cookie', '', false, true);
170
+    } else {
171
+        return '';
172
+    }
173 173
 }
174 174
 
175 175
 /**
@@ -195,54 +195,54 @@  discard block
 block discarded – undo
195 195
  **/
196 196
 function formulaires_login_verifier_dist($cible = '', $login = '', $prive = null) {
197 197
 
198
-	$session_login = _request('var_login');
199
-	$session_password = _request('password');
200
-	$session_remember = _request('session_remember');
201
-
202
-	if (!$session_login) {
203
-		# pas de login saisi !
204
-		return array('var_login' => _T('info_obligatoire'));
205
-	}
206
-
207
-	// appeler auth_identifier_login qui va :
208
-	// - renvoyer un string si echec (message d'erreur)
209
-	// - un array decrivant l'auteur identifie si possible
210
-	// - rediriger vers un SSO qui renverra in fine sur action/auth qui finira l'authentification
211
-	include_spip('inc/auth');
212
-	$auteur = auth_identifier_login($session_login, $session_password);
213
-	// on arrive ici si on ne s'est pas identifie avec un SSO
214
-	if (!is_array($auteur)) {
215
-		$erreurs = array();
216
-		if (is_string($auteur) and strlen($auteur)) {
217
-			$erreurs['var_login'] = $auteur;
218
-		}
219
-		include_spip('inc/cookie');
220
-		spip_setcookie('spip_admin', '', time() - 3600);
221
-		if (strlen($session_password)) {
222
-			$erreurs['password'] = _T('login_erreur_pass');
223
-		} else {
224
-			// sinon c'est un login en deux passe old style (ou js en panne)
225
-			// pas de message d'erreur
226
-			$erreurs['password'] = ' ';
227
-		}
228
-
229
-		return
230
-			$erreurs;
231
-	}
232
-	// on a ete authentifie, construire la session
233
-	// en gerant la duree demandee pour son cookie
234
-	if ($session_remember !== null) {
235
-		$auteur['cookie'] = $session_remember;
236
-	}
237
-	// si la connexion est refusee on renvoi un message erreur de mot de passe
238
-	// car en donnant plus de detail on renseignerait un assaillant sur l'existence d'un compte
239
-	if (auth_loger($auteur) === false) {
240
-		$erreurs['message_erreur'] = _T('login_erreur_pass');
241
-		return $erreurs;
242
-	}
243
-
244
-	return (is_null($prive) ? is_url_prive($cible) : $prive)
245
-		? login_autoriser() : array();
198
+    $session_login = _request('var_login');
199
+    $session_password = _request('password');
200
+    $session_remember = _request('session_remember');
201
+
202
+    if (!$session_login) {
203
+        # pas de login saisi !
204
+        return array('var_login' => _T('info_obligatoire'));
205
+    }
206
+
207
+    // appeler auth_identifier_login qui va :
208
+    // - renvoyer un string si echec (message d'erreur)
209
+    // - un array decrivant l'auteur identifie si possible
210
+    // - rediriger vers un SSO qui renverra in fine sur action/auth qui finira l'authentification
211
+    include_spip('inc/auth');
212
+    $auteur = auth_identifier_login($session_login, $session_password);
213
+    // on arrive ici si on ne s'est pas identifie avec un SSO
214
+    if (!is_array($auteur)) {
215
+        $erreurs = array();
216
+        if (is_string($auteur) and strlen($auteur)) {
217
+            $erreurs['var_login'] = $auteur;
218
+        }
219
+        include_spip('inc/cookie');
220
+        spip_setcookie('spip_admin', '', time() - 3600);
221
+        if (strlen($session_password)) {
222
+            $erreurs['password'] = _T('login_erreur_pass');
223
+        } else {
224
+            // sinon c'est un login en deux passe old style (ou js en panne)
225
+            // pas de message d'erreur
226
+            $erreurs['password'] = ' ';
227
+        }
228
+
229
+        return
230
+            $erreurs;
231
+    }
232
+    // on a ete authentifie, construire la session
233
+    // en gerant la duree demandee pour son cookie
234
+    if ($session_remember !== null) {
235
+        $auteur['cookie'] = $session_remember;
236
+    }
237
+    // si la connexion est refusee on renvoi un message erreur de mot de passe
238
+    // car en donnant plus de detail on renseignerait un assaillant sur l'existence d'un compte
239
+    if (auth_loger($auteur) === false) {
240
+        $erreurs['message_erreur'] = _T('login_erreur_pass');
241
+        return $erreurs;
242
+    }
243
+
244
+    return (is_null($prive) ? is_url_prive($cible) : $prive)
245
+        ? login_autoriser() : array();
246 246
 }
247 247
 
248 248
 /**
@@ -257,21 +257,21 @@  discard block
 block discarded – undo
257 257
  *     - tableau vide sinon.
258 258
  **/
259 259
 function login_autoriser() {
260
-	include_spip('inc/autoriser');
261
-	if (!autoriser('ecrire')) {
262
-		$h = generer_url_action('logout', 'logout=prive&url=' . urlencode(self()));
263
-
264
-		return array(
265
-			'message_erreur' => '<h1>'
266
-				. _T('avis_erreur_visiteur')
267
-				. '</h1><p>'
268
-				. _T('texte_erreur_visiteur')
269
-				. "</p><p class='retour'>[<a href='$h'>"
270
-				. _T('icone_deconnecter') . '</a>]</p>'
271
-		);
272
-	}
273
-
274
-	return array();
260
+    include_spip('inc/autoriser');
261
+    if (!autoriser('ecrire')) {
262
+        $h = generer_url_action('logout', 'logout=prive&url=' . urlencode(self()));
263
+
264
+        return array(
265
+            'message_erreur' => '<h1>'
266
+                . _T('avis_erreur_visiteur')
267
+                . '</h1><p>'
268
+                . _T('texte_erreur_visiteur')
269
+                . "</p><p class='retour'>[<a href='$h'>"
270
+                . _T('icone_deconnecter') . '</a>]</p>'
271
+        );
272
+    }
273
+
274
+    return array();
275 275
 }
276 276
 
277 277
 /**
@@ -293,44 +293,44 @@  discard block
 block discarded – undo
293 293
  *     Retours du traitement
294 294
  **/
295 295
 function formulaires_login_traiter_dist($cible = '', $login = '', $prive = null) {
296
-	$res = array();
297
-	// Si on se connecte dans l'espace prive,
298
-	// ajouter "bonjour" (repere a peu pres les cookies desactives)
299
-	if (is_null($prive) ? is_url_prive($cible) : $prive) {
300
-		$cible = parametre_url($cible, 'bonjour', 'oui', '&');
301
-	}
302
-	if ($cible == '@page_auteur') {
303
-		$cible = generer_url_entite($GLOBALS['auteur_session']['id_auteur'], 'auteur');
304
-	}
305
-
306
-	if ($cible) {
307
-		$cible = parametre_url($cible, 'var_login', '', '&');
308
-
309
-		// transformer la cible absolue en cible relative
310
-		// pour pas echouer quand la meta adresse_site est foireuse
311
-		if (strncmp($cible, $u = url_de_base(), strlen($u)) == 0) {
312
-			$cible = './' . substr($cible, strlen($u));
313
-		} elseif (tester_url_absolue($cible) and !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) {
314
-			// si c'est une url absolue, refuser la redirection
315
-			// sauf si cette securite est levee volontairement par le webmestre
316
-			$cible = '';
317
-		}
318
-	}
319
-
320
-	// Si on est connecte, envoyer vers la destination
321
-	if ($cible and ($cible != self('&')) and ($cible != self())) {
322
-		$res['redirect'] = $cible;
323
-		$res['message_ok'] = inserer_attribut(
324
-			'<a>' . _T('login_par_ici') . '</a>',
325
-			'href',
326
-			$cible
327
-		);
328
-	}
329
-
330
-	// avant de rediriger il faut mettre a jour les sessions sur le disque si on a charge une session
331
-	if (function_exists('terminer_actualiser_sessions')) {
332
-		terminer_actualiser_sessions();
333
-	}
334
-
335
-	return $res;
296
+    $res = array();
297
+    // Si on se connecte dans l'espace prive,
298
+    // ajouter "bonjour" (repere a peu pres les cookies desactives)
299
+    if (is_null($prive) ? is_url_prive($cible) : $prive) {
300
+        $cible = parametre_url($cible, 'bonjour', 'oui', '&');
301
+    }
302
+    if ($cible == '@page_auteur') {
303
+        $cible = generer_url_entite($GLOBALS['auteur_session']['id_auteur'], 'auteur');
304
+    }
305
+
306
+    if ($cible) {
307
+        $cible = parametre_url($cible, 'var_login', '', '&');
308
+
309
+        // transformer la cible absolue en cible relative
310
+        // pour pas echouer quand la meta adresse_site est foireuse
311
+        if (strncmp($cible, $u = url_de_base(), strlen($u)) == 0) {
312
+            $cible = './' . substr($cible, strlen($u));
313
+        } elseif (tester_url_absolue($cible) and !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) {
314
+            // si c'est une url absolue, refuser la redirection
315
+            // sauf si cette securite est levee volontairement par le webmestre
316
+            $cible = '';
317
+        }
318
+    }
319
+
320
+    // Si on est connecte, envoyer vers la destination
321
+    if ($cible and ($cible != self('&')) and ($cible != self())) {
322
+        $res['redirect'] = $cible;
323
+        $res['message_ok'] = inserer_attribut(
324
+            '<a>' . _T('login_par_ici') . '</a>',
325
+            'href',
326
+            $cible
327
+        );
328
+    }
329
+
330
+    // avant de rediriger il faut mettre a jour les sessions sur le disque si on a charge une session
331
+    if (function_exists('terminer_actualiser_sessions')) {
332
+        terminer_actualiser_sessions();
333
+    }
334
+
335
+    return $res;
336 336
 }
Please login to merge, or discard this patch.