Completed
Push — master ( c6389c...b0e666 )
by cam
04:31
created
prive/formulaires/editer_auteur.php 1 patch
Indentation   +326 added lines, -326 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  **/
8 8
 
9 9
 if (!defined('_ECRIRE_INC_VERSION')) {
10
-	return;
10
+    return;
11 11
 }
12 12
 
13 13
 include_spip('inc/actions');
@@ -37,21 +37,21 @@  discard block
 block discarded – undo
37 37
  *     Environnement du formulaire
38 38
  **/
39 39
 function formulaires_editer_auteur_charger_dist(
40
-	$id_auteur = 'new',
41
-	$retour = '',
42
-	$associer_objet = '',
43
-	$config_fonc = 'auteurs_edit_config',
44
-	$row = array(),
45
-	$hidden = ''
40
+    $id_auteur = 'new',
41
+    $retour = '',
42
+    $associer_objet = '',
43
+    $config_fonc = 'auteurs_edit_config',
44
+    $row = array(),
45
+    $hidden = ''
46 46
 ) {
47
-	$valeurs = formulaires_editer_objet_charger('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
48
-	$valeurs['new_login'] = $valeurs['login'];
47
+    $valeurs = formulaires_editer_objet_charger('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
48
+    $valeurs['new_login'] = $valeurs['login'];
49 49
 
50
-	if (!autoriser('modifier', 'auteur', intval($id_auteur))) {
51
-		$valeurs['editable'] = '';
52
-	}
50
+    if (!autoriser('modifier', 'auteur', intval($id_auteur))) {
51
+        $valeurs['editable'] = '';
52
+    }
53 53
 
54
-	return $valeurs;
54
+    return $valeurs;
55 55
 }
56 56
 
57 57
 /**
@@ -75,14 +75,14 @@  discard block
 block discarded – undo
75 75
  *     Hash du formulaire
76 76
  */
77 77
 function formulaires_editer_auteur_identifier_dist(
78
-	$id_auteur = 'new',
79
-	$retour = '',
80
-	$associer_objet = '',
81
-	$config_fonc = 'auteurs_edit_config',
82
-	$row = array(),
83
-	$hidden = ''
78
+    $id_auteur = 'new',
79
+    $retour = '',
80
+    $associer_objet = '',
81
+    $config_fonc = 'auteurs_edit_config',
82
+    $row = array(),
83
+    $hidden = ''
84 84
 ) {
85
-	return serialize(array(intval($id_auteur), $associer_objet));
85
+    return serialize(array(intval($id_auteur), $associer_objet));
86 86
 }
87 87
 
88 88
 
@@ -95,29 +95,29 @@  discard block
 block discarded – undo
95 95
  *     Configuration pour le formulaire
96 96
  */
97 97
 function auteurs_edit_config($row) {
98
-	global $spip_lang;
99
-
100
-	$config = $GLOBALS['meta'];
101
-	$config['lignes'] = 8;
102
-	$config['langue'] = $spip_lang;
103
-
104
-	// pour instituer_auteur
105
-	$config['auteur'] = $row;
106
-
107
-	//$config['restreint'] = ($row['statut'] == 'publie');
108
-	$auth_methode = $row['source'];
109
-	include_spip('inc/auth');
110
-	$config['edit_login'] =
111
-		(auth_autoriser_modifier_login($auth_methode)
112
-			and autoriser('modifier', 'auteur', $row['id_auteur'], null, array('login' => true))
113
-			// legacy : ne pas risquer d'autoriser la modif login si fonction d'autorisation pas mise a jour et ne teste que l'option email
114
-			and autoriser('modifier', 'auteur', $row['id_auteur'], null, array('email' => true))
115
-		);
116
-	$config['edit_pass'] =
117
-		(auth_autoriser_modifier_pass($auth_methode)
118
-			and autoriser('modifier', 'auteur', $row['id_auteur']));
119
-
120
-	return $config;
98
+    global $spip_lang;
99
+
100
+    $config = $GLOBALS['meta'];
101
+    $config['lignes'] = 8;
102
+    $config['langue'] = $spip_lang;
103
+
104
+    // pour instituer_auteur
105
+    $config['auteur'] = $row;
106
+
107
+    //$config['restreint'] = ($row['statut'] == 'publie');
108
+    $auth_methode = $row['source'];
109
+    include_spip('inc/auth');
110
+    $config['edit_login'] =
111
+        (auth_autoriser_modifier_login($auth_methode)
112
+            and autoriser('modifier', 'auteur', $row['id_auteur'], null, array('login' => true))
113
+            // legacy : ne pas risquer d'autoriser la modif login si fonction d'autorisation pas mise a jour et ne teste que l'option email
114
+            and autoriser('modifier', 'auteur', $row['id_auteur'], null, array('email' => true))
115
+        );
116
+    $config['edit_pass'] =
117
+        (auth_autoriser_modifier_pass($auth_methode)
118
+            and autoriser('modifier', 'auteur', $row['id_auteur']));
119
+
120
+    return $config;
121 121
 }
122 122
 
123 123
 /**
@@ -147,132 +147,132 @@  discard block
 block discarded – undo
147 147
  *     Erreurs des saisies
148 148
  **/
149 149
 function formulaires_editer_auteur_verifier_dist(
150
-	$id_auteur = 'new',
151
-	$retour = '',
152
-	$associer_objet = '',
153
-	$config_fonc = 'auteurs_edit_config',
154
-	$row = array(),
155
-	$hidden = ''
150
+    $id_auteur = 'new',
151
+    $retour = '',
152
+    $associer_objet = '',
153
+    $config_fonc = 'auteurs_edit_config',
154
+    $row = array(),
155
+    $hidden = ''
156 156
 ) {
157
-	// auto-renseigner le nom si il n'existe pas, sans couper
158
-	titre_automatique('nom', array('email', 'login'), 255);
159
-
160
-	$oblis = array('nom');
161
-	// si on veut renvoyer des identifiants il faut un email et un login
162
-	if (_request('reset_password')) {
163
-		$oblis[] = 'email';
164
-		$oblis[] = 'new_login';
165
-	}
166
-	// mais il reste obligatoire si on a rien trouve
167
-	$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
168
-	if (isset($erreurs['new_login'])) {
169
-		$erreurs['login'] = $erreurs['new_login'];
170
-		unset($erreurs['new_login']);
171
-	}
172
-
173
-	$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
174
-	$auth_methode = ($auth_methode ? $auth_methode : 'spip');
175
-	include_spip('inc/auth');
176
-
177
-	if (!nom_acceptable(_request('nom'))) {
178
-		$erreurs['nom'] = _T('info_nom_pas_conforme');
179
-	}
180
-
181
-	if ($email = _request('email')) {
182
-		include_spip('inc/filtres');
183
-		include_spip('inc/autoriser');
184
-		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
185
-		if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))
186
-			and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
187
-			and !strlen(trim($email))
188
-			and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
189
-		) {
190
-			$erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
191
-		} else {
192
-			if (!email_valide($email)) {
193
-				$erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
194
-			}
195
-		}
196
-		# Ne pas autoriser d'avoir deux auteurs avec le même email
197
-		# cette fonctionalité nécessite que la base soit clean à l'activation : pas de
198
-		# doublon sur la requête select email,count(*) from spip_auteurs group by email ;
199
-		if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
200
-			#Nouvel auteur
201
-			if (intval($id_auteur) == 0) {
202
-				#Un auteur existe deja avec cette adresse ?
203
-				if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
204
-					$erreurs['email'] = _T('erreur_email_deja_existant');
205
-				}
206
-			} else {
207
-				#Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
208
-				if ((sql_countsel(
209
-					'spip_auteurs',
210
-					'email=' . sql_quote($email)
211
-				) > 0) and ($id_auteur != ($id_auteur_ancien = sql_getfetsel(
212
-					'id_auteur',
213
-					'spip_auteurs',
214
-					'email=' . sql_quote($email)
215
-				)))) {
216
-					$erreurs['email'] = _T('erreur_email_deja_existant');
217
-				}
218
-			}
219
-		}
220
-	}
221
-
222
-	// quand c'est un auteur existant on fait le reset password ici
223
-	if (!count($erreurs) and _request('reset_password') and intval($id_auteur)) {
224
-		$erreurs = auteur_reset_password($id_auteur, $erreurs);
225
-		return $erreurs;
226
-	}
227
-
228
-	// corriger un cas si frequent : www.example.org sans le http:// qui precede
229
-	if ($url = _request('url_site') and !tester_url_absolue($url)) {
230
-		if (strpos($url, ':') === false and strncasecmp($url, 'www.', 4) === 0) {
231
-			$url = 'http://' . $url;
232
-			set_request('url_site', $url);
233
-		}
234
-	}
235
-	// traiter les liens implicites avant de tester l'url
236
-	include_spip('inc/lien');
237
-	if ($url = calculer_url(_request('url_site')) and !tester_url_absolue($url)) {
238
-		$erreurs['url_site'] = _T('info_url_site_pas_conforme');
239
-	}
240
-
241
-	$erreurs['message_erreur'] = '';
242
-	if (
243
-		$login = _request('login') and
244
-		$login !== sql_getfetsel('login','spip_auteurs', 'id_auteur='.intval($id_auteur))
245
-	) {
246
-		// on verifie la meme chose que dans auteurs_edit_config()
247
-		if ( ! auth_autoriser_modifier_login($auth_methode)
248
-			or !autoriser('modifier', 'auteur', intval($id_auteur), null, array('email' => true))){
249
-			$erreurs['login'] = _T('info_non_modifiable');
250
-		}
251
-	}
252
-
253
-	if (empty($erreurs['login'])) {
254
-		if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
255
-			$erreurs['login'] = $err;
256
-			$erreurs['message_erreur'] .= $err;
257
-		} else {
258
-			// pass trop court ou confirmation non identique
259
-			if ($p = _request('new_pass')) {
260
-				if ($p != _request('new_pass2')) {
261
-					$erreurs['new_pass'] = _T('info_passes_identiques');
262
-					$erreurs['message_erreur'] .= _T('info_passes_identiques');
263
-				} elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
264
-					$erreurs['new_pass'] = $err;
265
-					$erreurs['message_erreur'] .= $err;
266
-				}
267
-			}
268
-		}
269
-	}
270
-
271
-	if (!$erreurs['message_erreur']) {
272
-		unset($erreurs['message_erreur']);
273
-	}
274
-
275
-	return $erreurs;
157
+    // auto-renseigner le nom si il n'existe pas, sans couper
158
+    titre_automatique('nom', array('email', 'login'), 255);
159
+
160
+    $oblis = array('nom');
161
+    // si on veut renvoyer des identifiants il faut un email et un login
162
+    if (_request('reset_password')) {
163
+        $oblis[] = 'email';
164
+        $oblis[] = 'new_login';
165
+    }
166
+    // mais il reste obligatoire si on a rien trouve
167
+    $erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
168
+    if (isset($erreurs['new_login'])) {
169
+        $erreurs['login'] = $erreurs['new_login'];
170
+        unset($erreurs['new_login']);
171
+    }
172
+
173
+    $auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
174
+    $auth_methode = ($auth_methode ? $auth_methode : 'spip');
175
+    include_spip('inc/auth');
176
+
177
+    if (!nom_acceptable(_request('nom'))) {
178
+        $erreurs['nom'] = _T('info_nom_pas_conforme');
179
+    }
180
+
181
+    if ($email = _request('email')) {
182
+        include_spip('inc/filtres');
183
+        include_spip('inc/autoriser');
184
+        // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
185
+        if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))
186
+            and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
187
+            and !strlen(trim($email))
188
+            and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
189
+        ) {
190
+            $erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
191
+        } else {
192
+            if (!email_valide($email)) {
193
+                $erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
194
+            }
195
+        }
196
+        # Ne pas autoriser d'avoir deux auteurs avec le même email
197
+        # cette fonctionalité nécessite que la base soit clean à l'activation : pas de
198
+        # doublon sur la requête select email,count(*) from spip_auteurs group by email ;
199
+        if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
200
+            #Nouvel auteur
201
+            if (intval($id_auteur) == 0) {
202
+                #Un auteur existe deja avec cette adresse ?
203
+                if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
204
+                    $erreurs['email'] = _T('erreur_email_deja_existant');
205
+                }
206
+            } else {
207
+                #Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
208
+                if ((sql_countsel(
209
+                    'spip_auteurs',
210
+                    'email=' . sql_quote($email)
211
+                ) > 0) and ($id_auteur != ($id_auteur_ancien = sql_getfetsel(
212
+                    'id_auteur',
213
+                    'spip_auteurs',
214
+                    'email=' . sql_quote($email)
215
+                )))) {
216
+                    $erreurs['email'] = _T('erreur_email_deja_existant');
217
+                }
218
+            }
219
+        }
220
+    }
221
+
222
+    // quand c'est un auteur existant on fait le reset password ici
223
+    if (!count($erreurs) and _request('reset_password') and intval($id_auteur)) {
224
+        $erreurs = auteur_reset_password($id_auteur, $erreurs);
225
+        return $erreurs;
226
+    }
227
+
228
+    // corriger un cas si frequent : www.example.org sans le http:// qui precede
229
+    if ($url = _request('url_site') and !tester_url_absolue($url)) {
230
+        if (strpos($url, ':') === false and strncasecmp($url, 'www.', 4) === 0) {
231
+            $url = 'http://' . $url;
232
+            set_request('url_site', $url);
233
+        }
234
+    }
235
+    // traiter les liens implicites avant de tester l'url
236
+    include_spip('inc/lien');
237
+    if ($url = calculer_url(_request('url_site')) and !tester_url_absolue($url)) {
238
+        $erreurs['url_site'] = _T('info_url_site_pas_conforme');
239
+    }
240
+
241
+    $erreurs['message_erreur'] = '';
242
+    if (
243
+        $login = _request('login') and
244
+        $login !== sql_getfetsel('login','spip_auteurs', 'id_auteur='.intval($id_auteur))
245
+    ) {
246
+        // on verifie la meme chose que dans auteurs_edit_config()
247
+        if ( ! auth_autoriser_modifier_login($auth_methode)
248
+            or !autoriser('modifier', 'auteur', intval($id_auteur), null, array('email' => true))){
249
+            $erreurs['login'] = _T('info_non_modifiable');
250
+        }
251
+    }
252
+
253
+    if (empty($erreurs['login'])) {
254
+        if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
255
+            $erreurs['login'] = $err;
256
+            $erreurs['message_erreur'] .= $err;
257
+        } else {
258
+            // pass trop court ou confirmation non identique
259
+            if ($p = _request('new_pass')) {
260
+                if ($p != _request('new_pass2')) {
261
+                    $erreurs['new_pass'] = _T('info_passes_identiques');
262
+                    $erreurs['message_erreur'] .= _T('info_passes_identiques');
263
+                } elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
264
+                    $erreurs['new_pass'] = $err;
265
+                    $erreurs['message_erreur'] .= $err;
266
+                }
267
+            }
268
+        }
269
+    }
270
+
271
+    if (!$erreurs['message_erreur']) {
272
+        unset($erreurs['message_erreur']);
273
+    }
274
+
275
+    return $erreurs;
276 276
 }
