Completed
Push — master ( 7294eb...c9aa53 )
by cam
04:26
created
ecrire/inc/auth.php 1 patch
Indentation   +445 added lines, -445 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');
@@ -35,33 +35,33 @@  discard block
 block discarded – undo
35 35
  *  - une chaîne vide si autorisation à pénétrer dans l'espace privé.
36 36
  */
37 37
 function inc_auth_dist() {
38
-	$row = auth_mode();
38
+    $row = auth_mode();
39 39
 
40
-	if ($row) {
41
-		return auth_init_droits($row);
42
-	}
40
+    if ($row) {
41
+        return auth_init_droits($row);
42
+    }
43 43
 
44
-	if (!$GLOBALS['connect_login']) {
45
-		return auth_a_loger();
46
-	}
44
+    if (!$GLOBALS['connect_login']) {
45
+        return auth_a_loger();
46
+    }
47 47
 
48
-	// Cas ou l'auteur a ete identifie mais on n'a pas d'info sur lui
49
-	// C'est soit parce que la base est inutilisable,
50
-	// soit parce que la table des auteurs a changee (restauration etc)
51
-	// Pas la peine d'insister.
52
-	// Renvoyer le nom fautif et une URL de remise a zero
48
+    // Cas ou l'auteur a ete identifie mais on n'a pas d'info sur lui
49
+    // C'est soit parce que la base est inutilisable,
50
+    // soit parce que la table des auteurs a changee (restauration etc)
51
+    // Pas la peine d'insister.
52
+    // Renvoyer le nom fautif et une URL de remise a zero
53 53
 
54
-	if (spip_connect()) {
55
-		return array(
56
-			'login' => $GLOBALS['connect_login'],
57
-			'site' => generer_url_public('', 'action=logout&logout=prive')
58
-		);
59
-	}
54
+    if (spip_connect()) {
55
+        return array(
56
+            'login' => $GLOBALS['connect_login'],
57
+            'site' => generer_url_public('', 'action=logout&logout=prive')
58
+        );
59
+    }
60 60
 
61
-	$n = intval(sql_errno());
62
-	spip_log("Erreur base de donnees $n " . sql_error());
61
+    $n = intval(sql_errno());
62
+    spip_log("Erreur base de donnees $n " . sql_error());
63 63
 
64
-	return $n ? $n : 1;
64
+    return $n ? $n : 1;
65 65
 }
66 66
 
67 67
 /**
@@ -73,39 +73,39 @@  discard block
 block discarded – undo
73 73
  * @return array|string
74 74
  */
75 75
 function auth_echec($raison) {
76
-	include_spip('inc/minipres');
77
-	include_spip('inc/headers');
78
-	// pas authentifie. Pourquoi ?
79
-	if (is_string($raison)) {
80
-		// redirection vers une page d'authentification
81
-		// on ne revient pas de cette fonction
82
-		// sauf si pb de header
83
-		$raison = redirige_formulaire($raison);
84
-	} elseif (is_int($raison)) {
85
-		// erreur SQL a afficher
86
-		$raison = minipres(
87
-			_T('info_travaux_titre'),
88
-			_T('titre_probleme_technique') . '<p><tt>' . sql_errno() . ' ' . sql_error() . '</tt></p>'
89
-		);
90
-	} elseif (@$raison['statut']) {
91
-		// un simple visiteur n'a pas acces a l'espace prive
92
-		spip_log('connexion refusee a ' . @$raison['id_auteur']);
93
-		$raison = minipres(_T('avis_erreur_connexion'), _T('avis_erreur_visiteur'));
94
-	} else {
95
-		// auteur en fin de droits ...
96
-		$h = $raison['site'];
97
-		$raison = minipres(
98
-			_T('avis_erreur_connexion'),
99
-			'<br /><br /><p>'
100
-			. _T('texte_inc_auth_1', array('auth_login' => $raison['login']))
101
-			. " <a href='$h'>"
102
-			. _T('texte_inc_auth_2')
103
-			. '</a>'
104
-			. _T('texte_inc_auth_3')
105
-		);
106
-	}
107
-
108
-	return $raison;
76
+    include_spip('inc/minipres');
77
+    include_spip('inc/headers');
78
+    // pas authentifie. Pourquoi ?
79
+    if (is_string($raison)) {
80
+        // redirection vers une page d'authentification
81
+        // on ne revient pas de cette fonction
82
+        // sauf si pb de header
83
+        $raison = redirige_formulaire($raison);
84
+    } elseif (is_int($raison)) {
85
+        // erreur SQL a afficher
86
+        $raison = minipres(
87
+            _T('info_travaux_titre'),
88
+            _T('titre_probleme_technique') . '<p><tt>' . sql_errno() . ' ' . sql_error() . '</tt></p>'
89
+        );
90
+    } elseif (@$raison['statut']) {
91
+        // un simple visiteur n'a pas acces a l'espace prive
92
+        spip_log('connexion refusee a ' . @$raison['id_auteur']);
93
+        $raison = minipres(_T('avis_erreur_connexion'), _T('avis_erreur_visiteur'));
94
+    } else {
95
+        // auteur en fin de droits ...
96
+        $h = $raison['site'];
97
+        $raison = minipres(
98
+            _T('avis_erreur_connexion'),
99
+            '<br /><br /><p>'
100
+            . _T('texte_inc_auth_1', array('auth_login' => $raison['login']))
101
+            . " <a href='$h'>"
102
+            . _T('texte_inc_auth_2')
103
+            . '</a>'
104
+            . _T('texte_inc_auth_3')
105
+        );
106
+    }
107
+
108
+    return $raison;
109 109
 }
110 110
 
111 111
 /**
@@ -115,80 +115,80 @@  discard block
 block discarded – undo
115 115
  * @return array|bool|string
116 116
  */
