Completed
Push — master ( daccbf...1dc91e )
by cam
04:15
created
prive/formulaires/login.php 1 patch
Indentation   +210 added lines, -210 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,95 +60,95 @@  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
-	$lang = $GLOBALS['spip_lang'];
85
-	include_spip('inc/auth');
86
-	$row = auth_informer_login($login);
87
-
88
-	// retablir la langue de l'URL si forcee (on ignore la langue de l'auteur dans ce cas)
89
-	if (_request('lang') === $lang and $GLOBALS['spip_lang'] !== $lang) {
90
-		changer_langue($lang);
91
-	}
92
-
93
-	// Construire l'environnement du squelette
94
-	// Ne pas proposer de "rester connecte quelques jours"
95
-	// si la duree de l'alea est inferieure a 12 h (valeur par defaut)
96
-
97
-	$valeurs = array(
98
-		'var_login' => $login,
99
-		'editable' => !$row,
100
-		'cnx' => isset($row['cnx']) ? $row['cnx'] : '0',
101
-		'auth_http' => login_auth_http(),
102
-		'rester_connecte' => ((_RENOUVELLE_ALEA < 12 * 3600) ? '' : ' '),
103
-		'_logo' => isset($row['logo']) ? $row['logo'] : '',
104
-		'_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '',
105
-		'_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '',
106
-		'_pipeline' => 'affiche_formulaire_login', // faire passer le formulaire dans un pipe dedie pour les methodes auth
107
-	);
108
-
109
-	if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
110
-		$valeurs['editable'] = true;
111
-	}
112
-
113
-	if (is_null($prive) ? is_url_prive($cible) : $prive) {
114
-		include_spip('inc/autoriser');
115
-		$loge = autoriser('ecrire');
116
-	} else {
117
-		$loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
118
-	}
119
-
120
-	// Si on est connecte, appeler traiter()
121
-	// et lancer la redirection si besoin
122
-	if (!$valeurs['editable'] and $loge and _request('formulaire_action')!=='login') {
123
-		$traiter = charger_fonction('traiter', 'formulaires/login');
124
-		$res = $traiter($cible, $login, $prive);
125
-		$valeurs = array_merge($valeurs, $res);
126
-
127
-		if (isset($res['redirect']) and $res['redirect']) {
128
-			include_spip('inc/headers');
129
-			# preparer un lien pour quand redirige_formulaire ne fonctionne pas
130
-			$m = redirige_formulaire($res['redirect'], '', 'ajaxform');
131
-			$valeurs['_deja_loge'] = inserer_attribut(
132
-				'<a>' . _T('login_par_ici') . "</a>$m",
133
-				'href',
134
-				$res['redirect']
135
-			);
136
-		}
137
-	}
138
-	// en cas d'echec de cookie, inc_auth a renvoye vers le script de
139
-	// pose de cookie ; s'il n'est pas la, c'est echec cookie
140
-	// s'il est la, c'est probablement un bookmark sur bonjour=oui,
141
-	// et pas un echec cookie.
142
-	if ($erreur == 'cookie') {
143
-		$valeurs['echec_cookie'] = ' ';
144
-	} elseif ($erreur) {
145
-		// une erreur d'un SSO indique dans la redirection vers ici
146
-		// mais il faut se proteger de toute tentative d'injection malveilante
147
-		include_spip('inc/filtres');
148
-		$valeurs['message_erreur'] = textebrut($erreur);
149
-	}
150
-
151
-	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
+    $lang = $GLOBALS['spip_lang'];
85
+    include_spip('inc/auth');
86
+    $row = auth_informer_login($login);
87
+
88
+    // retablir la langue de l'URL si forcee (on ignore la langue de l'auteur dans ce cas)
89
+    if (_request('lang') === $lang and $GLOBALS['spip_lang'] !== $lang) {
90
+        changer_langue($lang);
91
+    }
92
+
93
+    // Construire l'environnement du squelette
94
+    // Ne pas proposer de "rester connecte quelques jours"
95
+    // si la duree de l'alea est inferieure a 12 h (valeur par defaut)
96
+
97
+    $valeurs = array(
98
+        'var_login' => $login,
99
+        'editable' => !$row,
100
+        'cnx' => isset($row['cnx']) ? $row['cnx'] : '0',
101
+        'auth_http' => login_auth_http(),
102
+        'rester_connecte' => ((_RENOUVELLE_ALEA < 12 * 3600) ? '' : ' '),
103
+        '_logo' => isset($row['logo']) ? $row['logo'] : '',
104
+        '_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '',
105
+        '_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '',
106
+        '_pipeline' => 'affiche_formulaire_login', // faire passer le formulaire dans un pipe dedie pour les methodes auth
107
+    );
108
+
109
+    if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
110
+        $valeurs['editable'] = true;
111
+    }
112
+
113
+    if (is_null($prive) ? is_url_prive($cible) : $prive) {
114
+        include_spip('inc/autoriser');
115
+        $loge = autoriser('ecrire');
116
+    } else {
117
+        $loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
118
+    }
119
+
120
+    // Si on est connecte, appeler traiter()
121
+    // et lancer la redirection si besoin
122
+    if (!$valeurs['editable'] and $loge and _request('formulaire_action')!=='login') {
123
+        $traiter = charger_fonction('traiter', 'formulaires/login');
124
+        $res = $traiter($cible, $login, $prive);
125
+        $valeurs = array_merge($valeurs, $res);
126
+
127
+        if (isset($res['redirect']) and $res['redirect']) {
128
+            include_spip('inc/headers');
129
+            # preparer un lien pour quand redirige_formulaire ne fonctionne pas
130
+            $m = redirige_formulaire($res['redirect'], '', 'ajaxform');
131
+            $valeurs['_deja_loge'] = inserer_attribut(
132
+                '<a>' . _T('login_par_ici') . "</a>$m",
133
+                'href',
134
+                $res['redirect']
135
+            );
136
+        }
137
+    }
138
+    // en cas d'echec de cookie, inc_auth a renvoye vers le script de
139
+    // pose de cookie ; s'il n'est pas la, c'est echec cookie
140
+    // s'il est la, c'est probablement un bookmark sur bonjour=oui,
141
+    // et pas un echec cookie.
142
+    if ($erreur == 'cookie') {
143
+        $valeurs['echec_cookie'] = ' ';
144
+    } elseif ($erreur) {
145
+        // une erreur d'un SSO indique dans la redirection vers ici
146
+        // mais il faut se proteger de toute tentative d'injection malveilante
147
+        include_spip('inc/filtres');
148
+        $valeurs['message_erreur'] = textebrut($erreur);
149
+    }
150
+
151
+    return $valeurs;
152 152
 }