277 277
 
278 278
 
@@ -309,121 +309,121 @@  discard block
 block discarded – undo
309 309
  *     Retour des traitements
310 310
  **/
311 311
 function formulaires_editer_auteur_traiter_dist(
312
-	$id_auteur = 'new',
313
-	$retour = '',
314
-	$associer_objet = '',
315
-	$config_fonc = 'auteurs_edit_config',
316
-	$row = array(),
317
-	$hidden = ''
312
+    $id_auteur = 'new',
313
+    $retour = '',
314
+    $associer_objet = '',
315
+    $config_fonc = 'auteurs_edit_config',
316
+    $row = array(),
317
+    $hidden = ''
318 318
 ) {
319
-	if (_request('saisie_webmestre') or _request('webmestre')) {
320
-		set_request('webmestre', _request('webmestre') ? _request('webmestre') : 'non');
321
-	}
322
-	$retour = parametre_url($retour, 'email_confirm', '');
323
-
324
-	if ($restreintes = _request('restreintes')) {
325
-		foreach ($restreintes as $k => $v) {
326
-			if(strpos($v, 'rubrique|') === 0) {
327
-				$restreintes[$k] = substr($v, 9);
328
-			}
329
-		}
330
-		set_request('restreintes', $restreintes);
331
-	}
332
-
333
-	set_request(
334
-		'email',
335
-		email_valide(_request('email'))
336
-	); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
337
-	// "[email protected]  " ou encore "Marie Toto <[email protected]>"
338
-
339
-	include_spip('inc/autoriser');
340
-	if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))) {
341
-		$email_nouveau = _request('email');
342
-		set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
343
-		// mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
344
-		// pour qu'il confirme qu'il possede bien cette adresse
345
-		// son clic sur l'url du message permettre de confirmer le changement
346
-		// et de revenir sur son profil
347
-		if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
348
-			and $email_nouveau !=
349
-				($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
350
-		) {
351
-			$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
352
-			$texte = _T(
353
-				'form_auteur_mail_confirmation',
354
-				array(
355
-					'url' => generer_action_auteur(
356
-						'confirmer_email',
357
-						$email_nouveau,
358
-						parametre_url($retour, 'email_modif', 'ok')
359
-					)
360
-				)
361
-			);
362
-			$envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
363
-			set_request('email_confirm', $email_nouveau);
364
-			if ($email_ancien) {
365
-				$envoyer_mail($email_ancien, _T('form_auteur_confirmation'),
366
-					_T('form_auteur_envoi_mail_confirmation', array('email' => $email_nouveau)));
367
-			}
368
-			$retour = parametre_url($retour, 'email_confirm', $email_nouveau);
369
-		}
370
-	}
371
-
372
-	$res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
373
-
374
-	if (_request('reset_password') and !intval($id_auteur) and intval($res['id_auteur'])) {
375
-		$erreurs = array();
376
-		$erreurs = auteur_reset_password($res['id_auteur'], $erreurs);
377
-		if (isset($erreurs['message_ok'])) {
378
-			if (!isset($res['message_ok'])) $res['message_ok'] = '';
379
-			$res['message_ok'] = trim($res['message_ok'] . ' ' . $erreurs['message_ok']);
380
-		}
381
-		if (isset($erreurs['message_erreur']) and $erreurs['message_erreur']) {
382
-			if (!isset($res['message_erreur'])) $res['message_erreur'] = '';
383
-			$res['message_erreur'] = trim($res['message_erreur'] . ' ' . $erreurs['message_erreur']);
384
-		}
385
-	}
386
-
387
-	// Un lien auteur a prendre en compte ?
388
-	if ($associer_objet and $id_auteur = $res['id_auteur']) {
389
-		$objet = '';
390
-		if (intval($associer_objet)) {
391
-			$objet = 'article';
392
-			$id_objet = intval($associer_objet);
393
-		} elseif (preg_match(',^\w+\|[0-9]+$,', $associer_objet)) {
394
-			list($objet, $id_objet) = explode('|', $associer_objet);
395
-		}
396
-		if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
397
-			include_spip('action/editer_auteur');
398
-			auteur_associer($id_auteur, array($objet => $id_objet));
399
-			if (isset($res['redirect'])) {
400
-				$res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_auteur, '&');
401
-			}
402
-		}
403
-	}
404
-
405
-	return $res;
319
+    if (_request('saisie_webmestre') or _request('webmestre')) {
320
+        set_request('webmestre', _request('webmestre') ? _request('webmestre') : 'non');
321
+    }
322
+    $retour = parametre_url($retour, 'email_confirm', '');
323
+
324
+    if ($restreintes = _request('restreintes')) {
325
+        foreach ($restreintes as $k => $v) {
326
+            if(strpos($v, 'rubrique|') === 0) {
327
+                $restreintes[$k] = substr($v, 9);
328
+            }
329
+        }
330
+        set_request('restreintes', $restreintes);
331
+    }
332
+
333
+    set_request(
334
+        'email',
335
+        email_valide(_request('email'))
336
+    ); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
337
+    // "[email protected]  " ou encore "Marie Toto <[email protected]>"
338
+
339
+    include_spip('inc/autoriser');
340
+    if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))) {
341
+        $email_nouveau = _request('email');
342
+        set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
343
+        // mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
344
+        // pour qu'il confirme qu'il possede bien cette adresse
345
+        // son clic sur l'url du message permettre de confirmer le changement
346
+        // et de revenir sur son profil
347
+        if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
348
+            and $email_nouveau !=
349
+                ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
350
+        ) {
351
+            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
352
+            $texte = _T(
353
+                'form_auteur_mail_confirmation',
354
+                array(
355
+                    'url' => generer_action_auteur(
356
+                        'confirmer_email',
357
+                        $email_nouveau,
358
+                        parametre_url($retour, 'email_modif', 'ok')
359
+                    )
360
+                )
361
+            );
362
+            $envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
363
+            set_request('email_confirm', $email_nouveau);
364
+            if ($email_ancien) {
365
+                $envoyer_mail($email_ancien, _T('form_auteur_confirmation'),
366
+                    _T('form_auteur_envoi_mail_confirmation', array('email' => $email_nouveau)));
367
+            }
368
+            $retour = parametre_url($retour, 'email_confirm', $email_nouveau);
369
+        }
370
+    }
371
+
372
+    $res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
373
+
374
+    if (_request('reset_password') and !intval($id_auteur) and intval($res['id_auteur'])) {
375
+        $erreurs = array();
376
+        $erreurs = auteur_reset_password($res['id_auteur'], $erreurs);
377
+        if (isset($erreurs['message_ok'])) {
378
+            if (!isset($res['message_ok'])) $res['message_ok'] = '';
379
+            $res['message_ok'] = trim($res['message_ok'] . ' ' . $erreurs['message_ok']);
380
+        }
381
+        if (isset($erreurs['message_erreur']) and $erreurs['message_erreur']) {
382
+            if (!isset($res['message_erreur'])) $res['message_erreur'] = '';
383
+            $res['message_erreur'] = trim($res['message_erreur'] . ' ' . $erreurs['message_erreur']);
384
+        }
385
+    }
386
+
387
+    // Un lien auteur a prendre en compte ?
388
+    if ($associer_objet and $id_auteur = $res['id_auteur']) {
389
+        $objet = '';
390
+        if (intval($associer_objet)) {
391
+            $objet = 'article';
392
+            $id_objet = intval($associer_objet);
393
+        } elseif (preg_match(',^\w+\|[0-9]+$,', $associer_objet)) {
394
+            list($objet, $id_objet) = explode('|', $associer_objet);
395
+        }
396
+        if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
397
+            include_spip('action/editer_auteur');
398
+            auteur_associer($id_auteur, array($objet => $id_objet));
399
+            if (isset($res['redirect'])) {
400
+                $res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_auteur, '&');
401
+            }
402
+        }
403
+    }
404
+
405
+    return $res;
406 406
 }
407 407
 
408 408
 
409 409
 function auteur_reset_password($id_auteur, $erreurs = array()) {
410
-	$auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
411
-	$config = auteurs_edit_config($auteur);
412
-
413
-	if ($config['edit_pass']) {
414
-		if ($email = auteur_regenerer_identifiants($id_auteur)) {
415
-			$erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', array('email' => $email));
416
-			$erreurs['message_erreur'] = '';
417
-		} elseif ($email === false) {
418
-			$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
419
-		} else {
420
-			$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
421
-		}
422
-	} else {
423
-		$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
424
-	}
425
-
426
-	return $erreurs;
410
+    $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
411
+    $config = auteurs_edit_config($auteur);
412
+
413
+    if ($config['edit_pass']) {
414
+        if ($email = auteur_regenerer_identifiants($id_auteur)) {
415
+            $erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', array('email' => $email));
416
+            $erreurs['message_erreur'] = '';
417
+        } elseif ($email === false) {
418
+            $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
419
+        } else {
420
+            $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
421
+        }
422
+    } else {
423
+        $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
424
+    }
425
+
426
+    return $erreurs;
427 427
 }
428 428
 
429 429
 /**
@@ -434,52 +434,52 @@  discard block
 block discarded – undo
434 434
  * @return string
435 435
  */
436 436
 function auteur_regenerer_identifiants($id_auteur, $notifier=true, $contexte = array()) {
437
-	if ($id_auteur){
438
-		$set = array();
439
-		include_spip('inc/access');
440
-		$set['pass'] = creer_pass_aleatoire();
441
-
442
-		include_spip('action/editer_auteur');
443
-		auteur_modifier($id_auteur,$set);
444
-
445
-		$row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
446
-		include_spip('inc/filtres');
447
-		if ($notifier
448
-			and $row['email']
449
-			and email_valide($row['email'])
450
-		  and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')){
451
-			// envoyer l'email avec login/pass
452
-			$c = array(
453
-				'id_auteur' => $id_auteur,
454
-				'nom' => $row['nom'],
455
-				'mode' => $row['statut'],
456
-				'email' => $row['email'],
457
-				'pass' => $set['pass'],
458
-			);
459
-			// on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
460
-			$contexte = array_merge($contexte, $c);
461
-			// si pas de langue explicitement demandee, prendre celle de l'auteur si on la connait, ou a defaut celle du site
462
-			// plutot que celle de l'admin qui vient de cliquer sur le bouton
463
-			if (!isset($contexte['lang']) or !$contexte['lang']) {
464
-				if (isset($row['lang']) and $row['lang']) {
465
-					$contexte['lang'] = $row['lang'];
466
-				}
467
-				else {
468
-					$contexte['lang'] = $GLOBALS['meta']['langue_site'];
469
-				}
470
-			}
471
-			lang_select($contexte['lang']);
472
-			$message = recuperer_fond($fond, $contexte);
473
-			include_spip("inc/notifications");
474
-			notifications_envoyer_mails($row['email'],$message);
475
-			lang_select();
476
-
477
-			return $row['email'];
478
-		}
479
-
480
-		return false;
481
-
482
-	}
483
-
484
-	return '';
437
+    if ($id_auteur){
438
+        $set = array();
439
+        include_spip('inc/access');
440
+        $set['pass'] = creer_pass_aleatoire();
441
+
442
+        include_spip('action/editer_auteur');
443
+        auteur_modifier($id_auteur,$set);
444
+
445
+        $row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
446
+        include_spip('inc/filtres');
447
+        if ($notifier
448
+            and $row['email']
449
+            and email_valide($row['email'])
450
+          and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')){
451
+            // envoyer l'email avec login/pass
452
+            $c = array(
453
+                'id_auteur' => $id_auteur,
454
+                'nom' => $row['nom'],
455
+                'mode' => $row['statut'],
456
+                'email' => $row['email'],
457
+                'pass' => $set['pass'],
458
+            );
459
+            // on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
460
+            $contexte = array_merge($contexte, $c);
461
+            // si pas de langue explicitement demandee, prendre celle de l'auteur si on la connait, ou a defaut celle du site
462
+            // plutot que celle de l'admin qui vient de cliquer sur le bouton
463
+            if (!isset($contexte['lang']) or !$contexte['lang']) {
464
+                if (isset($row['lang']) and $row['lang']) {
465
+                    $contexte['lang'] = $row['lang'];
466
+                }
467
+                else {
468
+                    $contexte['lang'] = $GLOBALS['meta']['langue_site'];
469
+                }
470
+            }
471
+            lang_select($contexte['lang']);
472
+            $message = recuperer_fond($fond, $contexte);
473
+            include_spip("inc/notifications");
474
+            notifications_envoyer_mails($row['email'],$message);
475
+            lang_select();
476
+
477
+            return $row['email'];
478
+        }
479
+
480
+        return false;
481
+
482
+    }
483
+
484
+    return '';
485 485
 }