117 117
 function auth_mode() {
118
-	//
119
-	// Initialiser variables (eviter hacks par URL)
120
-	//
121
-	$GLOBALS['connect_login'] = '';
122
-	$id_auteur = null;
123
-	$GLOBALS['auth_can_disconnect'] = false;
124
-
125
-	//
126
-	// Recuperer les donnees d'identification
127
-	//
128
-	include_spip('inc/session');
129
-	// Session valide en cours ?
130
-	if (isset($_COOKIE['spip_session'])) {
131
-		$session = charger_fonction('session', 'inc');
132
-		if ($id_auteur = $session()
133
-			or $id_auteur === 0 // reprise sur restauration
134
-		) {
135
-			$GLOBALS['auth_can_disconnect'] = true;
136
-			$GLOBALS['connect_login'] = session_get('login');
137
-		} else {
138
-			unset($_COOKIE['spip_session']);
139
-		}
140
-	}
141
-
142
-	// Essayer auth http si significatif
143
-	// (ignorer les login d'intranet independants de spip)
144
-	if (!$GLOBALS['ignore_auth_http']) {
145
-		if (
146
-			(isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW'])
147
-				and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
148
-			or
149
-			// Si auth http differtente de basic, PHP_AUTH_PW
150
-			// est indisponible mais tentons quand meme pour
151
-			// autocreation via LDAP
152
-			(isset($_SERVER['REMOTE_USER'])
153
-				and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'], ''))
154
-		) {
155
-			if (!$id_auteur) {
156
-				$_SERVER['PHP_AUTH_PW'] = '';
157
-				$GLOBALS['auth_can_disconnect'] = true;
158
-				$GLOBALS['visiteur_session'] = $r;
159
-				$GLOBALS['connect_login'] = session_get('login');
160
-				$id_auteur = $r['id_auteur'];
161
-			} else {
162
-				// cas de la session en plus de PHP_AUTH
163
-				/*				  if ($id_auteur != $r['id_auteur']){
118
+    //
119
+    // Initialiser variables (eviter hacks par URL)
120
+    //
121
+    $GLOBALS['connect_login'] = '';
122
+    $id_auteur = null;
123
+    $GLOBALS['auth_can_disconnect'] = false;
124
+
125
+    //
126
+    // Recuperer les donnees d'identification
127
+    //
128
+    include_spip('inc/session');
129
+    // Session valide en cours ?
130
+    if (isset($_COOKIE['spip_session'])) {
131
+        $session = charger_fonction('session', 'inc');
132
+        if ($id_auteur = $session()
133
+            or $id_auteur === 0 // reprise sur restauration
134
+        ) {
135
+            $GLOBALS['auth_can_disconnect'] = true;
136
+            $GLOBALS['connect_login'] = session_get('login');
137
+        } else {
138
+            unset($_COOKIE['spip_session']);
139
+        }
140
+    }
141
+
142
+    // Essayer auth http si significatif
143
+    // (ignorer les login d'intranet independants de spip)
144
+    if (!$GLOBALS['ignore_auth_http']) {
145
+        if (
146
+            (isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW'])
147
+                and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
148
+            or
149
+            // Si auth http differtente de basic, PHP_AUTH_PW
150
+            // est indisponible mais tentons quand meme pour
151
+            // autocreation via LDAP
152
+            (isset($_SERVER['REMOTE_USER'])
153
+                and $r = lire_php_auth($_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'], ''))
154
+        ) {
155
+            if (!$id_auteur) {
156
+                $_SERVER['PHP_AUTH_PW'] = '';
157
+                $GLOBALS['auth_can_disconnect'] = true;
158
+                $GLOBALS['visiteur_session'] = $r;
159
+                $GLOBALS['connect_login'] = session_get('login');
160
+                $id_auteur = $r['id_auteur'];
161
+            } else {
162
+                // cas de la session en plus de PHP_AUTH
163
+                /*				  if ($id_auteur != $r['id_auteur']){
164 164
 					spip_log("vol de session $id_auteur" . join(', ', $r));
165 165
 				unset($_COOKIE['spip_session']);
166 166
 				$id_auteur = '';
167 167
 				} */
168
-			}
169
-		} else {
170
-			// Authentification .htaccess old style, car .htaccess semble
171
-			// souvent definir *aussi* PHP_AUTH_USER et PHP_AUTH_PW
172
-			if (isset($_SERVER['REMOTE_USER'])) {
173
-				$GLOBALS['connect_login'] = $_SERVER['REMOTE_USER'];
174
-			}
175
-		}
176
-	}
177
-
178
-	$where = (is_numeric($id_auteur)
179
-		/*AND $id_auteur>0*/ // reprise lors des restaurations
180
-	) ?
181
-		"id_auteur=$id_auteur" :
182
-		(!strlen($GLOBALS['connect_login']) ? '' : 'login=' . sql_quote($GLOBALS['connect_login'], '', 'text'));
183
-
184
-	if (!$where) {
185
-		return '';
186
-	}
187
-
188
-	// Trouver les autres infos dans la table auteurs.
189
-	// le champ 'quand' est utilise par l'agenda
190
-
191
-	return sql_fetsel('*, en_ligne AS quand', 'spip_auteurs', "$where AND statut!='5poubelle'");
168
+            }
169
+        } else {
170
+            // Authentification .htaccess old style, car .htaccess semble
171
+            // souvent definir *aussi* PHP_AUTH_USER et PHP_AUTH_PW
172
+            if (isset($_SERVER['REMOTE_USER'])) {
173
+                $GLOBALS['connect_login'] = $_SERVER['REMOTE_USER'];
174
+            }
175
+        }
176
+    }
177
+
178
+    $where = (is_numeric($id_auteur)
179
+        /*AND $id_auteur>0*/ // reprise lors des restaurations
180
+    ) ?
181
+        "id_auteur=$id_auteur" :
182
+        (!strlen($GLOBALS['connect_login']) ? '' : 'login=' . sql_quote($GLOBALS['connect_login'], '', 'text'));
183
+
184
+    if (!$where) {
185
+        return '';
186
+    }
187
+
188
+    // Trouver les autres infos dans la table auteurs.
189
+    // le champ 'quand' est utilise par l'agenda
190
+
191
+    return sql_fetsel('*, en_ligne AS quand', 'spip_auteurs', "$where AND statut!='5poubelle'");
192 192
 }
193 193
 
194 194
 /**
@@ -206,86 +206,86 @@  discard block
 block discarded – undo
206 206
  */