153 153
 
154 154
 
@@ -163,19 +163,19 @@  discard block
 block discarded – undo
163 163
  *     - chaîne vide sinon.
164 164
  **/
165 165
 function login_auth_http() {
166
-	if (!$GLOBALS['ignore_auth_http']
167
-		and _request('var_erreur') == 'cookie'
168
-		and (!isset($_COOKIE['spip_session']) or $_COOKIE['spip_session'] != 'test_echec_cookie')
169
-		and (($GLOBALS['flag_sapi_name'] and preg_match(',apache,i', @php_sapi_name()))
170
-			or preg_match(',^Apache.* PHP,', $_SERVER['SERVER_SOFTWARE']))
171
-		// Attention dans le cas 'intranet' la proposition de se loger
172
-		// par auth_http peut conduire a l'echec.
173
-		and !(isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW']))
174
-	) {
175
-		return generer_url_action('cookie', '', false, true);
176
-	} else {
177
-		return '';
178
-	}
166
+    if (!$GLOBALS['ignore_auth_http']
167
+        and _request('var_erreur') == 'cookie'
168
+        and (!isset($_COOKIE['spip_session']) or $_COOKIE['spip_session'] != 'test_echec_cookie')
169
+        and (($GLOBALS['flag_sapi_name'] and preg_match(',apache,i', @php_sapi_name()))
170
+            or preg_match(',^Apache.* PHP,', $_SERVER['SERVER_SOFTWARE']))
171
+        // Attention dans le cas 'intranet' la proposition de se loger
172
+        // par auth_http peut conduire a l'echec.
173
+        and !(isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW']))
174
+    ) {
175
+        return generer_url_action('cookie', '', false, true);
176
+    } else {
177
+        return '';
178
+    }
179 179
 }
180 180
 
181 181
 /**
@@ -201,54 +201,54 @@  discard block
 block discarded – undo
201 201
  **/
202 202
 function formulaires_login_verifier_dist($cible = '', $login = '', $prive = null) {
203 203
 
204
-	$session_login = _request('var_login');
205
-	$session_password = _request('password');
206
-	$session_remember = _request('session_remember');
207
-
208
-	if (!$session_login) {
209
-		# pas de login saisi !
210
-		return array('var_login' => _T('info_obligatoire'));
211
-	}
212
-
213
-	// appeler auth_identifier_login qui va :
214
-	// - renvoyer un string si echec (message d'erreur)
215
-	// - un array decrivant l'auteur identifie si possible
216
-	// - rediriger vers un SSO qui renverra in fine sur action/auth qui finira l'authentification
217
-	include_spip('inc/auth');
218
-	$auteur = auth_identifier_login($session_login, $session_password);
219
-	// on arrive ici si on ne s'est pas identifie avec un SSO
220
-	if (!is_array($auteur)) {
221
-		$erreurs = array();
222
-		if (is_string($auteur) and strlen($auteur)) {
223
-			$erreurs['var_login'] = $auteur;
224
-		}
225
-		include_spip('inc/cookie');
226
-		spip_setcookie('spip_admin', '', time() - 3600);
227
-		if (strlen($session_password)) {
228
-			$erreurs['password'] = _T('login_erreur_pass');
229
-		} else {
230
-			// sinon c'est un login en deux passe old style (ou js en panne)
231
-			// pas de message d'erreur
232
-			$erreurs['password'] = ' ';
233
-		}
234
-
235
-		return
236
-			$erreurs;
237
-	}
238
-	// on a ete authentifie, construire la session
239
-	// en gerant la duree demandee pour son cookie
240
-	if ($session_remember !== null) {
241
-		$auteur['cookie'] = $session_remember;
242
-	}
243
-	// si la connexion est refusee on renvoi un message erreur de mot de passe
244
-	// car en donnant plus de detail on renseignerait un assaillant sur l'existence d'un compte
245
-	if (auth_loger($auteur) === false) {
246
-		$erreurs['message_erreur'] = _T('login_erreur_pass');
247
-		return $erreurs;
248
-	}
249
-
250
-	return (is_null($prive) ? is_url_prive($cible) : $prive)
251
-		? login_autoriser() : array();
204
+    $session_login = _request('var_login');
205
+    $session_password = _request('password');
206
+    $session_remember = _request('session_remember');
207
+
208
+    if (!$session_login) {
209
+        # pas de login saisi !
210
+        return array('var_login' => _T('info_obligatoire'));
211
+    }
212
+
213
+    // appeler auth_identifier_login qui va :
214
+    // - renvoyer un string si echec (message d'erreur)
215
+    // - un array decrivant l'auteur identifie si possible
216
+    // - rediriger vers un SSO qui renverra in fine sur action/auth qui finira l'authentification
217
+    include_spip('inc/auth');
218
+    $auteur = auth_identifier_login($session_login, $session_password);
219
+    // on arrive ici si on ne s'est pas identifie avec un SSO
220
+    if (!is_array($auteur)) {
221
+        $erreurs = array();
222
+        if (is_string($auteur) and strlen($auteur)) {
223
+            $erreurs['var_login'] = $auteur;
224
+        }
225
+        include_spip('inc/cookie');
226
+        spip_setcookie('spip_admin', '', time() - 3600);
227
+        if (strlen($session_password)) {
228
+            $erreurs['password'] = _T('login_erreur_pass');
229
+        } else {
230
+            // sinon c'est un login en deux passe old style (ou js en panne)
231
+            // pas de message d'erreur
232
+            $erreurs['password'] = ' ';
233
+        }
234
+
235
+        return
236
+            $erreurs;
237
+    }
238
+    // on a ete authentifie, construire la session
239
+    // en gerant la duree demandee pour son cookie
240
+    if ($session_remember !== null) {
241
+        $auteur['cookie'] = $session_remember;
242
+    }
243
+    // si la connexion est refusee on renvoi un message erreur de mot de passe
244
+    // car en donnant plus de detail on renseignerait un assaillant sur l'existence d'un compte
245
+    if (auth_loger($auteur) === false) {
246
+        $erreurs['message_erreur'] = _T('login_erreur_pass');
247
+        return $erreurs;
248
+    }
249
+
250
+    return (is_null($prive) ? is_url_prive($cible) : $prive)
251
+        ? login_autoriser() : array();
252 252
 }
253 253
 
254 254
 /**
@@ -263,21 +263,21 @@  discard block
 block discarded – undo
263 263
  *     - tableau vide sinon.
264 264
  **/
265 265
 function login_autoriser() {
266
-	include_spip('inc/autoriser');
267
-	if (!autoriser('ecrire')) {
268
-		$h = generer_url_action('logout', 'logout=prive&url=' . urlencode(self()));
269
-
270
-		return array(
271
-			'message_erreur' => '<h1>'
272
-				. _T('avis_erreur_visiteur')
273
-				. '</h1><p>'
274
-				. _T('texte_erreur_visiteur')
275
-				. "</p><p class='retour'>[<a href='$h'>"
276
-				. _T('icone_deconnecter') . '</a>]</p>'
277
-		);
278
-	}
279
-
280
-	return array();
266
+    include_spip('inc/autoriser');
267
+    if (!autoriser('ecrire')) {
268
+        $h = generer_url_action('logout', 'logout=prive&url=' . urlencode(self()));
269
+
270
+        return array(
271
+            'message_erreur' => '<h1>'
272
+                . _T('avis_erreur_visiteur')
273
+                . '</h1><p>'
274
+                . _T('texte_erreur_visiteur')
275
+                . "</p><p class='retour'>[<a href='$h'>"
276
+                . _T('icone_deconnecter') . '</a>]</p>'
277
+        );
278
+    }
279
+
280
+    return array();
281 281
 }
282 282
 
283 283
 /**
@@ -299,44 +299,44 @@  discard block
 block discarded – undo
299 299
  *     Retours du traitement
300 300
  **/
301 301
 function formulaires_login_traiter_dist($cible = '', $login = '', $prive = null) {
302
-	$res = array();
303
-	// Si on se connecte dans l'espace prive,
304
-	// ajouter "bonjour" (repere a peu pres les cookies desactives)
305
-	if (is_null($prive) ? is_url_prive($cible) : $prive) {
306
-		$cible = parametre_url($cible, 'bonjour', 'oui', '&');
307
-	}
308
-	if ($cible == '@page_auteur') {
309
-		$cible = generer_url_entite($GLOBALS['auteur_session']['id_auteur'], 'auteur');
310
-	}
311
-
312
-	if ($cible) {
313
-		$cible = parametre_url($cible, 'var_login', '', '&');
314
-
315
-		// transformer la cible absolue en cible relative
316
-		// pour pas echouer quand la meta adresse_site est foireuse
317
-		if (strncmp($cible, $u = url_de_base(), strlen($u)) == 0) {
318
-			$cible = './' . substr($cible, strlen($u));
319
-		} elseif (tester_url_absolue($cible) and !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) {
320
-			// si c'est une url absolue, refuser la redirection
321
-			// sauf si cette securite est levee volontairement par le webmestre
322
-			$cible = '';
323
-		}
324
-	}
325
-
326
-	// Si on est connecte, envoyer vers la destination
327
-	if ($cible and ($cible != self('&')) and ($cible != self())) {
328
-		$res['redirect'] = $cible;
329
-		$res['message_ok'] = inserer_attribut(
330
-			'<a>' . _T('login_par_ici') . '</a>',
331
-			'href',
332
-			$cible
333
-		);
334
-	}
335
-
336
-	// avant de rediriger il faut mettre a jour les sessions sur le disque si on a charge une session
337
-	if (function_exists('terminer_actualiser_sessions')) {
338
-		terminer_actualiser_sessions();
339
-	}
340
-
341
-	return $res;
302
+    $res = array();
303
+    // Si on se connecte dans l'espace prive,
304
+    // ajouter "bonjour" (repere a peu pres les cookies desactives)
305
+    if (is_null($prive) ? is_url_prive($cible) : $prive) {
306
+        $cible = parametre_url($cible, 'bonjour', 'oui', '&');
307
+    }
308
+    if ($cible == '@page_auteur') {
309
+        $cible = generer_url_entite($GLOBALS['auteur_session']['id_auteur'], 'auteur');
310
+    }
311
+
312
+    if ($cible) {
313
+        $cible = parametre_url($cible, 'var_login', '', '&');
314
+
315
+        // transformer la cible absolue en cible relative
316
+        // pour pas echouer quand la meta adresse_site est foireuse
317
+        if (strncmp($cible, $u = url_de_base(), strlen($u)) == 0) {
318
+            $cible = './' . substr($cible, strlen($u));
319
+        } elseif (tester_url_absolue($cible) and !defined('_AUTORISER_LOGIN_ABS_REDIRECT')) {
320
+            // si c'est une url absolue, refuser la redirection
321
+            // sauf si cette securite est levee volontairement par le webmestre
322
+            $cible = '';
323
+        }
324
+    }
325
+
326
+    // Si on est connecte, envoyer vers la destination
327
+    if ($cible and ($cible != self('&')) and ($cible != self())) {
328
+        $res['redirect'] = $cible;
329
+        $res['message_ok'] = inserer_attribut(
330
+            '<a>' . _T('login_par_ici') . '</a>',
331
+            'href',
332
+            $cible
333
+        );
334
+    }
335
+
336
+    // avant de rediriger il faut mettre a jour les sessions sur le disque si on a charge une session
337
+    if (function_exists('terminer_actualiser_sessions')) {
338
+        terminer_actualiser_sessions();
339
+    }
340
+
341
+    return $res;
342 342
 }
Please login to merge, or discard this patch.