Please login to merge, or discard this patch.
ecrire/inc/autoriser.php 1 patch
Indentation   +624 added lines, -624 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Autorisations
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('base/abstract_sql');
@@ -38,83 +38,83 @@  discard block
 block discarded – undo
38 38
 
39 39
 
40 40
 if (!function_exists('autoriser')) {
41
-	/**
42
-	 * Autoriser une action
43
-	 *
44
-	 * Teste si une personne (par défaut le visiteur en cours) peut effectuer
45
-	 * une certaine action. Cette fonction est le point d'entrée de toutes
46
-	 * les autorisations.
47
-	 *
48
-	 * La fonction se charge d'appeler des fonctions d'autorisations spécifiques
49
-	 * aux actions demandées si elles existent. Elle cherche donc les fonctions
50
-	 * dans cet ordre :
51
-	 *
52
-	 * - autoriser_{type}_{faire}, sinon avec _dist
53
-	 * - autoriser_{type}, sinon avec _dist
54
-	 * - autoriser_{faire}, sinon avec _dist
55
-	 * - autoriser_{defaut}, sinon avec _dist
56
-	 *
57
-	 * Seul le premier argument est obligatoire.
58
-	 *
59
-	 * @note
60
-	 *     Le paramètre `$type` attend par défaut un type d'objet éditorial, et à ce titre,
61
-	 *     la valeur transmise se verra appliquer la fonction 'objet_type' pour uniformiser
62
-	 *     cette valeur.
63
-	 *
64
-	 *     Si ce paramètre n'a rien n'a voir avec un objet éditorial, par exemple
65
-	 *     'statistiques', un souligné avant le terme est ajouté afin d'indiquer
66
-	 *     explicitement à la fonction autoriser de ne pas transformer la chaîne en type
67
-	 *     d'objet. Cela donne pour cet exemple : `autoriser('detruire', '_statistiques')`
68
-	 *
69
-	 * @note
70
-	 *     Le paramètre `$type`, en plus de l'uniformisation en type d'objet, se voit retirer
71
-	 *     tous les soulignés du terme. Ainsi le type d'objet `livre_art` deviendra `livreart`
72
-	 *     et SPIP cherchera une fonction `autoriser_livreart_{faire}`. Ceci permet
73
-	 *     d'éviter une possible confusion si une fonction `autoriser_livre_art` existait :
74
-	 *     quel serait le type, quel serait l'action ?
75
-	 *
76
-	 *     Pour résumer, si le type d'objet éditorial a un souligné, tel que 'livre_art',
77
-	 *     la fonction d'autorisation correspondante ne l'aura pas.
78
-	 *     Exemple : `function autoriser_livreart_modifier_dist(...){...}`
79
-	 *
80
-	 * @api
81
-	 * @see autoriser_dist()
82
-	 *
83
-	 * @param string $faire
84
-	 *   une action ('modifier', 'publier'...)
85
-	 * @param string $type
86
-	 *   type d'objet ou nom de table ('article')
87
-	 * @param int $id
88
-	 *   id de l'objet sur lequel on veut agir
89
-	 * @param null|int|array $qui
90
-	 *   - si null on prend alors visiteur_session
91
-	 *   - un id_auteur (on regarde dans la base)
92
-	 *   - un tableau auteur complet, y compris [restreint]
93
-	 * @param null|array $opt
94
-	 *   options sous forme de tableau associatif
95
-	 * @return bool
96
-	 *   true si la personne peut effectuer l'action
97
-	 */
98
-	function autoriser($faire, $type = '', $id = 0, $qui = null, $opt = null) {
99
-		// Charger les fonctions d'autorisation supplementaires
100
-		static $pipe;
101
-		if (!isset($pipe)) {
102
-			$pipe = 1;
103
-			pipeline('autoriser');
104
-		}
105
-
106
-		$args = func_get_args();
107
-
108
-		return call_user_func_array('autoriser_dist', $args);
109
-	}
41
+    /**
42
+     * Autoriser une action
43
+     *
44
+     * Teste si une personne (par défaut le visiteur en cours) peut effectuer
45
+     * une certaine action. Cette fonction est le point d'entrée de toutes
46
+     * les autorisations.
47
+     *
48
+     * La fonction se charge d'appeler des fonctions d'autorisations spécifiques
49
+     * aux actions demandées si elles existent. Elle cherche donc les fonctions
50
+     * dans cet ordre :
51
+     *
52
+     * - autoriser_{type}_{faire}, sinon avec _dist
53
+     * - autoriser_{type}, sinon avec _dist
54
+     * - autoriser_{faire}, sinon avec _dist
55
+     * - autoriser_{defaut}, sinon avec _dist
56
+     *
57
+     * Seul le premier argument est obligatoire.
58
+     *
59
+     * @note
60
+     *     Le paramètre `$type` attend par défaut un type d'objet éditorial, et à ce titre,
61
+     *     la valeur transmise se verra appliquer la fonction 'objet_type' pour uniformiser
62
+     *     cette valeur.
63
+     *
64
+     *     Si ce paramètre n'a rien n'a voir avec un objet éditorial, par exemple
65
+     *     'statistiques', un souligné avant le terme est ajouté afin d'indiquer
66
+     *     explicitement à la fonction autoriser de ne pas transformer la chaîne en type
67
+     *     d'objet. Cela donne pour cet exemple : `autoriser('detruire', '_statistiques')`
68
+     *
69
+     * @note
70
+     *     Le paramètre `$type`, en plus de l'uniformisation en type d'objet, se voit retirer
71
+     *     tous les soulignés du terme. Ainsi le type d'objet `livre_art` deviendra `livreart`
72
+     *     et SPIP cherchera une fonction `autoriser_livreart_{faire}`. Ceci permet
73
+     *     d'éviter une possible confusion si une fonction `autoriser_livre_art` existait :
74
+     *     quel serait le type, quel serait l'action ?
75
+     *
76
+     *     Pour résumer, si le type d'objet éditorial a un souligné, tel que 'livre_art',
77
+     *     la fonction d'autorisation correspondante ne l'aura pas.
78
+     *     Exemple : `function autoriser_livreart_modifier_dist(...){...}`
79
+     *
80
+     * @api
81
+     * @see autoriser_dist()
82
+     *
83
+     * @param string $faire
84
+     *   une action ('modifier', 'publier'...)
85
+     * @param string $type
86
+     *   type d'objet ou nom de table ('article')
87
+     * @param int $id
88
+     *   id de l'objet sur lequel on veut agir
89
+     * @param null|int|array $qui
90
+     *   - si null on prend alors visiteur_session
91
+     *   - un id_auteur (on regarde dans la base)
92
+     *   - un tableau auteur complet, y compris [restreint]
93
+     * @param null|array $opt
94
+     *   options sous forme de tableau associatif
95
+     * @return bool
96
+     *   true si la personne peut effectuer l'action
97
+     */
98
+    function autoriser($faire, $type = '', $id = 0, $qui = null, $opt = null) {
99
+        // Charger les fonctions d'autorisation supplementaires
100
+        static $pipe;
101
+        if (!isset($pipe)) {
102
+            $pipe = 1;
103
+            pipeline('autoriser');
104
+        }
105
+
106
+        $args = func_get_args();
107
+
108
+        return call_user_func_array('autoriser_dist', $args);
109
+    }
110 110
 }
111 111
 
112 112
 
113 113
 // mes_fonctions peut aussi declarer des autorisations, il faut donc le charger
114 114
 // mais apres la fonction autoriser()
115 115
 if ($f = find_in_path('mes_fonctions.php')) {
116
-	global $dossier_squelettes;
117
-	include_once(_ROOT_CWD . $f);
116
+    global $dossier_squelettes;
117
+    include_once(_ROOT_CWD . $f);
118 118
 }
119 119
 
120 120
 
@@ -142,72 +142,72 @@  discard block
 block discarded – undo
142 142
  */
143 143
 function autoriser_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
144 144
 
145
-	// Qui ? visiteur_session ?
146
-	// si null ou '' (appel depuis #AUTORISER) on prend l'auteur loge
147
-	if ($qui === null or $qui === '') {
148
-		$qui = $GLOBALS['visiteur_session'] ? $GLOBALS['visiteur_session'] : array();
149
-		$qui = array_merge(array('statut' => '', 'id_auteur' => 0, 'webmestre' => 'non'), $qui);
150
-	} elseif (is_numeric($qui)) {
151
-		$qui = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $qui);
152
-	}
153
-
154
-	// Admins restreints, on construit ici (pas generique mais...)
155
-	// le tableau de toutes leurs rubriques (y compris les sous-rubriques)
156
-	if (_ADMINS_RESTREINTS and is_array($qui)) {
157
-		$qui['restreint'] = isset($qui['id_auteur']) ? liste_rubriques_auteur($qui['id_auteur']) : array();
158
-	}
159
-
160
-	spip_log(
161
-		"autoriser $faire $type $id (" . (isset($qui['nom']) ? $qui['nom'] : '') . ') ?',
162
-		'autoriser' . _LOG_DEBUG
163
-	);
164
-
165
-	// passer par objet_type pour avoir les alias
166
-	// et supprimer les _
167
-	$type = str_replace('_', '', strncmp($type, '_', 1) == 0 ? $type : objet_type($type, false));
168
-
169
-	// Si une exception a ete decretee plus haut dans le code, l'appliquer
170
-	if ((isset($GLOBALS['autoriser_exception'][$faire][$type][$id]) and autoriser_exception($faire, $type, $id, 'verifier'))
171
-	  or (isset($GLOBALS['autoriser_exception'][$faire][$type]['*']) and autoriser_exception($faire, $type, '*', 'verifier'))
172
-	) {
173
-		spip_log("autoriser ($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : OK Exception', 'autoriser' . _LOG_DEBUG);
174
-		return true;
175
-	}
176
-
177
-	// Chercher une fonction d'autorisation
178
-	// Dans l'ordre on va chercher autoriser_type_faire[_dist], autoriser_type[_dist],
179
-	// autoriser_faire[_dist], autoriser_defaut[_dist]
180
-	$fonctions = $type
181
-		? array(
182
-			'autoriser_' . $type . '_' . $faire,
183
-			'autoriser_' . $type . '_' . $faire . '_dist',
184
-			'autoriser_' . $type,
185
-			'autoriser_' . $type . '_dist',
186
-			'autoriser_' . $faire,
187
-			'autoriser_' . $faire . '_dist',
188
-			'autoriser_defaut',
189
-			'autoriser_defaut_dist'
190
-		)
191
-		: array(
192
-			'autoriser_' . $faire,
193
-			'autoriser_' . $faire . '_dist',
194
-			'autoriser_defaut',
195
-			'autoriser_defaut_dist'
196
-		);
197
-
198
-	foreach ($fonctions as $f) {
199
-		if (function_exists($f)) {
200
-			$a = $f($faire, $type, $id, $qui, $opt);
201
-			break;
202
-		}
203
-	}
204
-
205
-	spip_log(
206
-		"$f($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : ' . ($a ? 'OK' : 'niet'),
207
-		'autoriser' . _LOG_DEBUG
208
-	);
209
-
210
-	return $a;
145
+    // Qui ? visiteur_session ?
146
+    // si null ou '' (appel depuis #AUTORISER) on prend l'auteur loge
147
+    if ($qui === null or $qui === '') {
148
+        $qui = $GLOBALS['visiteur_session'] ? $GLOBALS['visiteur_session'] : array();
149
+        $qui = array_merge(array('statut' => '', 'id_auteur' => 0, 'webmestre' => 'non'), $qui);
150
+    } elseif (is_numeric($qui)) {
151
+        $qui = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . $qui);
152
+    }
153
+
154
+    // Admins restreints, on construit ici (pas generique mais...)
155
+    // le tableau de toutes leurs rubriques (y compris les sous-rubriques)
156
+    if (_ADMINS_RESTREINTS and is_array($qui)) {
157
+        $qui['restreint'] = isset($qui['id_auteur']) ? liste_rubriques_auteur($qui['id_auteur']) : array();
158
+    }
159
+
160
+    spip_log(
161
+        "autoriser $faire $type $id (" . (isset($qui['nom']) ? $qui['nom'] : '') . ') ?',
162
+        'autoriser' . _LOG_DEBUG
163
+    );
164
+
165
+    // passer par objet_type pour avoir les alias
166
+    // et supprimer les _
167
+    $type = str_replace('_', '', strncmp($type, '_', 1) == 0 ? $type : objet_type($type, false));
168
+
169
+    // Si une exception a ete decretee plus haut dans le code, l'appliquer
170
+    if ((isset($GLOBALS['autoriser_exception'][$faire][$type][$id]) and autoriser_exception($faire, $type, $id, 'verifier'))
171
+      or (isset($GLOBALS['autoriser_exception'][$faire][$type]['*']) and autoriser_exception($faire, $type, '*', 'verifier'))
172
+    ) {
173
+        spip_log("autoriser ($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : OK Exception', 'autoriser' . _LOG_DEBUG);
174
+        return true;
175
+    }
176
+
177
+    // Chercher une fonction d'autorisation
178
+    // Dans l'ordre on va chercher autoriser_type_faire[_dist], autoriser_type[_dist],
179
+    // autoriser_faire[_dist], autoriser_defaut[_dist]
180
+    $fonctions = $type
181
+        ? array(
182
+            'autoriser_' . $type . '_' . $faire,
183
+            'autoriser_' . $type . '_' . $faire . '_dist',
184
+            'autoriser_' . $type,
185
+            'autoriser_' . $type . '_dist',
186
+            'autoriser_' . $faire,
187
+            'autoriser_' . $faire . '_dist',
188
+            'autoriser_defaut',
189
+            'autoriser_defaut_dist'
190
+        )
191
+        : array(
192
+            'autoriser_' . $faire,
193
+            'autoriser_' . $faire . '_dist',
194
+            'autoriser_defaut',
195
+            'autoriser_defaut_dist'
196
+        );
197
+
198
+    foreach ($fonctions as $f) {
199
+        if (function_exists($f)) {
200
+            $a = $f($faire, $type, $id, $qui, $opt);
201
+            break;
202
+        }
203
+    }
204
+
205
+    spip_log(
206
+        "$f($faire, $type, $id, " . (isset($qui['nom']) ? $qui['nom'] : '') . ') : ' . ($a ? 'OK' : 'niet'),
207
+        'autoriser' . _LOG_DEBUG
208
+    );
209
+
210
+    return $a;
211 211
 }