207 207
 function auth_init_droits($row) {
208 208
 
209
-	include_spip('inc/autoriser');
210
-	if (!autoriser('loger', '', 0, $row)) {
211
-		return false;
212
-	}
213
-
214
-
215
-	if ($row['statut'] == 'nouveau') {
216
-		include_spip('action/inscrire_auteur');
217
-		$row = confirmer_statut_inscription($row);
218
-	}
219
-
220
-	$GLOBALS['connect_id_auteur'] = $row['id_auteur'];
221
-	$GLOBALS['connect_login'] = $row['login'];
222
-	$GLOBALS['connect_statut'] = $row['statut'];
223
-
224
-	$GLOBALS['visiteur_session'] = array_merge((array)$GLOBALS['visiteur_session'], $row);
225
-
226
-	// au cas ou : ne pas memoriser les champs sensibles
227
-	unset($GLOBALS['visiteur_session']['pass']);
228
-	unset($GLOBALS['visiteur_session']['htpass']);
229
-	unset($GLOBALS['visiteur_session']['alea_actuel']);
230
-	unset($GLOBALS['visiteur_session']['alea_futur']);
231
-	unset($GLOBALS['visiteur_session']['ldap_password']);
232
-
233
-	// creer la session au besoin
234
-	if (!isset($_COOKIE['spip_session'])) {
235
-		$session = charger_fonction('session', 'inc');
236
-		$spip_session = $session($row);
237
-	}
238
-
239
-	// reinjecter les preferences_auteur apres le reset de spip_session
240
-	// car utilisees au retour par auth_loger()
241
-	$r = @unserialize($row['prefs']);
242
-	$GLOBALS['visiteur_session']['prefs'] = ($r ? $r : array());
243
-	// si prefs pas definies, les definir par defaut
244
-	if (!isset($GLOBALS['visiteur_session']['prefs']['couleur'])) {
245
-		$GLOBALS['visiteur_session']['prefs']['couleur'] = 11;
246
-		$GLOBALS['visiteur_session']['prefs']['display'] = 2;
247
-		$GLOBALS['visiteur_session']['prefs']['display_navigation'] = 'navigation_avec_icones';
248
-		$GLOBALS['visiteur_session']['prefs']['display_outils'] = 'oui';
249
-	}
250
-
251
-	$GLOBALS['visiteur_session'] = pipeline(
252
-		'preparer_visiteur_session',
253
-		array('args' => array('row' => $row),
254
-		'data' => $GLOBALS['visiteur_session'])
255
-	);
256
-
257
-	// Etablir les droits selon le codage attendu
258
-	// dans ecrire/index.php ecrire/prive.php
259
-
260
-	// Pas autorise a acceder a ecrire ? renvoyer le tableau
261
-	// A noter : le premier appel a autoriser() a le bon gout
262
-	// d'initialiser $GLOBALS['visiteur_session']['restreint'],
263
-	// qui ne figure pas dans le fichier de session
264
-
265
-	if (!autoriser('ecrire')) {
266
-		return $row;
267
-	}
268
-
269
-	// autoriser('ecrire') ne laisse passer que les Admin et les Redac
270
-
271
-	auth_trace($row);
272
-
273
-	// Administrateurs
274
-	if (in_array($GLOBALS['connect_statut'], explode(',', _STATUT_AUTEUR_RUBRIQUE))) {
275
-		if (
276
-			isset($GLOBALS['visiteur_session']['restreint'])
277
-			and is_array($GLOBALS['visiteur_session']['restreint'])
278
-		) {
279
-			$GLOBALS['connect_id_rubrique'] = $GLOBALS['visiteur_session']['restreint'];
280
-		}
281
-		if ($GLOBALS['connect_statut'] == '0minirezo') {
282
-			$GLOBALS['connect_toutes_rubriques'] = !$GLOBALS['connect_id_rubrique'];
283
-		}
284
-	}
285
-
286
-	// Pour les redacteurs, inc_version a fait l'initialisation minimale
287
-
288
-	return ''; // i.e. pas de pb.
209
+    include_spip('inc/autoriser');
210
+    if (!autoriser('loger', '', 0, $row)) {
211
+        return false;
212
+    }
213
+
214
+
215
+    if ($row['statut'] == 'nouveau') {
216
+        include_spip('action/inscrire_auteur');
217
+        $row = confirmer_statut_inscription($row);
218
+    }
219
+
220
+    $GLOBALS['connect_id_auteur'] = $row['id_auteur'];
221
+    $GLOBALS['connect_login'] = $row['login'];
222
+    $GLOBALS['connect_statut'] = $row['statut'];
223
+
224
+    $GLOBALS['visiteur_session'] = array_merge((array)$GLOBALS['visiteur_session'], $row);
225
+
226
+    // au cas ou : ne pas memoriser les champs sensibles
227
+    unset($GLOBALS['visiteur_session']['pass']);
228
+    unset($GLOBALS['visiteur_session']['htpass']);
229
+    unset($GLOBALS['visiteur_session']['alea_actuel']);
230
+    unset($GLOBALS['visiteur_session']['alea_futur']);
231
+    unset($GLOBALS['visiteur_session']['ldap_password']);
232
+
233
+    // creer la session au besoin
234
+    if (!isset($_COOKIE['spip_session'])) {
235
+        $session = charger_fonction('session', 'inc');
236
+        $spip_session = $session($row);
237
+    }
238
+
239
+    // reinjecter les preferences_auteur apres le reset de spip_session
240
+    // car utilisees au retour par auth_loger()
241
+    $r = @unserialize($row['prefs']);
242
+    $GLOBALS['visiteur_session']['prefs'] = ($r ? $r : array());
243
+    // si prefs pas definies, les definir par defaut
244
+    if (!isset($GLOBALS['visiteur_session']['prefs']['couleur'])) {
245
+        $GLOBALS['visiteur_session']['prefs']['couleur'] = 11;
246
+        $GLOBALS['visiteur_session']['prefs']['display'] = 2;
247
+        $GLOBALS['visiteur_session']['prefs']['display_navigation'] = 'navigation_avec_icones';
248
+        $GLOBALS['visiteur_session']['prefs']['display_outils'] = 'oui';
249
+    }
250
+
251
+    $GLOBALS['visiteur_session'] = pipeline(
252
+        'preparer_visiteur_session',
253
+        array('args' => array('row' => $row),
254
+        'data' => $GLOBALS['visiteur_session'])
255
+    );
256
+
257
+    // Etablir les droits selon le codage attendu
258
+    // dans ecrire/index.php ecrire/prive.php
259
+
260
+    // Pas autorise a acceder a ecrire ? renvoyer le tableau
261
+    // A noter : le premier appel a autoriser() a le bon gout
262
+    // d'initialiser $GLOBALS['visiteur_session']['restreint'],
263
+    // qui ne figure pas dans le fichier de session
264
+
265
+    if (!autoriser('ecrire')) {
266
+        return $row;
267
+    }
268
+
269
+    // autoriser('ecrire') ne laisse passer que les Admin et les Redac
270
+
271
+    auth_trace($row);
272
+
273
+    // Administrateurs
274
+    if (in_array($GLOBALS['connect_statut'], explode(',', _STATUT_AUTEUR_RUBRIQUE))) {
275
+        if (
276
+            isset($GLOBALS['visiteur_session']['restreint'])
277
+            and is_array($GLOBALS['visiteur_session']['restreint'])
278
+        ) {
279
+            $GLOBALS['connect_id_rubrique'] = $GLOBALS['visiteur_session']['restreint'];
280
+        }
281
+        if ($GLOBALS['connect_statut'] == '0minirezo') {
282
+            $GLOBALS['connect_toutes_rubriques'] = !$GLOBALS['connect_id_rubrique'];
283
+        }
284
+    }
285
+
286
+    // Pour les redacteurs, inc_version a fait l'initialisation minimale
287
+
288
+    return ''; // i.e. pas de pb.
289 289
 }
290 290
 
291 291
 /**
@@ -294,23 +294,23 @@  discard block
 block discarded – undo
294 294
  * @return string
295 295
  */
296 296
 function auth_a_loger() {
297
-	$redirect = generer_url_public('login', 'url=' . rawurlencode(self('&', true)), '&');
298
-
299
-	// un echec au "bonjour" (login initial) quand le statut est
300
-	// inconnu signale sans doute un probleme de cookies
301
-	if (isset($_GET['bonjour'])) {
302
-		$redirect = parametre_url(
303
-			$redirect,
304
-			'var_erreur',
305
-			(!isset($GLOBALS['visiteur_session']['statut'])
306
-				? 'cookie'
307
-				: 'statut'
308
-			),
309
-			'&'
310
-		);
311
-	}
312
-
313
-	return $redirect;
297
+    $redirect = generer_url_public('login', 'url=' . rawurlencode(self('&', true)), '&');
298
+
299
+    // un echec au "bonjour" (login initial) quand le statut est
300
+    // inconnu signale sans doute un probleme de cookies
301
+    if (isset($_GET['bonjour'])) {
302
+        $redirect = parametre_url(
303
+            $redirect,
304
+            'var_erreur',
305
+            (!isset($GLOBALS['visiteur_session']['statut'])
306
+                ? 'cookie'
307
+                : 'statut'
308
+            ),
309
+            '&'
310
+        );
311
+    }
312
+
313
+    return $redirect;
314 314
 }
315 315
 
316 316
 /**
@@ -322,21 +322,21 @@  discard block
 block discarded – undo
322 322
  * @param null|string $date
323 323
  */
324 324
 function auth_trace($row, $date = null) {
325
-	// Indiquer la connexion. A la minute pres ca suffit.
326
-	if (!is_numeric($connect_quand = isset($row['quand']) ? $row['quand'] : '')) {
327
-		$connect_quand = strtotime($connect_quand);
328
-	}
325
+    // Indiquer la connexion. A la minute pres ca suffit.
326
+    if (!is_numeric($connect_quand = isset($row['quand']) ? $row['quand'] : '')) {
327
+        $connect_quand = strtotime($connect_quand);
328
+    }
329 329
 
330
-	if (is_null($date)) {
331
-		$date = date('Y-m-d H:i:s');
332
-	}
330
+    if (is_null($date)) {
331
+        $date = date('Y-m-d H:i:s');
332
+    }
333 333
 
334
-	if (abs(strtotime($date) - $connect_quand) >= 60) {
335
-		sql_updateq('spip_auteurs', array('en_ligne' => $date), 'id_auteur=' . intval($row['id_auteur']));
336
-		$row['en_ligne'] = $date;
337
-	}
334
+    if (abs(strtotime($date) - $connect_quand) >= 60) {
335
+        sql_updateq('spip_auteurs', array('en_ligne' => $date), 'id_auteur=' . intval($row['id_auteur']));
336
+        $row['en_ligne'] = $date;
337
+    }
338 338
 
339
-	pipeline('trig_auth_trace', array('args' => array('row' => $row, 'date' => $date)));
339
+    pipeline('trig_auth_trace', array('args' => array('row' => $row, 'date' => $date)));
340 340
 }
341 341
 
342 342
 
@@ -362,27 +362,27 @@  discard block
 block discarded – undo
362 362
  * @return mixed
363 363
  */
364 364
 function auth_administrer($fonction, $args, $defaut = false) {
365
-	$auth_methode = array_shift($args);
366
-	$auth_methode = $auth_methode ? $auth_methode : 'spip'; // valeur par defaut au cas ou
367
-	if ($auth = charger_fonction($auth_methode, 'auth', true)
368
-		and function_exists($f = "auth_{$auth_methode}_$fonction")
369
-	) {
370
-		$res = call_user_func_array($f, $args);
371
-	} else {
372
-		$res = $defaut;
373
-	}
374
-	$res = pipeline(
375
-		'auth_administrer',
376
-		array(
377
-			'args' => array(
378
-				'fonction' => $fonction,
379
-				'methode' => $auth_methode,
380
-				'args' => $args
381
-			),
382
-			'data' => $res
383
-		)
384
-	);
385
-	return $res;
365
+    $auth_methode = array_shift($args);
366
+    $auth_methode = $auth_methode ? $auth_methode : 'spip'; // valeur par defaut au cas ou
367
+    if ($auth = charger_fonction($auth_methode, 'auth', true)
368
+        and function_exists($f = "auth_{$auth_methode}_$fonction")
369
+    ) {
370
+        $res = call_user_func_array($f, $args);
371
+    } else {
372
+        $res = $defaut;
373
+    }
374
+    $res = pipeline(
375
+        'auth_administrer',
376
+        array(
377
+            'args' => array(
378
+                'fonction' => $fonction,
379
+                'methode' => $auth_methode,
380
+                'args' => $args
381
+            ),
382
+            'data' => $res
383
+        )
384
+    );
385
+    return $res;
386 386
 }
387 387
 
388 388
 /**
@@ -392,11 +392,11 @@  discard block
 block discarded – undo
392 392
  * @return array
393 393
  */
394 394
 function auth_formulaire_login($flux) {
395
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
396
-		$flux = auth_administrer('formulaire_login', array($methode, $flux), $flux);
397
-	}
395
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
396
+        $flux = auth_administrer('formulaire_login', array($methode, $flux), $flux);
397
+    }
398 398
 
399
-	return $flux;
399
+    return $flux;
400 400
 }
401 401
 
402 402
 
@@ -410,19 +410,19 @@  discard block
 block discarded – undo
410 410
  * @return string/bool