212 212
 
213 213
 // une globale pour aller au plus vite dans la fonction generique ci dessus
@@ -225,26 +225,26 @@  discard block
 block discarded – undo
225 225
  * @return bool
226 226
  */
227 227
 function autoriser_exception($faire, $type, $id, $autoriser = true) {
228
-	// une static innaccessible par url pour verifier que la globale est positionnee a bon escient
229
-	static $autorisation;
230
-	if ($autoriser === 'verifier') {
231
-		return isset($autorisation[$faire][$type][$id]);
232
-	}
233
-	if ($autoriser === true) {
234
-		$GLOBALS['autoriser_exception'][$faire][$type][$id] = $autorisation[$faire][$type][$id] = true;
235
-	}
236
-	if ($autoriser === false) {
237
-		if ($id === '*') {
238
-			unset($GLOBALS['autoriser_exception'][$faire][$type]);
239
-			unset($autorisation[$faire][$type]);
240
-		}
241
-		else {
242
-			unset($GLOBALS['autoriser_exception'][$faire][$type][$id]);
243
-			unset($autorisation[$faire][$type][$id]);
244
-		}
245
-	}
246
-
247
-	return false;
228
+    // une static innaccessible par url pour verifier que la globale est positionnee a bon escient
229
+    static $autorisation;
230
+    if ($autoriser === 'verifier') {
231
+        return isset($autorisation[$faire][$type][$id]);
232
+    }
233
+    if ($autoriser === true) {
234
+        $GLOBALS['autoriser_exception'][$faire][$type][$id] = $autorisation[$faire][$type][$id] = true;
235
+    }
236
+    if ($autoriser === false) {
237
+        if ($id === '*') {
238
+            unset($GLOBALS['autoriser_exception'][$faire][$type]);
239
+            unset($autorisation[$faire][$type]);
240
+        }
241
+        else {
242
+            unset($GLOBALS['autoriser_exception'][$faire][$type][$id]);
243
+            unset($autorisation[$faire][$type][$id]);
244
+        }
245
+    }
246
+
247
+    return false;
248 248
 }
249 249
 
250 250
 
@@ -261,9 +261,9 @@  discard block
 block discarded – undo
261 261
  * @return bool          true s'il a le droit, false sinon
262 262
  **/
263 263
 function autoriser_defaut_dist($faire, $type, $id, $qui, $opt) {
264
-	return
265
-		$qui['statut'] == '0minirezo'
266
-		and !$qui['restreint'];
264
+    return
265
+        $qui['statut'] == '0minirezo'
266
+        and !$qui['restreint'];
267 267
 }
268 268
 
269 269
 /**
@@ -279,10 +279,10 @@  discard block
 block discarded – undo
279 279
  * @return bool
280 280
  */
281 281
 function autoriser_loger_dist($faire, $type, $id, $qui, $opt) {
282
-	if ($qui['statut'] == '5poubelle') {
283
-		return false;
284
-	}
285
-	return true;
282
+    if ($qui['statut'] == '5poubelle') {
283
+        return false;
284
+    }
285
+    return true;
286 286
 }
287 287
 
288 288
 /**
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
  * @return bool          true s'il a le droit, false sinon
297 297
  **/
298 298
 function autoriser_ecrire_dist($faire, $type, $id, $qui, $opt) {
299
-	return isset($qui['statut']) and in_array($qui['statut'], array('0minirezo', '1comite'));
299
+    return isset($qui['statut']) and in_array($qui['statut'], array('0minirezo', '1comite'));
300 300
 }
301 301
 
302 302
 /**
@@ -313,7 +313,7 @@  discard block
 block discarded – undo
313 313
  * @return bool          true s'il a le droit, false sinon
314 314
  **/
315 315
 function autoriser_creer_dist($faire, $type, $id, $qui, $opt) {
316
-	return in_array($qui['statut'], array('0minirezo', '1comite'));
316
+    return in_array($qui['statut'], array('0minirezo', '1comite'));
317 317
 }
318 318
 
319 319
 /**
@@ -331,18 +331,18 @@  discard block
 block discarded – undo
331 331
  **/
332 332
 function autoriser_previsualiser_dist($faire, $type, $id, $qui, $opt) {
333 333
 
334
-	// Le visiteur a-t-il un statut prevu par la config ?
335
-	if (strpos($GLOBALS['meta']['preview'], ',' . $qui['statut'] . ',') !== false) {
336
-		return test_previsualiser_objet_champ($type, $id, $qui, $opt);
337
-	}
334
+    // Le visiteur a-t-il un statut prevu par la config ?
335
+    if (strpos($GLOBALS['meta']['preview'], ',' . $qui['statut'] . ',') !== false) {
336
+        return test_previsualiser_objet_champ($type, $id, $qui, $opt);
337
+    }
338 338
 
339
-	// A-t-on un token de prévisualisation valable ?
340
-	include_spip('inc/securiser_action');
341
-	if (decrire_token_previsu()) {
342
-		return true;
343
-	}
339
+    // A-t-on un token de prévisualisation valable ?
340
+    include_spip('inc/securiser_action');
341
+    if (decrire_token_previsu()) {
342
+        return true;
343
+    }
344 344
 
345
-	return false;
345
+    return false;
346 346
 }
347 347
 
348 348
 /**
@@ -370,57 +370,57 @@  discard block
 block discarded – undo
370 370
  */
371 371
 function test_previsualiser_objet_champ($type = null, $id = 0, $qui = array(), $opt = array()) {
372 372
 
373
-	// si pas de type et statut fourni, c'est une autorisation generale => OK
374
-	if (!$type) {
375
-		return true;
376
-	}
377
-
378
-	include_spip('base/objets');
379
-	$infos = lister_tables_objets_sql(table_objet_sql($type));
380
-	if (isset($infos['statut'])) {
381
-		foreach ($infos['statut'] as $c) {
382
-			if (isset($c['publie'])) {
383
-				if (!isset($c['previsu'])) {
384
-					return false;
385
-				} // pas de previsu definie => NIET
386
-				$champ = $c['champ'];
387
-				if (!isset($opt[$champ])) {
388
-					return false;
389
-				} // pas de champ passe a la demande => NIET
390
-				$previsu = explode(',', $c['previsu']);
391
-				// regarder si ce statut est autorise pour l'auteur
392
-				if (in_array($opt[$champ] . '/auteur', $previsu)) {
393
-
394
-					// retrouver l’id_auteur qui a filé un lien de prévisu éventuellement,
395
-					// sinon l’auteur en session
396
-					include_spip('inc/securiser_action');
397
-					if ($desc = decrire_token_previsu()) {
398
-						$id_auteur = $desc['id_auteur'];
399
-					} elseif (isset($GLOBALS['visiteur_session']['id_auteur'])) {
400
-						$id_auteur = intval($GLOBALS['visiteur_session']['id_auteur']);
401
-					} else {
402
-						$id_auteur = null;
403
-					}
404
-
405
-					if (!$id_auteur) {
406
-						return false;
407
-					} elseif(autoriser('previsualiser' . $opt[$champ], $type, '', $id_auteur)) {
408
-						// dans ce cas (admin en general), pas de filtrage sur ce statut
409
-					} elseif (!sql_countsel(
410
-						'spip_auteurs_liens',
411
-						'id_auteur=' . intval($id_auteur) . ' AND objet=' . sql_quote($type) . ' AND id_objet=' . intval($id)
412
-					)) {
413
-						return false;
414
-					} // pas auteur de cet objet => NIET
415
-				} elseif (!in_array($opt[$champ], $previsu)) {
416
-					// le statut n'est pas dans ceux definis par la previsu => NIET
417
-					return false;
418
-				}
419
-			}
420
-		}
421
-	}
422
-
423
-	return true;
373
+    // si pas de type et statut fourni, c'est une autorisation generale => OK
374
+    if (!$type) {
375
+        return true;
376
+    }
377
+
378
+    include_spip('base/objets');
379
+    $infos = lister_tables_objets_sql(table_objet_sql($type));
380
+    if (isset($infos['statut'])) {
381
+        foreach ($infos['statut'] as $c) {
382
+            if (isset($c['publie'])) {
383
+                if (!isset($c['previsu'])) {
384
+                    return false;
385
+                } // pas de previsu definie => NIET
386
+                $champ = $c['champ'];
387
+                if (!isset($opt[$champ])) {
388
+                    return false;
389
+                } // pas de champ passe a la demande => NIET
390
+                $previsu = explode(',', $c['previsu']);
391
+                // regarder si ce statut est autorise pour l'auteur
392
+                if (in_array($opt[$champ] . '/auteur', $previsu)) {
393
+
394
+                    // retrouver l’id_auteur qui a filé un lien de prévisu éventuellement,
395
+                    // sinon l’auteur en session
396
+                    include_spip('inc/securiser_action');
397
+                    if ($desc = decrire_token_previsu()) {
398
+                        $id_auteur = $desc['id_auteur'];
399
+                    } elseif (isset($GLOBALS['visiteur_session']['id_auteur'])) {
400
+                        $id_auteur = intval($GLOBALS['visiteur_session']['id_auteur']);
401
+                    } else {
402
+                        $id_auteur = null;
403
+                    }
404
+
405
+                    if (!$id_auteur) {
406
+                        return false;
407
+                    } elseif(autoriser('previsualiser' . $opt[$champ], $type, '', $id_auteur)) {
408
+                        // dans ce cas (admin en general), pas de filtrage sur ce statut
409
+                    } elseif (!sql_countsel(
410
+                        'spip_auteurs_liens',
411
+                        'id_auteur=' . intval($id_auteur) . ' AND objet=' . sql_quote($type) . ' AND id_objet=' . intval($id)
412
+                    )) {
413
+                        return false;
414
+                    } // pas auteur de cet objet => NIET
415
+                } elseif (!in_array($opt[$champ], $previsu)) {
416
+                    // le statut n'est pas dans ceux definis par la previsu => NIET
417
+                    return false;
418
+                }
419
+            }
420
+        }
421
+    }
422
+
423
+    return true;
424 424
 }
425 425
 
426 426
 /**
@@ -434,47 +434,47 @@  discard block
 block discarded – undo
434 434
  * @return bool          true s'il a le droit, false sinon
435 435
  **/