411 411
  */
412 412
 function auth_retrouver_login($login, $serveur = '') {
413
-	if (!spip_connect($serveur)) {
414
-		include_spip('inc/minipres');
415
-		echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
416
-		exit;
417
-	}
418
-
419
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
420
-		if ($auteur = auth_administrer('retrouver_login', array($methode, $login, $serveur))) {
421
-			return $auteur;
422
-		}
423
-	}
424
-
425
-	return false;
413
+    if (!spip_connect($serveur)) {
414
+        include_spip('inc/minipres');
415
+        echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
416
+        exit;
417
+    }
418
+
419
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
420
+        if ($auteur = auth_administrer('retrouver_login', array($methode, $login, $serveur))) {
421
+            return $auteur;
422
+        }
423
+    }
424
+
425
+    return false;
426 426
 }
427 427
 
428 428
 /**
@@ -437,52 +437,52 @@  discard block
 block discarded – undo
437 437
  * @return array
438 438
  */
439 439
 function auth_informer_login($login, $serveur = '') {
440
-	if (!$login
441
-		or !$login_base = auth_retrouver_login($login, $serveur)
442
-		or !$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur)
443
-	) {
444
-
445
-		// generer de fausses infos, mais credibles, pour eviter une attaque
446
-		// https://core.spip.net/issues/1758 + https://core.spip.net/issues/3691
447
-		include_spip('inc/securiser_action');
448
-		$fauxalea1 = md5('fauxalea' . secret_du_site() . $login . floor(date('U') / 86400));
449
-		$fauxalea2 = md5('fauxalea' . secret_du_site() . $login . ceil(date('U') / 86400));
450
-
451
-		$row = array(
452
-			'login' => $login,
453
-			'cnx' => '0',
454
-			'logo' => '',
455
-			'alea_actuel' => substr_replace($fauxalea1, '.', 24, 0),
456
-			'alea_futur' => substr_replace($fauxalea2, '.', 24, 0)
457
-		);
458
-
459
-		// permettre d'autoriser l'envoi de password non crypte lorsque
460
-		// l'auteur n'est pas (encore) declare dans SPIP, par exemple pour les cas
461
-		// de premiere authentification via SPIP a une autre application.
462
-		if (defined('_AUTORISER_AUTH_FAIBLE') and _AUTORISER_AUTH_FAIBLE) {
463
-			$row['alea_actuel'] = '';
464
-			$row['alea_futur'] = '';
465
-		}
466
-
467
-		return $row;
468
-	}
469
-
470
-	$prefs = @unserialize($row['prefs']);
471
-	$infos = array(
472
-		'id_auteur' => $row['id_auteur'],
473
-		'login' => $row['login'],
474
-		'cnx' => (isset($prefs['cnx']) and $prefs['cnx'] === 'perma') ? '1' : '0',
475
-		'logo' => recuperer_fond('formulaires/inc-logo_auteur', $row),
476
-	);
477
-
478
-	// desactiver le hash md5 si pas auteur spip ?
479
-	if ($row['source'] !== 'spip') {
480
-		$row['alea_actuel'] = '';
481
-		$row['alea_futur'] = '';
482
-	}
483
-	verifier_visiteur();
484
-
485
-	return auth_administrer('informer_login', array($row['source'], $infos, $row, $serveur), $infos);
440
+    if (!$login
441
+        or !$login_base = auth_retrouver_login($login, $serveur)
442
+        or !$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur)
443
+    ) {
444
+
445
+        // generer de fausses infos, mais credibles, pour eviter une attaque
446
+        // https://core.spip.net/issues/1758 + https://core.spip.net/issues/3691
447
+        include_spip('inc/securiser_action');
448
+        $fauxalea1 = md5('fauxalea' . secret_du_site() . $login . floor(date('U') / 86400));
449
+        $fauxalea2 = md5('fauxalea' . secret_du_site() . $login . ceil(date('U') / 86400));
450
+
451
+        $row = array(
452
+            'login' => $login,
453
+            'cnx' => '0',
454
+            'logo' => '',
455
+            'alea_actuel' => substr_replace($fauxalea1, '.', 24, 0),
456
+            'alea_futur' => substr_replace($fauxalea2, '.', 24, 0)
457
+        );
458
+
459
+        // permettre d'autoriser l'envoi de password non crypte lorsque
460
+        // l'auteur n'est pas (encore) declare dans SPIP, par exemple pour les cas
461
+        // de premiere authentification via SPIP a une autre application.
462
+        if (defined('_AUTORISER_AUTH_FAIBLE') and _AUTORISER_AUTH_FAIBLE) {
463
+            $row['alea_actuel'] = '';
464
+            $row['alea_futur'] = '';
465
+        }
466
+
467
+        return $row;
468
+    }
469
+
470
+    $prefs = @unserialize($row['prefs']);
471
+    $infos = array(
472
+        'id_auteur' => $row['id_auteur'],
473
+        'login' => $row['login'],
474
+        'cnx' => (isset($prefs['cnx']) and $prefs['cnx'] === 'perma') ? '1' : '0',
475
+        'logo' => recuperer_fond('formulaires/inc-logo_auteur', $row),
476
+    );
477
+
478
+    // desactiver le hash md5 si pas auteur spip ?
479
+    if ($row['source'] !== 'spip') {
480
+        $row['alea_actuel'] = '';
481
+        $row['alea_futur'] = '';
482
+    }
483
+    verifier_visiteur();
484
+
485
+    return auth_administrer('informer_login', array($row['source'], $infos, $row, $serveur), $infos);
486 486
 }
487 487
 
488 488
 
@@ -496,21 +496,21 @@  discard block
 block discarded – undo
496 496
  * @return mixed
497 497
  */
498 498
 function auth_identifier_login($login, $password, $serveur = '') {
499
-	$erreur = '';
500
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
501
-		if ($auth = charger_fonction($methode, 'auth', true)) {
502
-			$auteur = $auth($login, $password, $serveur);
503
-			if (is_array($auteur) and count($auteur)) {
504
-				spip_log("connexion de $login par methode $methode");
505
-				$auteur['auth'] = $methode;
506
-				return $auteur;
507
-			} elseif (is_string($auteur)) {
508
-				$erreur .= "$auteur ";
509
-			}
510
-		}
511
-	}
512
-
513
-	return $erreur;
499
+    $erreur = '';
500
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
501
+        if ($auth = charger_fonction($methode, 'auth', true)) {
502
+            $auteur = $auth($login, $password, $serveur);
503
+            if (is_array($auteur) and count($auteur)) {
504
+                spip_log("connexion de $login par methode $methode");
505
+                $auteur['auth'] = $methode;
506
+                return $auteur;
507
+            } elseif (is_string($auteur)) {
508
+                $erreur .= "$auteur ";
509
+            }
510
+        }
511
+    }
512
+
513
+    return $erreur;
514 514
 }