436 436
 function autoriser_changerlangue_dist($faire, $type, $id, $qui, $opt) {
437
-	$multi_objets = explode(',', lire_config('multi_objets'));
438
-	$gerer_trad_objets = explode(',', lire_config('gerer_trad_objets'));
439
-	$table = table_objet_sql($type);
440
-	if (in_array($table, $multi_objets)
441
-		or in_array($table, $gerer_trad_objets)) { // affichage du formulaire si la configuration l'accepte
442
-		$multi_secteurs = lire_config('multi_secteurs');
443
-		$champs = objet_info($type, 'field');
444
-		if ($multi_secteurs == 'oui'
445
-			and array_key_exists('id_rubrique', $champs)) {
446
-			// multilinguisme par secteur et objet rattaché à une rubrique
447
-			$primary = id_table_objet($type);
448
-			if ($table != 'spip_rubriques') {
449
-				$id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=" . intval($id));
450
-			} else {
451
-				$id_rubrique = $id;
452
-			}
453
-			$id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
454
-			if (!$id_secteur > 0) {
455
-				$id_secteur = $id_rubrique;
456
-			}
457
-			$langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . intval($id_secteur));
458
-			$langue_objet = sql_getfetsel('lang', "$table", "$primary=" . intval($id));
459
-			if ($langue_secteur != $langue_objet) {
460
-				// configuration incohérente, on laisse l'utilisateur corriger la situation
461
-				return true;
462
-			}
463
-			if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
464
-				return false;
465
-			} else {
466
-				$id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
467
-				if ($id_parent != 0) {
468
-					// sous-rubriques : pas de choix de langue
469
-					return false;
470
-				}
471
-			}
472
-		}
473
-	} else {
474
-		return false;
475
-	}
476
-
477
-	return autoriser('modifier', $type, $id, $qui, $opt);
437
+    $multi_objets = explode(',', lire_config('multi_objets'));
438
+    $gerer_trad_objets = explode(',', lire_config('gerer_trad_objets'));
439
+    $table = table_objet_sql($type);
440
+    if (in_array($table, $multi_objets)
441
+        or in_array($table, $gerer_trad_objets)) { // affichage du formulaire si la configuration l'accepte
442
+        $multi_secteurs = lire_config('multi_secteurs');
443
+        $champs = objet_info($type, 'field');
444
+        if ($multi_secteurs == 'oui'
445
+            and array_key_exists('id_rubrique', $champs)) {
446
+            // multilinguisme par secteur et objet rattaché à une rubrique
447
+            $primary = id_table_objet($type);
448
+            if ($table != 'spip_rubriques') {
449
+                $id_rubrique = sql_getfetsel('id_rubrique', "$table", "$primary=" . intval($id));
450
+            } else {
451
+                $id_rubrique = $id;
452
+            }
453
+            $id_secteur = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique));
454
+            if (!$id_secteur > 0) {
455
+                $id_secteur = $id_rubrique;
456
+            }
457
+            $langue_secteur = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . intval($id_secteur));
458
+            $langue_objet = sql_getfetsel('lang', "$table", "$primary=" . intval($id));
459
+            if ($langue_secteur != $langue_objet) {
460
+                // configuration incohérente, on laisse l'utilisateur corriger la situation
461
+                return true;
462
+            }
463
+            if ($table != 'spip_rubriques') { // le choix de la langue se fait seulement sur les rubriques
464
+                return false;
465
+            } else {
466
+                $id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id));
467
+                if ($id_parent != 0) {
468
+                    // sous-rubriques : pas de choix de langue
469
+                    return false;
470
+                }
471
+            }
472
+        }
473
+    } else {
474
+        return false;
475
+    }
476
+
477
+    return autoriser('modifier', $type, $id, $qui, $opt);
478 478
 }
479 479
 
480 480
 /**
@@ -488,7 +488,7 @@  discard block
 block discarded – undo
488 488
  * @return bool          true s'il a le droit, false sinon
489 489
  **/
490 490
 function autoriser_changertraduction_dist($faire, $type, $id, $qui, $opt) {
491
-	return autoriser('modifier', $type, $id, $qui, $opt);
491
+    return autoriser('modifier', $type, $id, $qui, $opt);
492 492
 }
493 493
 
494 494
 /**
@@ -502,41 +502,41 @@  discard block
 block discarded – undo
502 502
  * @return bool          true s'il a le droit, false sinon
503 503
  **/
504 504
 function autoriser_dater_dist($faire, $type, $id, $qui, $opt) {
505
-	$table = table_objet($type);
506
-	$trouver_table = charger_fonction('trouver_table', 'base');
507
-	$desc = $trouver_table($table);
508
-	if (!$desc) {
509
-		return false;
510
-	}
505
+    $table = table_objet($type);
506
+    $trouver_table = charger_fonction('trouver_table', 'base');
507
+    $desc = $trouver_table($table);
508
+    if (!$desc) {
509
+        return false;
510
+    }
511 511
 	
512
-	if (!isset($opt['statut'])) {
513
-		if (isset($desc['field']['statut'])) {
514
-			$statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type) . '=' . intval($id));
515
-		} else {
516
-			$statut = 'publie';
517
-		} // pas de statut => publie
518
-	} else {
519
-		$statut = $opt['statut'];
520
-	}
512
+    if (!isset($opt['statut'])) {
513
+        if (isset($desc['field']['statut'])) {
514
+            $statut = sql_getfetsel('statut', $desc['table'], id_table_objet($type) . '=' . intval($id));
515
+        } else {
516
+            $statut = 'publie';
517
+        } // pas de statut => publie
518
+    } else {
519
+        $statut = $opt['statut'];
520
+    }
521 521
 	
522
-	// Liste des statuts publiés pour cet objet
523
-	if (isset($desc['statut'][0]['publie'])) {
524
-		$statuts_publies = explode(',', $desc['statut'][0]['publie']);
525
-	}
526
-	// Sinon en dur le statut "publie"
527
-	else {
528
-		$statuts_publies = array('publie');
529
-	}
522
+    // Liste des statuts publiés pour cet objet
523
+    if (isset($desc['statut'][0]['publie'])) {
524
+        $statuts_publies = explode(',', $desc['statut'][0]['publie']);
525
+    }
526
+    // Sinon en dur le statut "publie"
527
+    else {
528
+        $statuts_publies = array('publie');
529
+    }
530 530
 	
531
-	if (
532
-		in_array($statut, $statuts_publies)
533
-		// Ou cas particulier géré en dur ici pour les articles
534
-		or ($statut == 'prop' and $type == 'article' and $GLOBALS['meta']['post_dates'] == 'non')
535
-	) {
536
-		return autoriser('modifier', $type, $id);
537
-	}
531
+    if (
532
+        in_array($statut, $statuts_publies)
533
+        // Ou cas particulier géré en dur ici pour les articles
534
+        or ($statut == 'prop' and $type == 'article' and $GLOBALS['meta']['post_dates'] == 'non')
535
+    ) {
536
+        return autoriser('modifier', $type, $id);
537
+    }
538 538
 
539
-	return false;
539
+    return false;
540 540
 }
541 541
 
542 542
 /**
@@ -553,7 +553,7 @@  discard block
 block discarded – undo
553 553
  * @return bool          true s'il a le droit, false sinon
554 554
  **/
555 555
 function autoriser_instituer_dist($faire, $type, $id, $qui, $opt) {
556
-	return autoriser('modifier', $type, $id, $qui, $opt);
556
+    return autoriser('modifier', $type, $id, $qui, $opt);
557 557
 }
558 558
 
559 559
 /**
@@ -569,12 +569,12 @@  discard block
 block discarded – undo
569 569
  * @return bool          true s'il a le droit, false sinon
570 570
  **/
571 571
 function autoriser_rubrique_publierdans_dist($faire, $type, $id, $qui, $opt) {
572
-	return
573
-		($qui['statut'] == '0minirezo')
574
-		and (
575
-			!$qui['restreint'] or !$id
576
-			or in_array($id, $qui['restreint'])
577
-		);
572
+    return
573
+        ($qui['statut'] == '0minirezo')
574
+        and (
575
+            !$qui['restreint'] or !$id
576
+            or in_array($id, $qui['restreint'])
577
+        );
578 578
 }
579 579
 
580 580
 /**
@@ -590,12 +590,12 @@  discard block
 block discarded – undo
590 590
  * @return bool          true s'il a le droit, false sinon
591 591
  **/
592 592
 function autoriser_rubrique_creer_dist($faire, $type, $id, $qui, $opt) {
593
-	if (!empty($opt['id_parent'])) {
594
-		return autoriser('creerrubriquedans', 'rubrique', $opt['id_parent'], $qui);
595
-	}
596
-	else {
597
-		return autoriser('defaut', null, null, $qui, $opt);
598
-	}
593
+    if (!empty($opt['id_parent'])) {
594
+        return autoriser('creerrubriquedans', 'rubrique', $opt['id_parent'], $qui);
595
+    }
596
+    else {
597
+        return autoriser('defaut', null, null, $qui, $opt);
598
+    }
599 599
 }
600 600
 
601 601
 /**
@@ -611,10 +611,10 @@  discard block
 block discarded – undo
611 611
  * @return bool          true s'il a le droit, false sinon
612 612
  **/
613 613
 function autoriser_rubrique_creerrubriquedans_dist($faire, $type, $id, $qui, $opt) {
614
-	return
615
-		($id or ($qui['statut'] == '0minirezo' and !$qui['restreint']))
616
-		and autoriser('voir', 'rubrique', $id)
617
-		and autoriser('publierdans', 'rubrique', $id);
614
+    return
615
+        ($id or ($qui['statut'] == '0minirezo' and !$qui['restreint']))
616
+        and autoriser('voir', 'rubrique', $id)
617
+        and autoriser('publierdans', 'rubrique', $id);
618 618
 }
619 619
 
620 620
 /**
@@ -630,10 +630,10 @@  discard block
 block discarded – undo
630 630
  * @return bool          true s'il a le droit, false sinon
631 631
  **/
632 632
 function autoriser_rubrique_creerarticledans_dist($faire, $type, $id, $qui, $opt) {
633
-	return
634
-		$id
635
-		and autoriser('voir', 'rubrique', $id)
636
-		and autoriser('creer', 'article');
633
+    return
634
+        $id
635
+        and autoriser('voir', 'rubrique', $id)
636
+        and autoriser('creer', 'article');
637 637
 }
638 638
 
639 639
 
@@ -650,8 +650,8 @@  discard block
 block discarded – undo
650 650
  * @return bool          true s'il a le droit, false sinon
651 651
  **/
652 652
 function autoriser_rubrique_modifier_dist($faire, $type, $id, $qui, $opt) {
653
-	return
654
-		autoriser('publierdans', 'rubrique', $id, $qui, $opt);
653
+    return
654
+        autoriser('publierdans', 'rubrique', $id, $qui, $opt);
655 655
 }
656 656
 
657 657
 /**
@@ -667,29 +667,29 @@  discard block
 block discarded – undo
667 667
  * @return bool          true s'il a le droit, false sinon
668 668
  **/
669 669
 function autoriser_rubrique_supprimer_dist($faire, $type, $id, $qui, $opt) {
670
-	if (!$id = intval($id)) {
671
-		return false;
672
-	}
670
+    if (!$id = intval($id)) {
671
+        return false;
672
+    }
673 673
 
674
-	if (sql_countsel('spip_rubriques', 'id_parent=' . intval($id))) {
675
-		return false;
676
-	}
674
+    if (sql_countsel('spip_rubriques', 'id_parent=' . intval($id))) {
675
+        return false;
676
+    }
677 677
 
678
-	if (sql_countsel('spip_articles', 'id_rubrique=' . intval($id) . " AND (statut<>'poubelle')")) {
679
-		return false;
680
-	}
678
+    if (sql_countsel('spip_articles', 'id_rubrique=' . intval($id) . " AND (statut<>'poubelle')")) {
679
+        return false;
680
+    }
681 681
 
682
-	$compte = pipeline(
683
-		'objet_compte_enfants',
684
-		array('args' => array('objet' => 'rubrique', 'id_objet' => $id), 'data' => array())
685
-	);
686
-	foreach ($compte as $objet => $n) {
687
-		if ($n) {
688
-			return false;
689
-		}
690
-	}
682
+    $compte = pipeline(
683
+        'objet_compte_enfants',
684
+        array('args' => array('objet' => 'rubrique', 'id_objet' => $id), 'data' => array())
685
+    );
686
+    foreach ($compte as $objet => $n) {
687
+        if ($n) {
688
+            return false;
689
+        }
690
+    }
691 691
 
692
-	return autoriser('modifier', 'rubrique', $id);
692
+    return autoriser('modifier', 'rubrique', $id);
693 693
 }
694 694
 
695 695
 
@@ -707,20 +707,20 @@  discard block
 block discarded – undo
707 707
  * @return bool          true s'il a le droit, false sinon
708 708
  **/
709 709
 function autoriser_article_modifier_dist($faire, $type, $id, $qui, $opt) {
710
-	$r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article=' . sql_quote($id));
710
+    $r = sql_fetsel('id_rubrique,statut', 'spip_articles', 'id_article=' . sql_quote($id));
711 711
 
712
-	return
713
-		$r
714
-		and
715
-		(
716
-			autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
717
-			or (
718
-				(!isset($opt['statut']) or $opt['statut'] !== 'publie')
719
-				and in_array($qui['statut'], array('0minirezo', '1comite'))
720
-				and in_array($r['statut'], array('prop', 'prepa', 'poubelle'))
721
-				and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur'])
722
-			)
723
-		);
712
+    return
713
+        $r
714
+        and
715
+        (
716
+            autoriser('publierdans', 'rubrique', $r['id_rubrique'], $qui, $opt)
717
+            or (
718
+                (!isset($opt['statut']) or $opt['statut'] !== 'publie')
719
+                and in_array($qui['statut'], array('0minirezo', '1comite'))
720
+                and in_array($r['statut'], array('prop', 'prepa', 'poubelle'))
721
+                and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur'])
722
+            )
723
+        );
724 724
 }
725 725
 
726 726
 /**
@@ -736,13 +736,13 @@  discard block
 block discarded – undo
736 736
  * @return bool          true s'il a le droit, false sinon
737 737
  **/
738 738
 function autoriser_article_creer_dist($faire, $type, $id, $qui, $opt) {
739
-	if (!empty($opt['id_parent'])) {
740
-		// creerarticledans rappelle autoriser(creer,article) sans id, donc on verifiera condition du else aussi
741
-		return autoriser('creerarticledans', 'rubrique', $opt['id_parent'], $qui);
742
-	}
743
-	else {
744
-		return (sql_countsel('spip_rubriques') > 0 and in_array($qui['statut'], array('0minirezo', '1comite')));
745
-	}
739
+    if (!empty($opt['id_parent'])) {
740
+        // creerarticledans rappelle autoriser(creer,article) sans id, donc on verifiera condition du else aussi
741
+        return autoriser('creerarticledans', 'rubrique', $opt['id_parent'], $qui);
742
+    }
743
+    else {
744
+        return (sql_countsel('spip_rubriques') > 0 and in_array($qui['statut'], array('0minirezo', '1comite')));
745
+    }
746 746
 }
747 747
 
748 748
 /**
@@ -762,28 +762,28 @@  discard block
 block discarded – undo
762 762
  * @return bool          true s'il a le droit, false sinon
763 763
  */
764 764
 function autoriser_article_voir_dist($faire, $type, $id, $qui, $opt) {
765
-	if ($qui['statut'] == '0minirezo') {
766
-		return true;
767
-	}
768
-	// cas des articles : depend du statut de l'article et de l'auteur
769
-	if (isset($opt['statut'])) {
770
-		$statut = $opt['statut'];
771
-	} else {
772
-		if (!$id) {
773
-			return false;
774
-		}
775
-		$statut = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id));
776
-	}
777
-
778
-	return
779
-		// si on est pas auteur de l'article,
780
-		// seuls les propose et publies sont visibles
781
-		in_array($statut, array('prop', 'publie'))
782
-		// sinon si on est auteur, on a le droit de le voir, evidemment !
783
-		or
784
-		($id
785
-			and $qui['id_auteur']
786
-			and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur']));
765
+    if ($qui['statut'] == '0minirezo') {
766
+        return true;
767
+    }
768
+    // cas des articles : depend du statut de l'article et de l'auteur
769
+    if (isset($opt['statut'])) {
770
+        $statut = $opt['statut'];
771
+    } else {
772
+        if (!$id) {
773
+            return false;
774
+        }
775
+        $statut = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id));
776
+    }
777
+
778
+    return
779
+        // si on est pas auteur de l'article,
780
+        // seuls les propose et publies sont visibles
781
+        in_array($statut, array('prop', 'publie'))
782
+        // sinon si on est auteur, on a le droit de le voir, evidemment !
783
+        or
784
+        ($id
785
+            and $qui['id_auteur']
786
+            and auteurs_objet('article', $id, 'id_auteur=' . $qui['id_auteur']));
787 787
 }
788 788
 
789 789
 
@@ -800,22 +800,22 @@  discard block
 block discarded – undo
800 800
  * @return bool          true s'il a le droit, false sinon
801 801
  **/
802 802
 function autoriser_voir_dist($faire, $type, $id, $qui, $opt) {
803
-	# securite, mais on aurait pas du arriver ici !
804
-	if (function_exists($f = 'autoriser_' . $type . '_voir')
805
-		or function_exists($f = 'autoriser_' . $type . '_voir_dist')) {
806
-		return $f($faire, $type, $id, $qui, $opt);
807
-	}
803
+    # securite, mais on aurait pas du arriver ici !
804
+    if (function_exists($f = 'autoriser_' . $type . '_voir')
805
+        or function_exists($f = 'autoriser_' . $type . '_voir_dist')) {
806
+        return $f($faire, $type, $id, $qui, $opt);
807
+    }
808 808
 
809
-	if ($qui['statut'] == '0minirezo') {
810
-		return true;
811
-	}
812
-	// admins et redacteurs peuvent voir un auteur
813
-	if ($type == 'auteur') {
814
-		return in_array($qui['statut'], array('0minirezo', '1comite'));
815
-	}
816
-	// sinon par defaut tout est visible
817
-	// sauf cas particuliers traites separemment (ie article)
818
-	return true;
809
+    if ($qui['statut'] == '0minirezo') {
810
+        return true;
811
+    }
812
+    // admins et redacteurs peuvent voir un auteur
813
+    if ($type == 'auteur') {
814
+        return in_array($qui['statut'], array('0minirezo', '1comite'));
815
+    }
816
+    // sinon par defaut tout est visible
817
+    // sauf cas particuliers traites separemment (ie article)
818
+    return true;
819 819
 }
820 820
 
821 821
 
@@ -836,12 +836,12 @@  discard block
 block discarded – undo
836 836
  * @return bool          true s'il a le droit, false sinon
837 837
  **/
838 838
 function autoriser_webmestre_dist($faire, $type, $id, $qui, $opt) {
839
-	return
840
-		(defined('_ID_WEBMESTRES') ?
841
-			in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES))
842
-			: $qui['webmestre'] == 'oui')
843
-		and $qui['statut'] == '0minirezo'
844
-		and !$qui['restreint'];
839
+    return
840
+        (defined('_ID_WEBMESTRES') ?
841
+            in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES))
842
+            : $qui['webmestre'] == 'oui')
843
+        and $qui['statut'] == '0minirezo'
844
+        and !$qui['restreint'];
845 845
 }
846 846
 
847 847
 /**
@@ -857,9 +857,9 @@  discard block
 block discarded – undo
857 857
  * @return bool          true s'il a le droit, false sinon
858 858
  **/
859 859
 function autoriser_configurer_dist($faire, $type, $id, $qui, $opt) {
860
-	return
861
-		$qui['statut'] == '0minirezo'
862
-		and !$qui['restreint'];
860
+    return
861
+        $qui['statut'] == '0minirezo'
862
+        and !$qui['restreint'];
863 863
 }
864 864
 
865 865
 /**
@@ -875,8 +875,8 @@  discard block
 block discarded – undo
875 875
  * @return bool          true s'il a le droit, false sinon
876 876
  **/
877 877
 function autoriser_sauvegarder_dist($faire, $type, $id, $qui, $opt) {
878
-	return
879
-		$qui['statut'] == '0minirezo';
878
+    return
879
+        $qui['statut'] == '0minirezo';
880 880
 }
881 881
 
882 882
 /**
@@ -892,8 +892,8 @@  discard block
 block discarded – undo
892 892
  * @return bool          true s'il a le droit, false sinon
893 893
  **/
894 894
 function autoriser_detruire_dist($faire, $type, $id, $qui, $opt) {
895
-	return
896
-		autoriser('webmestre', null, null, $qui, $opt);
895
+    return
896
+        autoriser('webmestre', null, null, $qui, $opt);
897 897
 }
898 898
 
899 899
 /**
@@ -910,20 +910,20 @@  discard block
 block discarded – undo
910 910
  * @return bool          true s'il a le droit, false sinon
911 911
  **/
912 912
 function autoriser_auteur_previsualiser_dist($faire, $type, $id, $qui, $opt) {
913
-	// les admins peuvent "previsualiser" une page auteur
914
-	if ($qui['statut'] == '0minirezo'
915
-		and !$qui['restreint']
916
-	) {
917
-		return true;
918
-	}
919
-	// "Voir en ligne" si l'auteur a un article publie
920
-	$n = sql_fetsel(
921
-		'A.id_article',
922
-		'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)',
923
-		"A.statut='publie' AND L.id_auteur=" . sql_quote($id)
924
-	);
913
+    // les admins peuvent "previsualiser" une page auteur
914
+    if ($qui['statut'] == '0minirezo'
915
+        and !$qui['restreint']
916
+    ) {
917
+        return true;
918
+    }
919
+    // "Voir en ligne" si l'auteur a un article publie
920
+    $n = sql_fetsel(
921
+        'A.id_article',
922
+        'spip_auteurs_liens AS L LEFT JOIN spip_articles AS A ON (L.objet=\'article\' AND L.id_objet=A.id_article)',
923
+        "A.statut='publie' AND L.id_auteur=" . sql_quote($id)
924
+    );
925 925
 
926
-	return $n ? true : false;
926
+    return $n ? true : false;
927 927
 }
928 928
 
929 929
 
@@ -951,7 +951,7 @@  discard block
 block discarded – undo
951 951
  * @return bool          true s'il a le droit, false sinon
952 952
  **/
953 953
 function autoriser_auteur_creer_dist($faire, $type, $id, $qui, $opt) {
954
-	return ($qui['statut'] == '0minirezo');
954
+    return ($qui['statut'] == '0minirezo');
955 955
 }
956 956
 
957 957
 
@@ -971,69 +971,69 @@  discard block
 block discarded – undo
971 971
  **/
972 972
 function autoriser_auteur_modifier_dist($faire, $type, $id, $qui, $opt) {
973 973
 
974
-	// Si pas admin : seulement le droit de modifier ses donnees perso, mais pas statut ni login
975
-	// la modif de l'email doit etre verifiee ou notifiee si possible, mais c'est a l'interface de gerer ca
976
-	if (!in_array($qui['statut'], array('0minirezo'))) {
977
-		if ($id == $qui['id_auteur']
978
-			&& empty($opt['statut'])
979
-			&& empty($opt['webmestre'])
980
-			&& empty($opt['restreintes'])
981
-			&& empty($opt['login'])
982
-		) {
983
-			return true;
984
-		}
985
-		return false;
986
-	}
987
-
988
-	// Un admin restreint peut modifier/creer un auteur non-admin mais il
989
-	// n'a le droit ni de le promouvoir admin, ni de changer les rubriques
990
-	if ($qui['restreint']) {
991
-		if (isset($opt['webmestre']) and $opt['webmestre']) {
992
-			return false;
993
-		} elseif ((isset($opt['statut']) and ($opt['statut'] == '0minirezo'))
994
-			or (isset($opt['restreintes']) and $opt['restreintes'])
995
-		) {
996
-			return false;
997
-		} else {
998
-			if ($id == $qui['id_auteur']) {
999
-				if (isset($opt['statut']) and $opt['statut']) {
1000
-					return false;
1001
-				} else {
1002
-					return true;
1003
-				}
1004
-			} else {
1005
-				if ($id_auteur = intval($id)) {
1006
-					$t = sql_fetsel('statut', 'spip_auteurs', "id_auteur=$id_auteur");
1007
-					if ($t and $t['statut'] != '0minirezo') {
1008
-						return true;
1009
-					} else {
1010
-						return false;
1011
-					}
1012
-				} // id = 0 => creation
1013
-				else {
1014
-					return true;
1015
-				}
1016
-			}
1017
-		}
1018
-	}
1019
-
1020
-	// Un admin complet fait ce qu'il veut
1021
-	// sauf se degrader
1022
-	if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) {
1023
-		return false;
1024
-	} elseif (isset($opt['webmestre'])
1025
-				and $opt['webmestre']
1026
-				and (defined('_ID_WEBMESTRES')
1027
-				or !autoriser('webmestre'))) {
1028
-		// et toucher au statut webmestre si il ne l'est pas lui meme
1029
-		// ou si les webmestres sont fixes par constante (securite)
1030
-		return false;
1031
-	} // et modifier un webmestre si il ne l'est pas lui meme
1032
-	elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) {
1033
-		return false;
1034
-	} else {
1035
-		return true;
1036
-	}
974
+    // Si pas admin : seulement le droit de modifier ses donnees perso, mais pas statut ni login
975
+    // la modif de l'email doit etre verifiee ou notifiee si possible, mais c'est a l'interface de gerer ca
976
+    if (!in_array($qui['statut'], array('0minirezo'))) {
977
+        if ($id == $qui['id_auteur']
978
+            && empty($opt['statut'])
979
+            && empty($opt['webmestre'])
980
+            && empty($opt['restreintes'])
981
+            && empty($opt['login'])
982
+        ) {
983
+            return true;
984
+        }
985
+        return false;
986
+    }
987
+
988
+    // Un admin restreint peut modifier/creer un auteur non-admin mais il
989
+    // n'a le droit ni de le promouvoir admin, ni de changer les rubriques
990
+    if ($qui['restreint']) {
991
+        if (isset($opt['webmestre']) and $opt['webmestre']) {
992
+            return false;
993
+        } elseif ((isset($opt['statut']) and ($opt['statut'] == '0minirezo'))
994
+            or (isset($opt['restreintes']) and $opt['restreintes'])
995
+        ) {
996
+            return false;
997
+        } else {
998
+            if ($id == $qui['id_auteur']) {
999
+                if (isset($opt['statut']) and $opt['statut']) {
1000
+                    return false;
1001
+                } else {
1002
+                    return true;
1003
+                }
1004
+            } else {
1005
+                if ($id_auteur = intval($id)) {
1006
+                    $t = sql_fetsel('statut', 'spip_auteurs', "id_auteur=$id_auteur");
1007
+                    if ($t and $t['statut'] != '0minirezo') {
1008
+                        return true;
1009
+                    } else {
1010
+                        return false;
1011
+                    }
1012
+                } // id = 0 => creation
1013
+                else {
1014
+                    return true;
1015
+                }
1016
+            }
1017
+        }
1018
+    }
1019
+
1020
+    // Un admin complet fait ce qu'il veut
1021
+    // sauf se degrader
1022
+    if ($id == $qui['id_auteur'] && (isset($opt['statut']) and $opt['statut'])) {
1023
+        return false;
1024
+    } elseif (isset($opt['webmestre'])
1025
+                and $opt['webmestre']
1026
+                and (defined('_ID_WEBMESTRES')
1027
+                or !autoriser('webmestre'))) {
1028
+        // et toucher au statut webmestre si il ne l'est pas lui meme
1029
+        // ou si les webmestres sont fixes par constante (securite)
1030
+        return false;
1031
+    } // et modifier un webmestre si il ne l'est pas lui meme
1032
+    elseif (intval($id) and autoriser('webmestre', '', 0, $id) and !autoriser('webmestre')) {
1033
+        return false;
1034
+    } else {
1035
+        return true;
1036
+    }
1037 1037
 }