515 515
 
516 516
 /**
@@ -524,8 +524,8 @@  discard block
 block discarded – undo
524 524
  * @return string
525 525
  */
526 526
 function auth_url_retour_login($auth_methode, $login, $redirect = '', $serveur = '') {
527
-	$securiser_action = charger_fonction('securiser_action', 'inc');
528
-	return $securiser_action('auth', "$auth_methode/$login", $redirect, true);
527
+    $securiser_action = charger_fonction('securiser_action', 'inc');
528
+    return $securiser_action('auth', "$auth_methode/$login", $redirect, true);
529 529
 }
530 530
 
531 531
 /**
@@ -539,9 +539,9 @@  discard block
 block discarded – undo
539 539
  * @return mixed
540 540
  */
541 541
 function auth_terminer_identifier_login($auth_methode, $login, $serveur = '') {
542
-	$args = func_get_args();
543
-	$auteur = auth_administrer('terminer_identifier_login', $args);
544
-	return $auteur;
542
+    $args = func_get_args();
543
+    $auteur = auth_administrer('terminer_identifier_login', $args);
544
+    return $auteur;
545 545
 }
546 546
 
547 547
 /**
@@ -551,29 +551,29 @@  discard block
 block discarded – undo
551 551
  * @return bool
552 552
  */
553 553
 function auth_loger($auteur) {
554
-	if (!is_array($auteur) or !count($auteur)) {
555
-		return false;
556
-	}
557
-
558
-	// initialiser et poser le cookie de session
559
-	unset($_COOKIE['spip_session']);
560
-	if (auth_init_droits($auteur) === false) {
561
-		return false;
562
-	}
563
-
564
-	// initialiser les prefs
565
-	$p = $GLOBALS['visiteur_session']['prefs'];
566
-	$p['cnx'] = (isset($auteur['cookie']) and $auteur['cookie'] == 'oui') ? 'perma' : '';
567
-
568
-	sql_updateq(
569
-		'spip_auteurs',
570
-		array('prefs' => serialize($p)),
571
-		'id_auteur=' . intval($auteur['id_auteur'])
572
-	);
573
-
574
-	//  bloquer ici le visiteur qui tente d'abuser de ses droits
575
-	verifier_visiteur();
576
-	return true;
554
+    if (!is_array($auteur) or !count($auteur)) {
555
+        return false;
556
+    }
557
+
558
+    // initialiser et poser le cookie de session
559
+    unset($_COOKIE['spip_session']);
560
+    if (auth_init_droits($auteur) === false) {
561
+        return false;
562
+    }
563
+
564
+    // initialiser les prefs
565
+    $p = $GLOBALS['visiteur_session']['prefs'];
566
+    $p['cnx'] = (isset($auteur['cookie']) and $auteur['cookie'] == 'oui') ? 'perma' : '';
567
+
568
+    sql_updateq(
569
+        'spip_auteurs',
570
+        array('prefs' => serialize($p)),
571
+        'id_auteur=' . intval($auteur['id_auteur'])
572
+    );
573
+
574
+    //  bloquer ici le visiteur qui tente d'abuser de ses droits
575
+    verifier_visiteur();
576
+    return true;
577 577
 }
578 578
 
579 579
 /**
@@ -583,8 +583,8 @@  discard block
 block discarded – undo
583 583
  * return void
584 584
  **/
585 585
 function auth_deloger() {
586
-	$logout = charger_fonction('logout', 'action');
587
-	$logout();
586
+    $logout = charger_fonction('logout', 'action');
587
+    $logout();
588 588
 }
589 589
 
590 590
 /**
@@ -598,8 +598,8 @@  discard block
 block discarded – undo
598 598
  * @return bool
599 599
  */
600 600
 function auth_autoriser_modifier_login($auth_methode, $serveur = '') {
601
-	$args = func_get_args();
602
-	return auth_administrer('autoriser_modifier_login', $args);
601
+    $args = func_get_args();
602
+    return auth_administrer('autoriser_modifier_login', $args);
603 603
 }
604 604
 
605 605
 /**
@@ -614,8 +614,8 @@  discard block
 block discarded – undo
614 614
  *  message d'erreur ou chaine vide si pas d'erreur
615 615
  */
616 616
 function auth_verifier_login($auth_methode, $new_login, $id_auteur = 0, $serveur = '') {
617
-	$args = func_get_args();
618
-	return auth_administrer('verifier_login', $args, '');
617
+    $args = func_get_args();
618
+    return auth_administrer('verifier_login', $args, '');
619 619
 }
620 620
 
621 621
 /**
@@ -628,8 +628,8 @@  discard block
 block discarded – undo
628 628
  * @return bool
629 629
  */
630 630
 function auth_modifier_login($auth_methode, $new_login, $id_auteur, $serveur = '') {
631
-	$args = func_get_args();
632
-	return auth_administrer('modifier_login', $args);
631
+    $args = func_get_args();
632
+    return auth_administrer('modifier_login', $args);
633 633
 }
634 634
 
635 635
 /**
@@ -644,8 +644,8 @@  discard block
 block discarded – undo
644 644
  *  succès ou échec
645 645
  */
646 646
 function auth_autoriser_modifier_pass($auth_methode, $serveur = '') {
647
-	$args = func_get_args();
648
-	return auth_administrer('autoriser_modifier_pass', $args);
647
+    $args = func_get_args();
648
+    return auth_administrer('autoriser_modifier_pass', $args);
649 649
 }
650 650
 
651 651
 /**
@@ -661,8 +661,8 @@  discard block
 block discarded – undo
661 661
  *  message d'erreur ou chaine vide si pas d'erreur
662 662
  */
663 663
 function auth_verifier_pass($auth_methode, $login, $new_pass, $id_auteur = 0, $serveur = '') {
664
-	$args = func_get_args();
665
-	return auth_administrer('verifier_pass', $args, '');
664
+    $args = func_get_args();
665
+    return auth_administrer('verifier_pass', $args, '');
666 666
 }
667 667
 
668 668
 /**
@@ -678,8 +678,8 @@  discard block
 block discarded – undo
678 678
  *  succes ou echec
679 679
  */
680 680
 function auth_modifier_pass($auth_methode, $login, $new_pass, $id_auteur, $serveur = '') {
681
-	$args = func_get_args();
682
-	return auth_administrer('modifier_pass', $args);
681
+    $args = func_get_args();
682
+    return auth_administrer('modifier_pass', $args);
683 683
 }
684 684
 
685 685
 /**
@@ -695,24 +695,24 @@  discard block
 block discarded – undo
695 695
  * @return void
696 696
  */
697 697
 function auth_synchroniser_distant(
698
-	$auth_methode = true,
699
-	$id_auteur = 0,
700
-	$champs = array(),
701
-	$options = array(),
702
-	$serveur = ''
698
+    $auth_methode = true,
699
+    $id_auteur = 0,
700
+    $champs = array(),
701
+    $options = array(),
702
+    $serveur = ''
703 703
 ) {
704
-	$args = func_get_args();
705
-	if ($auth_methode === true or (isset($options['all']) and $options['all'] == true)) {
706
-		$options['all'] = true; // ajouter une option all=>true pour chaque auth
707
-		$args = array(true, $id_auteur, $champs, $options, $serveur);
708
-		foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
709
-			array_shift($args);
710
-			array_unshift($args, $methode);
711
-			auth_administrer('synchroniser_distant', $args);
712
-		}
713
-	} else {
714
-		auth_administrer('synchroniser_distant', $args);
715
-	}
704
+    $args = func_get_args();
705
+    if ($auth_methode === true or (isset($options['all']) and $options['all'] == true)) {
706
+        $options['all'] = true; // ajouter une option all=>true pour chaque auth
707
+        $args = array(true, $id_auteur, $champs, $options, $serveur);
708
+        foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
709
+            array_shift($args);
710
+            array_unshift($args, $methode);
711
+            auth_administrer('synchroniser_distant', $args);
712
+        }
713
+    } else {
714
+        auth_administrer('synchroniser_distant', $args);
715
+    }
716 716
 }
717 717
 
718 718
 
@@ -725,42 +725,42 @@  discard block
 block discarded – undo
725 725
  * @return array|bool
726 726
  */
727 727
 function lire_php_auth($login, $pw, $serveur = '') {
728
-	if (
729
-		!$login
730
-		or !$login = auth_retrouver_login($login, $serveur)
731
-	) {
732
-		return false;
733
-	}
734
-
735
-	$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login, $serveur, 'text'), '', '', '', '', $serveur);
736
-
737
-	if (!$row) {
738
-		if (spip_connect_ldap($serveur)
739
-			and $auth_ldap = charger_fonction('ldap', 'auth', true)
740
-		) {
741
-			return $auth_ldap($login, $pw, $serveur, true);
742
-		}
743
-
744
-		return false;
745
-	}
746
-	// su pas de source definie
747
-	// ou auth/xxx introuvable, utiliser 'spip'
748
-	if (!$auth_methode = $row['source']
749
-		or !$auth = charger_fonction($auth_methode, 'auth', true)
750
-	) {
751
-		$auth = charger_fonction('spip', 'auth', true);
752
-	}
753
-
754
-	$auteur = '';
755
-	if ($auth) {
756
-		$auteur = $auth($login, $pw, $serveur, true);
757
-	}
758
-	// verifier que ce n'est pas un message d'erreur
759
-	if (is_array($auteur) and count($auteur)) {
760
-		return $auteur;
761
-	}
762
-
763
-	return false;
728
+    if (
729
+        !$login
730
+        or !$login = auth_retrouver_login($login, $serveur)
731
+    ) {
732
+        return false;
733
+    }
734
+
735
+    $row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login, $serveur, 'text'), '', '', '', '', $serveur);
736
+
737
+    if (!$row) {
738
+        if (spip_connect_ldap($serveur)
739
+            and $auth_ldap = charger_fonction('ldap', 'auth', true)
740
+        ) {
741
+            return $auth_ldap($login, $pw, $serveur, true);
742
+        }
743
+
744
+        return false;
745
+    }
746
+    // su pas de source definie
747
+    // ou auth/xxx introuvable, utiliser 'spip'
748
+    if (!$auth_methode = $row['source']
749
+        or !$auth = charger_fonction($auth_methode, 'auth', true)
750
+    ) {
751
+        $auth = charger_fonction('spip', 'auth', true);
752
+    }
753
+
754
+    $auteur = '';
755
+    if ($auth) {
756
+        $auteur = $auth($login, $pw, $serveur, true);
757
+    }
758
+    // verifier que ce n'est pas un message d'erreur
759
+    if (is_array($auteur) and count($auteur)) {
760
+        return $auteur;
761
+    }
762
+
763
+    return false;
764 764
 }
765 765
 
766 766
 /**
@@ -776,21 +776,21 @@  discard block
 block discarded – undo
776 776
  * @param string $lien
777 777
  */
778 778
 function ask_php_auth($pb, $raison, $retour = '', $url = '', $re = '', $lien = '') {
779
-	@Header('WWW-Authenticate: Basic realm="espace prive"');
780
-	@Header('HTTP/1.0 401 Unauthorized');
781
-	$corps = '';
782
-	$public = generer_url_public();
783
-	$ecrire = generer_url_ecrire();
784
-	$retour = $retour ? $retour : _T('icone_retour');
785
-	$corps .= "<p>$raison</p>[<a href='$public'>$retour</a>] ";
786
-	if ($url) {
787
-		$corps .= "[<a href='" . generer_url_action('cookie', "essai_auth_http=oui&$url") . "'>$re</a>]";
788
-	}
789
-
790
-	if ($lien) {
791
-		$corps .= " [<a href='$ecrire'>" . _T('login_espace_prive') . '</a>]';
792
-	}
793
-	include_spip('inc/minipres');
794
-	echo minipres($pb, $corps);
795
-	exit;
779
+    @Header('WWW-Authenticate: Basic realm="espace prive"');
780
+    @Header('HTTP/1.0 401 Unauthorized');
781
+    $corps = '';
782
+    $public = generer_url_public();
783
+    $ecrire = generer_url_ecrire();
784
+    $retour = $retour ? $retour : _T('icone_retour');
785
+    $corps .= "<p>$raison</p>[<a href='$public'>$retour</a>] ";
786
+    if ($url) {
787
+        $corps .= "[<a href='" . generer_url_action('cookie', "essai_auth_http=oui&$url") . "'>$re</a>]";
788
+    }
789
+
790
+    if ($lien) {
791
+        $corps .= " [<a href='$ecrire'>" . _T('login_espace_prive') . '</a>]';
792
+    }
793
+    include_spip('inc/minipres');
794
+    echo minipres($pb, $corps);
795
+    exit;
796 796
 }