1038 1038
 
1039 1039
 
@@ -1050,7 +1050,7 @@  discard block
 block discarded – undo
1050 1050
  * @return bool          true s'il a le droit, false sinon
1051 1051
  **/
1052 1052
 function autoriser_associerauteurs_dist($faire, $type, $id, $qui, $opt) {
1053
-	return autoriser('modifier', $type, $id, $qui, $opt);
1053
+    return autoriser('modifier', $type, $id, $qui, $opt);
1054 1054
 }
1055 1055
 
1056 1056
 
@@ -1067,7 +1067,7 @@  discard block
 block discarded – undo
1067 1067
  * @return bool          true s'il a le droit, false sinon
1068 1068
  **/
1069 1069
 function autoriser_chargerftp_dist($faire, $type, $id, $qui, $opt) {
1070
-	return $qui['statut'] == '0minirezo';
1070
+    return $qui['statut'] == '0minirezo';
1071 1071
 }
1072 1072
 
1073 1073
 /**
@@ -1083,7 +1083,7 @@  discard block
 block discarded – undo
1083 1083
  * @return bool          true s'il a le droit, false sinon
1084 1084
  **/
1085 1085
 function autoriser_debug_dist($faire, $type, $id, $qui, $opt) {
1086
-	return $qui['statut'] == '0minirezo';
1086
+    return $qui['statut'] == '0minirezo';
1087 1087
 }
1088 1088
 
1089 1089
 /**
@@ -1100,52 +1100,52 @@  discard block
 block discarded – undo
1100 1100
  * @return array          Liste des rubriques
1101 1101
  **/
1102 1102
 function liste_rubriques_auteur($id_auteur, $raz = false) {
1103
-	static $restreint = array();
1104
-
1105
-	if (!$id_auteur = intval($id_auteur)) {
1106
-		return array();
1107
-	}
1108
-	if ($raz) {
1109
-		unset($restreint[$id_auteur]);
1110
-	} elseif (isset($restreint[$id_auteur])) {
1111
-		return $restreint[$id_auteur];
1112
-	}
1113
-
1114
-	$rubriques = array();
1115
-	if ((!isset($GLOBALS['meta']['version_installee'])
1116
-		or $GLOBALS['meta']['version_installee'] > 16428)
1117
-		and $r = sql_allfetsel(
1118
-			'id_objet',
1119
-			'spip_auteurs_liens',
1120
-			'id_auteur=' . intval($id_auteur) . " AND objet='rubrique' AND id_objet!=0"
1121
-		)
1122
-		and count($r)
1123
-	) {
1124
-		$r = array_column($r, 'id_objet');
1125
-
1126
-		// recuperer toute la branche, au format chaine enumeration
1127
-		include_spip('inc/rubriques');
1128
-		$r = calcul_branche_in($r);
1129
-		$r = explode(',', $r);
1130
-
1131
-		// passer les rubriques en index, elimine les doublons
1132
-		$r = array_flip($r);
1133
-		// recuperer les index seuls
1134
-		$r = array_keys($r);
1135
-		// combiner pour avoir un tableau id_rubrique=>id_rubrique
1136
-		// est-ce vraiment utile ? (on preserve la forme donnee par le code precedent)
1137
-		$rubriques = array_combine($r, $r);
1138
-	}
1139
-
1140
-	// Affecter l'auteur session le cas echeant
1141
-	if (isset($GLOBALS['visiteur_session']['id_auteur'])
1142
-		and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
1143
-	) {
1144
-		$GLOBALS['visiteur_session']['restreint'] = $rubriques;
1145
-	}
1146
-
1147
-
1148
-	return $restreint[$id_auteur] = $rubriques;
1103
+    static $restreint = array();
1104
+
1105
+    if (!$id_auteur = intval($id_auteur)) {
1106
+        return array();
1107
+    }
1108
+    if ($raz) {
1109
+        unset($restreint[$id_auteur]);
1110
+    } elseif (isset($restreint[$id_auteur])) {
1111
+        return $restreint[$id_auteur];
1112
+    }
1113
+
1114
+    $rubriques = array();
1115
+    if ((!isset($GLOBALS['meta']['version_installee'])
1116
+        or $GLOBALS['meta']['version_installee'] > 16428)
1117
+        and $r = sql_allfetsel(
1118
+            'id_objet',
1119
+            'spip_auteurs_liens',
1120
+            'id_auteur=' . intval($id_auteur) . " AND objet='rubrique' AND id_objet!=0"
1121
+        )
1122
+        and count($r)
1123
+    ) {
1124
+        $r = array_column($r, 'id_objet');
1125
+
1126
+        // recuperer toute la branche, au format chaine enumeration
1127
+        include_spip('inc/rubriques');
1128
+        $r = calcul_branche_in($r);
1129
+        $r = explode(',', $r);
1130
+
1131
+        // passer les rubriques en index, elimine les doublons
1132
+        $r = array_flip($r);
1133
+        // recuperer les index seuls
1134
+        $r = array_keys($r);
1135
+        // combiner pour avoir un tableau id_rubrique=>id_rubrique
1136
+        // est-ce vraiment utile ? (on preserve la forme donnee par le code precedent)
1137
+        $rubriques = array_combine($r, $r);
1138
+    }
1139
+
1140
+    // Affecter l'auteur session le cas echeant
1141
+    if (isset($GLOBALS['visiteur_session']['id_auteur'])
1142
+        and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
1143
+    ) {
1144
+        $GLOBALS['visiteur_session']['restreint'] = $rubriques;
1145
+    }
1146
+
1147
+
1148
+    return $restreint[$id_auteur] = $rubriques;
1149 1149
 }
1150 1150
 
1151 1151
 /**
@@ -1161,7 +1161,7 @@  discard block
 block discarded – undo
1161 1161
  * @return bool          true s'il a le droit, false sinon
1162 1162
  **/
1163 1163
 function autoriser_rubrique_previsualiser_dist($faire, $type, $id, $qui, $opt) {
1164
-	return autoriser('previsualiser');
1164
+    return autoriser('previsualiser');
1165 1165
 }
1166 1166
 
1167 1167
 /**
@@ -1177,7 +1177,7 @@  discard block
 block discarded – undo
1177 1177
  * @return bool          true s'il a le droit, false sinon
1178 1178
  **/
1179 1179
 function autoriser_rubrique_iconifier_dist($faire, $type, $id, $qui, $opt) {
1180
-	return autoriser('publierdans', 'rubrique', $id, $qui, $opt);
1180
+    return autoriser('publierdans', 'rubrique', $id, $qui, $opt);
1181 1181
 }
1182 1182
 
1183 1183
 /**
@@ -1193,8 +1193,8 @@  discard block
 block discarded – undo
1193 1193
  * @return bool          true s'il a le droit, false sinon
1194 1194
  **/
1195 1195
 function autoriser_auteur_iconifier_dist($faire, $type, $id, $qui, $opt) {
1196
-	return (($id == $qui['id_auteur']) or
1197
-		(($qui['statut'] == '0minirezo') and !$qui['restreint']));
1196
+    return (($id == $qui['id_auteur']) or
1197
+        (($qui['statut'] == '0minirezo') and !$qui['restreint']));
1198 1198
 }
1199 1199
 
1200 1200
 /**
@@ -1210,8 +1210,8 @@  discard block
 block discarded – undo
1210 1210
  * @return bool          true s'il a le droit, false sinon
1211 1211
  **/
1212 1212
 function autoriser_iconifier_dist($faire, $type, $id, $qui, $opt) {
1213
-	// par defaut, on a le droit d'iconifier si on a le droit de modifier
1214
-	return autoriser('modifier', $type, $id, $qui, $opt);
1213
+    // par defaut, on a le droit d'iconifier si on a le droit de modifier
1214
+    return autoriser('modifier', $type, $id, $qui, $opt);
1215 1215
 }
1216 1216
 
1217 1217
 
@@ -1229,7 +1229,7 @@  discard block
 block discarded – undo
1229 1229
  * @return bool          true
1230 1230
  **/
1231 1231
 function autoriser_ok_dist($faire, $type, $id, $qui, $opt) {
1232
-	return true;
1232
+    return true;
1233 1233
 }
1234 1234
 
1235 1235
 /**
@@ -1246,7 +1246,7 @@  discard block
 block discarded – undo
1246 1246
  * @return bool          false
1247 1247
  **/
1248 1248
 function autoriser_niet_dist($faire, $type, $id, $qui, $opt) {
1249
-	return false;
1249
+    return false;
1250 1250
 }
1251 1251
 
1252 1252
 /**
@@ -1262,11 +1262,11 @@  discard block
 block discarded – undo
1262 1262
  * @return bool          false
1263 1263
  **/
1264 1264
 function autoriser_base_reparer_dist($faire, $type, $id, $qui, $opt) {
1265
-	if (!autoriser('detruire') or _request('reinstall')) {
1266
-		return false;
1267
-	}
1265
+    if (!autoriser('detruire') or _request('reinstall')) {
1266
+        return false;
1267
+    }
1268 1268
 
1269
-	return true;
1269
+    return true;
1270 1270
 }
1271 1271
 
1272 1272
 /**
@@ -1282,7 +1282,7 @@  discard block
 block discarded – undo
1282 1282
  * @return bool          true s'il a le droit, false sinon
1283 1283
  **/
1284 1284
 function autoriser_infosperso_dist($faire, $type, $id, $qui, $opt) {
1285
-	return true;
1285
+    return true;
1286 1286
 }
1287 1287
 
1288 1288
 /**
@@ -1298,7 +1298,7 @@  discard block
 block discarded – undo
1298 1298
  * @return bool          true s'il a le droit, false sinon
1299 1299
  **/
1300 1300
 function autoriser_langage_configurer_dist($faire, $type, $id, $qui, $opt) {
1301
-	return true;
1301
+    return true;
1302 1302
 }
1303 1303
 
1304 1304
 /**
@@ -1314,7 +1314,7 @@  discard block
 block discarded – undo
1314 1314
  * @return bool          true s'il a le droit, false sinon
1315 1315
  **/
1316 1316
 function autoriser_configurerlangage_dist($faire, $type, $id, $qui, $opt) {
1317
-	return autoriser('configurer', '_langage', $id, $qui, $opt);
1317
+    return autoriser('configurer', '_langage', $id, $qui, $opt);
1318 1318
 }
1319 1319
 
1320 1320
 /**
@@ -1330,7 +1330,7 @@  discard block
 block discarded – undo
1330 1330
  * @return bool          true s'il a le droit, false sinon
1331 1331
  **/
1332 1332
 function autoriser_preferences_configurer_dist($faire, $type, $id, $qui, $opt) {
1333
-	return true;
1333
+    return true;
1334 1334
 }
1335 1335
 
1336 1336
 /**
@@ -1346,7 +1346,7 @@  discard block
 block discarded – undo
1346 1346
  * @return bool          true s'il a le droit, false sinon
1347 1347
  **/
1348 1348
 function autoriser_configurerpreferences_dist($faire, $type, $id, $qui, $opt) {
1349
-	return autoriser('configurer', '_preferences', $id, $qui, $opt);
1349
+    return autoriser('configurer', '_preferences', $id, $qui, $opt);
1350 1350
 }
1351 1351
 
1352 1352
 /**
@@ -1362,8 +1362,8 @@  discard block
 block discarded – undo
1362 1362
  * @return bool          true s'il a le droit, false sinon
1363 1363
  **/