Please login to merge, or discard this patch.
ecrire/inc/couleurs.php 1 patch
Indentation   +63 added lines, -63 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
 /**
@@ -38,70 +38,70 @@  discard block
 block discarded – undo
38 38
  * @return array|string
39 39
  */
40 40
 function inc_couleurs_dist($choix = null, $ajouter = false) {
41
-	static $couleurs_spip = array(
42
-		// Violet soutenu
43
-		9 => ["couleur_theme" => "#9a6ef2"],
44
-		// Violet rosé
45
-		4 => ["couleur_theme" => "#c464cb"],
46
-		// Rose interface SPIP
47
-		2 => ["couleur_theme" =>  "#F02364"],
48
-		// Rouge
49
-		8 => ["couleur_theme" => "#ff4524"],
50
-		// Orange
51
-		3 => ["couleur_theme" => "#c97500"],
52
-		// Vert SPIP
53
-		1 => ["couleur_theme" => "#9dba00"],
54
-		// Vert Troglo
55
-		7 => ["couleur_theme" => "#419a2c"],
56
-		// Bleu-vert
57
-		12 => ["couleur_theme" => "#269681"],
58
-		//  Bleu pastel
59
-		5 => ["couleur_theme" => "#3190ae"],
60
-		//  Bleu Kermesse
61
-		11 => ["couleur_theme" => "#288bdd"],
62
-		//  Gris bleuté
63
-		6 => ["couleur_theme" => "#7d90a2"],
64
-		//  Gris
65
-		10 => ["couleur_theme" => "#909090"],
66
-	);
41
+    static $couleurs_spip = array(
42
+        // Violet soutenu
43
+        9 => ["couleur_theme" => "#9a6ef2"],
44
+        // Violet rosé
45
+        4 => ["couleur_theme" => "#c464cb"],
46
+        // Rose interface SPIP
47
+        2 => ["couleur_theme" =>  "#F02364"],
48
+        // Rouge
49
+        8 => ["couleur_theme" => "#ff4524"],
50
+        // Orange
51
+        3 => ["couleur_theme" => "#c97500"],
52
+        // Vert SPIP
53
+        1 => ["couleur_theme" => "#9dba00"],
54
+        // Vert Troglo
55
+        7 => ["couleur_theme" => "#419a2c"],
56
+        // Bleu-vert
57
+        12 => ["couleur_theme" => "#269681"],
58
+        //  Bleu pastel
59
+        5 => ["couleur_theme" => "#3190ae"],
60
+        //  Bleu Kermesse
61
+        11 => ["couleur_theme" => "#288bdd"],
62
+        //  Gris bleuté
63
+        6 => ["couleur_theme" => "#7d90a2"],
64
+        //  Gris
65
+        10 => ["couleur_theme" => "#909090"],
66
+    );
67 67
 
68
-	if (is_numeric($choix)) {
69
-		$c = $couleurs_spip[$choix];
70
-		// compat < SPIP 3.3
71
-		include_spip('inc/filtres_images_mini');
72
-		$c["couleur_foncee"] = $c["couleur_theme"];
73
-		$c["couleur_claire"] = '#' . couleur_eclaircir($c["couleur_theme"], .5);
68
+    if (is_numeric($choix)) {
69
+        $c = $couleurs_spip[$choix];
70
+        // compat < SPIP 3.3
71
+        include_spip('inc/filtres_images_mini');
72
+        $c["couleur_foncee"] = $c["couleur_theme"];
73
+        $c["couleur_claire"] = '#' . couleur_eclaircir($c["couleur_theme"], .5);
74 74
 
75
-		return
76
-			'couleur_theme=' . substr($c['couleur_theme'], 1)
77
-			// compat < SPIP 3.3
78
-			. '&couleur_claire=' . substr($c['couleur_claire'], 1)
79
-			. '&couleur_foncee=' . substr($c['couleur_foncee'], 1);
80
-	} else {
81
-		if (is_array($choix)) {
82
-			// compat < SPIP 3.3
83
-			$compat_spip_33 = function($c) {
84
-				if (!isset($c["couleur_theme"])) {
85
-					$c["couleur_theme"] = $c["couleur_foncee"];
86
-					unset($c["couleur_foncee"]);
87
-					unset($c["couleur_claire"]);
88
-					unset($c["couleur_lien"]);
89
-					unset($c["couleur_lien_off"]);
90
-				}
91
-				return $c;
92
-			};
93
-			if ($ajouter) {
94
-				foreach ($choix as $c) {
95
-					$couleurs_spip[] = $compat_spip_33($c);
96
-				}
75
+        return
76
+            'couleur_theme=' . substr($c['couleur_theme'], 1)
77
+            // compat < SPIP 3.3
78
+            . '&couleur_claire=' . substr($c['couleur_claire'], 1)
79
+            . '&couleur_foncee=' . substr($c['couleur_foncee'], 1);
80
+    } else {
81
+        if (is_array($choix)) {
82
+            // compat < SPIP 3.3
83
+            $compat_spip_33 = function($c) {
84
+                if (!isset($c["couleur_theme"])) {
85
+                    $c["couleur_theme"] = $c["couleur_foncee"];
86
+                    unset($c["couleur_foncee"]);
87
+                    unset($c["couleur_claire"]);
88
+                    unset($c["couleur_lien"]);
89
+                    unset($c["couleur_lien_off"]);
90
+                }
91
+                return $c;
92
+            };
93
+            if ($ajouter) {
94
+                foreach ($choix as $c) {
95
+                    $couleurs_spip[] = $compat_spip_33($c);
96
+                }
97 97
 
98
-				return $couleurs_spip;
99
-			} else {
100
-				$choix = array_map($compat_spip_33, $choix);
101
-				return $couleurs_spip = $choix;
102
-			}
103
-		}
104
-	}
98
+                return $couleurs_spip;
99
+            } else {
100
+                $choix = array_map($compat_spip_33, $choix);
101
+                return $couleurs_spip = $choix;
102
+            }
103
+        }
104
+    }
105 105
 
106
-	return $couleurs_spip;
106
+    return $couleurs_spip;
107 107
 }
Please login to merge, or discard this patch.