1364 1364
 function autoriser_menudeveloppement_menugrandeentree_dist($faire, $type, $id, $qui, $opt) {
1365
-	return (isset($GLOBALS['visiteur_session']['prefs']['activer_menudev'])
1366
-		and $GLOBALS['visiteur_session']['prefs']['activer_menudev'] == 'oui');
1365
+    return (isset($GLOBALS['visiteur_session']['prefs']['activer_menudev'])
1366
+        and $GLOBALS['visiteur_session']['prefs']['activer_menudev'] == 'oui');
1367 1367
 }
1368 1368
 
1369 1369
 /**
@@ -1380,7 +1380,7 @@  discard block
 block discarded – undo
1380 1380
  * @return bool          true s'il a le droit, false sinon
1381 1381
  **/
1382 1382
 function autoriser_menugrandeentree_dist($faire, $type, $id, $qui, $opt) {
1383
-	return true;
1383
+    return true;
1384 1384
 }
1385 1385
 
1386 1386
 /**
@@ -1396,7 +1396,7 @@  discard block
 block discarded – undo
1396 1396
  * @return bool          true s'il a le droit, false sinon
1397 1397
  **/
1398 1398
 function autoriser_auteurs_voir_dist($faire, $type, $id, $qui, $opt) {
1399
-	return true;
1399
+    return true;
1400 1400
 }
1401 1401
 
1402 1402
 /**
@@ -1412,7 +1412,7 @@  discard block
 block discarded – undo
1412 1412
  * @return bool          true s'il a le droit, false sinon
1413 1413
  **/
1414 1414
 function autoriser_auteurs_menu_dist($faire, $type, $id, $qui, $opt) {
1415
-	return autoriser('voir', '_auteurs', $id, $qui, $opt);
1415
+    return autoriser('voir', '_auteurs', $id, $qui, $opt);
1416 1416
 }
1417 1417
 
1418 1418
 /**
@@ -1428,7 +1428,7 @@  discard block
 block discarded – undo
1428 1428
  * @return bool          true s'il a le droit, false sinon
1429 1429
  **/
1430 1430
 function autoriser_articles_voir_dist($faire, $type, $id, $qui, $opt) {
1431
-	return true;
1431
+    return true;
1432 1432
 }
1433 1433
 
1434 1434
 /**
@@ -1444,7 +1444,7 @@  discard block
 block discarded – undo
1444 1444
  * @return bool          true s'il a le droit, false sinon
1445 1445
  **/
1446 1446
 function autoriser_articles_menu_dist($faire, $type, $id, $qui, $opt) {
1447
-	return autoriser('voir', '_articles', $id, $qui, $opt);
1447
+    return autoriser('voir', '_articles', $id, $qui, $opt);
1448 1448
 }
1449 1449
 
1450 1450
 /**
@@ -1460,7 +1460,7 @@  discard block
 block discarded – undo
1460 1460
  * @return bool          true s'il a le droit, false sinon
1461 1461
  **/
1462 1462
 function autoriser_rubriques_voir_dist($faire, $type, $id, $qui, $opt) {
1463
-	return true;
1463
+    return true;
1464 1464
 }
1465 1465
 
1466 1466
 /**
@@ -1476,7 +1476,7 @@  discard block
 block discarded – undo
1476 1476
  * @return bool          true s'il a le droit, false sinon
1477 1477
  **/
1478 1478
 function autoriser_rubriques_menu_dist($faire, $type, $id, $qui, $opt) {
1479
-	return autoriser('voir', '_rubriques', $id, $qui, $opt);
1479
+    return autoriser('voir', '_rubriques', $id, $qui, $opt);
1480 1480
 }
1481 1481
 
1482 1482
 /**
@@ -1492,7 +1492,7 @@  discard block
 block discarded – undo
1492 1492
  * @return bool          true s'il a le droit, false sinon
1493 1493
  **/
1494 1494
 function autoriser_articlecreer_menu_dist($faire, $type, $id, $qui, $opt) {
1495
-	return verifier_table_non_vide();
1495
+    return verifier_table_non_vide();
1496 1496
 }
1497 1497
 
1498 1498
 
@@ -1511,7 +1511,7 @@  discard block
 block discarded – undo
1511 1511
  * @return bool          true s'il a le droit, false sinon
1512 1512
  **/
1513 1513
 function autoriser_auteurcreer_menu_dist($faire, $type, $id, $qui, $opt) {
1514
-	return autoriser('creer', 'auteur', $id, $qui, $opt);
1514
+    return autoriser('creer', 'auteur', $id, $qui, $opt);
1515 1515
 }
1516 1516
 
1517 1517
 /**
@@ -1527,13 +1527,13 @@  discard block
 block discarded – undo
1527 1527
  * @return bool          true s'il a le droit, false sinon
1528 1528
  **/
1529 1529
 function autoriser_visiteurs_menu_dist($faire, $type, $id, $qui, $opt) {
1530
-	include_spip('base/abstract_sql');
1531
-	return 
1532
-		$qui['statut'] == '0minirezo' and !$qui['restreint']
1533
-		and (
1534
-			$GLOBALS['meta']["accepter_visiteurs"] != 'non'
1535
-			or sql_countsel('spip_auteurs', 'statut in ("6forum", "nouveau")') > 0
1536
-		);
1530
+    include_spip('base/abstract_sql');
1531
+    return 
1532
+        $qui['statut'] == '0minirezo' and !$qui['restreint']
1533
+        and (
1534
+            $GLOBALS['meta']["accepter_visiteurs"] != 'non'
1535
+            or sql_countsel('spip_auteurs', 'statut in ("6forum", "nouveau")') > 0
1536
+        );
1537 1537
 }
1538 1538
 
1539 1539
 /**
@@ -1549,7 +1549,7 @@  discard block
 block discarded – undo
1549 1549
  * @return bool          true s'il a le droit, false sinon
1550 1550
  **/
1551 1551
 function autoriser_suiviedito_menu_dist($faire, $type, $id, $qui, $opt) {
1552
-	return $qui['statut'] == '0minirezo';
1552
+    return $qui['statut'] == '0minirezo';
1553 1553
 }
1554 1554
 
1555 1555
 /**
@@ -1565,7 +1565,7 @@  discard block
 block discarded – undo
1565 1565
  * @return bool          true s'il a le droit, false sinon
1566 1566
  **/
1567 1567
 function autoriser_synchro_menu_dist($faire, $type, $id, $qui, $opt) {
1568
-	return $qui['statut'] == '0minirezo';
1568
+    return $qui['statut'] == '0minirezo';
1569 1569
 }
1570 1570
 
1571 1571
 /**
@@ -1693,7 +1693,7 @@  discard block
 block discarded – undo
1693 1693
  * @return bool          true s'il a le droit, false sinon
1694 1694
  **/
1695 1695
 function autoriser_queue_purger_dist($faire, $type, $id, $qui, $opt) {
1696
-	return autoriser('webmestre');
1696
+    return autoriser('webmestre');
1697 1697
 }
1698 1698
 
1699 1699
 
@@ -1711,11 +1711,11 @@  discard block
 block discarded – undo
1711 1711
  * @return bool          true s'il a le droit, false sinon
1712 1712
  **/
1713 1713
 function autoriser_echafauder_dist($faire, $type, $id, $qui, $opt) {
1714
-	if (test_espace_prive()) {
1715
-		return intval($qui['id_auteur']) ? true : false;
1716
-	} else {
1717
-		return autoriser('webmestre', '', $id, $qui, $opt);
1718
-	}
1714
+    if (test_espace_prive()) {
1715
+        return intval($qui['id_auteur']) ? true : false;
1716
+    } else {
1717
+        return autoriser('webmestre', '', $id, $qui, $opt);
1718
+    }
1719 1719
 }
1720 1720
 
1721 1721
 
@@ -1730,27 +1730,27 @@  discard block
 block discarded – undo
1730 1730
  *     Identifiants d'auteurs
1731 1731
  */
1732 1732
 function auteurs_objet($objet, $id_objet, $cond = '') {
1733
-	$objet = objet_type($objet);
1734
-	$where = array(
1735
-		'objet=' . sql_quote($objet),
1736
-		'id_objet=' . intval($id_objet)
1737
-	);
1738
-	if (!empty($cond)) {
1739
-		if (is_array($cond)) {
1740
-			$where = array_merge($where, $cond);
1741
-		} else {
1742
-			$where[] = $cond;
1743
-		}
1744
-	}
1745
-	$auteurs = sql_allfetsel(
1746
-		'id_auteur',
1747
-		'spip_auteurs_liens',
1748
-		$where
1749
-	);
1750
-	if (is_array($auteurs)) {
1751
-		return array_column($auteurs, 'id_auteur');
1752
-	}
1753
-	return array();
1733
+    $objet = objet_type($objet);
1734
+    $where = array(
1735
+        'objet=' . sql_quote($objet),
1736
+        'id_objet=' . intval($id_objet)
1737
+    );
1738
+    if (!empty($cond)) {
1739
+        if (is_array($cond)) {
1740
+            $where = array_merge($where, $cond);
1741
+        } else {
1742
+            $where[] = $cond;
1743
+        }
1744
+    }
1745
+    $auteurs = sql_allfetsel(
1746
+        'id_auteur',
1747
+        'spip_auteurs_liens',
1748
+        $where
1749
+    );
1750
+    if (is_array($auteurs)) {
1751
+        return array_column($auteurs, 'id_auteur');
1752
+    }
1753
+    return array();
1754 1754
 }
1755 1755
 
1756 1756
 /**
@@ -1764,11 +1764,11 @@  discard block
 block discarded – undo
1764 1764
  *     - false : serveur SQL indisponible
1765 1765
  */
1766 1766
 function auteurs_article($id_article, $cond = '') {
1767
-	return sql_allfetsel(
1768
-		'id_auteur',
1769
-		'spip_auteurs_liens',
1770
-		"objet='article' AND id_objet=" . intval($id_article) . ($cond ? " AND $cond" : '')
1771
-	);
1767
+    return sql_allfetsel(
1768
+        'id_auteur',
1769
+        'spip_auteurs_liens',
1770
+        "objet='article' AND id_objet=" . intval($id_article) . ($cond ? " AND $cond" : '')
1771
+    );
1772 1772
 }
1773 1773
 
1774 1774
 
@@ -1782,7 +1782,7 @@  discard block
 block discarded – undo
1782 1782
  */
1783 1783
 function acces_restreint_rubrique($id_rubrique) {
1784 1784
 
1785
-	return (isset($GLOBALS['connect_id_rubrique'][$id_rubrique]));
1785
+    return (isset($GLOBALS['connect_id_rubrique'][$id_rubrique]));
1786 1786
 }
1787 1787
 
1788 1788
 
@@ -1795,12 +1795,12 @@  discard block
 block discarded – undo
1795 1795
  * @return bool             true si un parent existe
1796 1796
  */
1797 1797
 function verifier_table_non_vide($table = 'spip_rubriques') {
1798
-	static $done = array();
1799
-	if (!isset($done[$table])) {
1800
-		$done[$table] = sql_countsel($table) > 0;
1801
-	}
1798
+    static $done = array();
1799
+    if (!isset($done[$table])) {
1800
+        $done[$table] = sql_countsel($table) > 0;
1801
+    }
1802 1802
 
1803
-	return $done[$table];
1803
+    return $done[$table];
1804 1804
 }
1805 1805
 
1806 1806
 /**
@@ -1825,15 +1825,15 @@  discard block
 block discarded – undo
1825 1825
  */
1826 1826
 function autoriser_inscrireauteur_dist($faire, $quoi, $id, $qui, $opt) {
1827 1827
 
1828
-	$s = array_search($quoi, $GLOBALS['liste_des_statuts']);
1829
-	switch ($s) {
1830
-		case 'info_redacteurs':
1831
-			return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
1832
-		case 'info_visiteurs':
1833
-			return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' or $GLOBALS['meta']['forums_publics'] == 'abo');
1834
-	}
1828
+    $s = array_search($quoi, $GLOBALS['liste_des_statuts']);
1829
+    switch ($s) {
1830
+        case 'info_redacteurs':
1831
+            return ($GLOBALS['meta']['accepter_inscriptions'] == 'oui');
1832
+        case 'info_visiteurs':
1833
+            return ($GLOBALS['meta']['accepter_visiteurs'] == 'oui' or $GLOBALS['meta']['forums_publics'] == 'abo');
1834
+    }
1835 1835
 
1836
-	return false;
1836
+    return false;
1837 1837
 }
1838 1838
 
1839 1839
 /**
@@ -1849,7 +1849,7 @@  discard block
 block discarded – undo
1849 1849
  * @return bool          false
1850 1850
  **/
1851 1851
 function autoriser_inscription_relancer_dist($faire, $type, $id, $qui, $opt) {
1852
-	return $qui['statut'] == '0minirezo' and !$qui['restreint'];
1852
+    return $qui['statut'] == '0minirezo' and !$qui['restreint'];
1853 1853
 }
1854 1854
 
1855 1855
 /**
@@ -1865,5 +1865,5 @@  discard block
 block discarded – undo
1865 1865
  * @return bool          true s'il a le droit, false sinon
1866 1866
  **/
1867 1867
 function autoriser_phpinfos_dist($faire, $type, $id, $qui, $opt) {
1868
-	return autoriser('webmestre');
1868
+    return autoriser('webmestre');
1869 1869
 }
Please login to merge, or discard this patch.