Completed
Push — master ( b5d13a...f38e4b )
by cam
06:16
created
prive/formulaires/editer_auteur.php 2 patches
Indentation   +323 added lines, -323 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,26 +95,26 @@  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('email' => true)));
113
-	$config['edit_pass'] =
114
-		(auth_autoriser_modifier_pass($auth_methode)
115
-			and autoriser('modifier', 'auteur', $row['id_auteur']));
116
-
117
-	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('email' => true)));
113
+    $config['edit_pass'] =
114
+        (auth_autoriser_modifier_pass($auth_methode)
115
+            and autoriser('modifier', 'auteur', $row['id_auteur']));
116
+
117
+    return $config;
118 118
 }
119 119
 
120 120
 /**
@@ -144,132 +144,132 @@  discard block
 block discarded – undo
144 144
  *     Erreurs des saisies
145 145
  **/
146 146
 function formulaires_editer_auteur_verifier_dist(
147
-	$id_auteur = 'new',
148
-	$retour = '',
149
-	$associer_objet = '',
150
-	$config_fonc = 'auteurs_edit_config',
151
-	$row = array(),
152
-	$hidden = ''
147
+    $id_auteur = 'new',
148
+    $retour = '',
149
+    $associer_objet = '',
150
+    $config_fonc = 'auteurs_edit_config',
151
+    $row = array(),
152
+    $hidden = ''
153 153
 ) {
154
-	// auto-renseigner le nom si il n'existe pas, sans couper
155
-	titre_automatique('nom', array('email', 'login'), 255);
156
-
157
-	$oblis = array('nom');
158
-	// si on veut renvoyer des identifiants il faut un email et un login
159
-	if (_request('reset_password')) {
160
-		$oblis[] = 'email';
161
-		$oblis[] = 'new_login';
162
-	}
163
-	// mais il reste obligatoire si on a rien trouve
164
-	$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
165
-	if (isset($erreurs['new_login'])) {
166
-		$erreurs['login'] = $erreurs['new_login'];
167
-		unset($erreurs['new_login']);
168
-	}
169
-
170
-	$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
171
-	$auth_methode = ($auth_methode ? $auth_methode : 'spip');
172
-	include_spip('inc/auth');
173
-
174
-	if (!nom_acceptable(_request('nom'))) {
175
-		$erreurs['nom'] = _T('info_nom_pas_conforme');
176
-	}
177
-
178
-	if ($email = _request('email')) {
179
-		include_spip('inc/filtres');
180
-		include_spip('inc/autoriser');
181
-		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
182
-		if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))
183
-			and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
184
-			and !strlen(trim($email))
185
-			and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
186
-		) {
187
-			$erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
188
-		} else {
189
-			if (!email_valide($email)) {
190
-				$erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
191
-			}
192
-		}
193
-		# Ne pas autoriser d'avoir deux auteurs avec le même email
194
-		# cette fonctionalité nécessite que la base soit clean à l'activation : pas de
195
-		# doublon sur la requête select email,count(*) from spip_auteurs group by email ;
196
-		if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
197
-			#Nouvel auteur
198
-			if (intval($id_auteur) == 0) {
199
-				#Un auteur existe deja avec cette adresse ?
200
-				if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
201
-					$erreurs['email'] = _T('erreur_email_deja_existant');
202
-				}
203
-			} else {
204
-				#Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
205
-				if ((sql_countsel(
206
-					'spip_auteurs',
207
-					'email=' . sql_quote($email)
208
-				) > 0) and ($id_auteur != ($id_auteur_ancien = sql_getfetsel(
209
-					'id_auteur',
210
-					'spip_auteurs',
211
-					'email=' . sql_quote($email)
212
-				)))) {
213
-					$erreurs['email'] = _T('erreur_email_deja_existant');
214
-				}
215
-			}
216
-		}
217
-	}
218
-
219
-	// quand c'est un auteur existant on fait le reset password ici
220
-	if (!count($erreurs) and _request('reset_password') and intval($id_auteur)) {
221
-		$erreurs = auteur_reset_password($id_auteur, $erreurs);
222
-		return $erreurs;
223
-	}
224
-
225
-	// corriger un cas si frequent : www.example.org sans le http:// qui precede
226
-	if ($url = _request('url_site') and !tester_url_absolue($url)) {
227
-		if (strpos($url, ':') === false and strncasecmp($url, 'www.', 4) === 0) {
228
-			$url = 'http://' . $url;
229
-			set_request('url_site', $url);
230
-		}
231
-	}
232
-	// traiter les liens implicites avant de tester l'url
233
-	include_spip('inc/lien');
234
-	if ($url = calculer_url(_request('url_site')) and !tester_url_absolue($url)) {
235
-		$erreurs['url_site'] = _T('info_url_site_pas_conforme');
236
-	}
237
-
238
-	$erreurs['message_erreur'] = '';
239
-	if (
240
-		$login = _request('login') and
241
-		$login !== sql_getfetsel('login','spip_auteurs', 'id_auteur='.intval($id_auteur))
242
-	) {
243
-		// on verifie la meme chose que dans auteurs_edit_config()
244
-		if ( ! auth_autoriser_modifier_login($auth_methode)
245
-			or !autoriser('modifier', 'auteur', intval($id_auteur), null, array('email' => true))){
246
-			$erreurs['login'] = _T('info_non_modifiable');
247
-		}
248
-	}
249
-
250
-	if (empty($erreurs['login'])) {
251
-		if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
252
-			$erreurs['login'] = $err;
253
-			$erreurs['message_erreur'] .= $err;
254
-		} else {
255
-			// pass trop court ou confirmation non identique
256
-			if ($p = _request('new_pass')) {
257
-				if ($p != _request('new_pass2')) {
258
-					$erreurs['new_pass'] = _T('info_passes_identiques');
259
-					$erreurs['message_erreur'] .= _T('info_passes_identiques');
260
-				} elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
261
-					$erreurs['new_pass'] = $err;
262
-					$erreurs['message_erreur'] .= $err;
263
-				}
264
-			}
265
-		}
266
-	}
267
-
268
-	if (!$erreurs['message_erreur']) {
269
-		unset($erreurs['message_erreur']);
270
-	}
271
-
272
-	return $erreurs;
154
+    // auto-renseigner le nom si il n'existe pas, sans couper
155
+    titre_automatique('nom', array('email', 'login'), 255);
156
+
157
+    $oblis = array('nom');
158
+    // si on veut renvoyer des identifiants il faut un email et un login
159
+    if (_request('reset_password')) {
160
+        $oblis[] = 'email';
161
+        $oblis[] = 'new_login';
162
+    }
163
+    // mais il reste obligatoire si on a rien trouve
164
+    $erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
165
+    if (isset($erreurs['new_login'])) {
166
+        $erreurs['login'] = $erreurs['new_login'];
167
+        unset($erreurs['new_login']);
168
+    }
169
+
170
+    $auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
171
+    $auth_methode = ($auth_methode ? $auth_methode : 'spip');
172
+    include_spip('inc/auth');
173
+
174
+    if (!nom_acceptable(_request('nom'))) {
175
+        $erreurs['nom'] = _T('info_nom_pas_conforme');
176
+    }
177
+
178
+    if ($email = _request('email')) {
179
+        include_spip('inc/filtres');
180
+        include_spip('inc/autoriser');
181
+        // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
182
+        if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))
183
+            and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
184
+            and !strlen(trim($email))
185
+            and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
186
+        ) {
187
+            $erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
188
+        } else {
189
+            if (!email_valide($email)) {
190
+                $erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
191
+            }
192
+        }
193
+        # Ne pas autoriser d'avoir deux auteurs avec le même email
194
+        # cette fonctionalité nécessite que la base soit clean à l'activation : pas de
195
+        # doublon sur la requête select email,count(*) from spip_auteurs group by email ;
196
+        if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
197
+            #Nouvel auteur
198
+            if (intval($id_auteur) == 0) {
199
+                #Un auteur existe deja avec cette adresse ?
200
+                if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
201
+                    $erreurs['email'] = _T('erreur_email_deja_existant');
202
+                }
203
+            } else {
204
+                #Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
205
+                if ((sql_countsel(
206
+                    'spip_auteurs',
207
+                    'email=' . sql_quote($email)
208
+                ) > 0) and ($id_auteur != ($id_auteur_ancien = sql_getfetsel(
209
+                    'id_auteur',
210
+                    'spip_auteurs',
211
+                    'email=' . sql_quote($email)
212
+                )))) {
213
+                    $erreurs['email'] = _T('erreur_email_deja_existant');
214
+                }
215
+            }
216
+        }
217
+    }
218
+
219
+    // quand c'est un auteur existant on fait le reset password ici
220
+    if (!count($erreurs) and _request('reset_password') and intval($id_auteur)) {
221
+        $erreurs = auteur_reset_password($id_auteur, $erreurs);
222
+        return $erreurs;
223
+    }
224
+
225
+    // corriger un cas si frequent : www.example.org sans le http:// qui precede
226
+    if ($url = _request('url_site') and !tester_url_absolue($url)) {
227
+        if (strpos($url, ':') === false and strncasecmp($url, 'www.', 4) === 0) {
228
+            $url = 'http://' . $url;
229
+            set_request('url_site', $url);
230
+        }
231
+    }
232
+    // traiter les liens implicites avant de tester l'url
233
+    include_spip('inc/lien');
234
+    if ($url = calculer_url(_request('url_site')) and !tester_url_absolue($url)) {
235
+        $erreurs['url_site'] = _T('info_url_site_pas_conforme');
236
+    }
237
+
238
+    $erreurs['message_erreur'] = '';
239
+    if (
240
+        $login = _request('login') and
241
+        $login !== sql_getfetsel('login','spip_auteurs', 'id_auteur='.intval($id_auteur))
242
+    ) {
243
+        // on verifie la meme chose que dans auteurs_edit_config()
244
+        if ( ! auth_autoriser_modifier_login($auth_methode)
245
+            or !autoriser('modifier', 'auteur', intval($id_auteur), null, array('email' => true))){
246
+            $erreurs['login'] = _T('info_non_modifiable');
247
+        }
248
+    }
249
+
250
+    if (empty($erreurs['login'])) {
251
+        if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
252
+            $erreurs['login'] = $err;
253
+            $erreurs['message_erreur'] .= $err;
254
+        } else {
255
+            // pass trop court ou confirmation non identique
256
+            if ($p = _request('new_pass')) {
257
+                if ($p != _request('new_pass2')) {
258
+                    $erreurs['new_pass'] = _T('info_passes_identiques');
259
+                    $erreurs['message_erreur'] .= _T('info_passes_identiques');
260
+                } elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
261
+                    $erreurs['new_pass'] = $err;
262
+                    $erreurs['message_erreur'] .= $err;
263
+                }
264
+            }
265
+        }
266
+    }
267
+
268
+    if (!$erreurs['message_erreur']) {
269
+        unset($erreurs['message_erreur']);
270
+    }
271
+
272
+    return $erreurs;
273 273
 }
274 274
 
275 275
 
@@ -306,121 +306,121 @@  discard block
 block discarded – undo
306 306
  *     Retour des traitements
307 307
  **/
308 308
 function formulaires_editer_auteur_traiter_dist(
309
-	$id_auteur = 'new',
310
-	$retour = '',
311
-	$associer_objet = '',
312
-	$config_fonc = 'auteurs_edit_config',
313
-	$row = array(),
314
-	$hidden = ''
309
+    $id_auteur = 'new',
310
+    $retour = '',
311
+    $associer_objet = '',
312
+    $config_fonc = 'auteurs_edit_config',
313
+    $row = array(),
314
+    $hidden = ''
315 315
 ) {
316
-	if (_request('saisie_webmestre') or _request('webmestre')) {
317
-		set_request('webmestre', _request('webmestre') ? _request('webmestre') : 'non');
318
-	}
319
-	$retour = parametre_url($retour, 'email_confirm', '');
320
-
321
-	if ($restreintes = _request('restreintes')) {
322
-		foreach ($restreintes as $k => $v) {
323
-			if(strpos($v, 'rubrique|') === 0) {
324
-				$restreintes[$k] = substr($v, 9);
325
-			}
326
-		}
327
-		set_request('restreintes', $restreintes);
328
-	}
329
-
330
-	set_request(
331
-		'email',
332
-		email_valide(_request('email'))
333
-	); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
334
-	// "[email protected]  " ou encore "Marie Toto <[email protected]>"
335
-
336
-	include_spip('inc/autoriser');
337
-	if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))) {
338
-		$email_nouveau = _request('email');
339
-		set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
340
-		// mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
341
-		// pour qu'il confirme qu'il possede bien cette adresse
342
-		// son clic sur l'url du message permettre de confirmer le changement
343
-		// et de revenir sur son profil
344
-		if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
345
-			and $email_nouveau !=
346
-				($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
347
-		) {
348
-			$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
349
-			$texte = _T(
350
-				'form_auteur_mail_confirmation',
351
-				array(
352
-					'url' => generer_action_auteur(
353
-						'confirmer_email',
354
-						$email_nouveau,
355
-						parametre_url($retour, 'email_modif', 'ok')
356
-					)
357
-				)
358
-			);
359
-			$envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
360
-			set_request('email_confirm', $email_nouveau);
361
-			if ($email_ancien) {
362
-				$envoyer_mail($email_ancien, _T('form_auteur_confirmation'),
363
-					_T('form_auteur_envoi_mail_confirmation', array('email' => $email_nouveau)));
364
-			}
365
-			$retour = parametre_url($retour, 'email_confirm', $email_nouveau);
366
-		}
367
-	}
368
-
369
-	$res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
370
-
371
-	if (_request('reset_password') and !intval($id_auteur) and intval($res['id_auteur'])) {
372
-		$erreurs = array();
373
-		$erreurs = auteur_reset_password($res['id_auteur'], $erreurs);
374
-		if (isset($erreurs['message_ok'])) {
375
-			if (!isset($res['message_ok'])) $res['message_ok'] = '';
376
-			$res['message_ok'] = trim($res['message_ok'] . ' ' . $erreurs['message_ok']);
377
-		}
378
-		if (isset($erreurs['message_erreur']) and $erreurs['message_erreur']) {
379
-			if (!isset($res['message_erreur'])) $res['message_erreur'] = '';
380
-			$res['message_erreur'] = trim($res['message_erreur'] . ' ' . $erreurs['message_erreur']);
381
-		}
382
-	}
383
-
384
-	// Un lien auteur a prendre en compte ?
385
-	if ($associer_objet and $id_auteur = $res['id_auteur']) {
386
-		$objet = '';
387
-		if (intval($associer_objet)) {
388
-			$objet = 'article';
389
-			$id_objet = intval($associer_objet);
390
-		} elseif (preg_match(',^\w+\|[0-9]+$,', $associer_objet)) {
391
-			list($objet, $id_objet) = explode('|', $associer_objet);
392
-		}
393
-		if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
394
-			include_spip('action/editer_auteur');
395
-			auteur_associer($id_auteur, array($objet => $id_objet));
396
-			if (isset($res['redirect'])) {
397
-				$res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_auteur, '&');
398
-			}
399
-		}
400
-	}
401
-
402
-	return $res;
316
+    if (_request('saisie_webmestre') or _request('webmestre')) {
317
+        set_request('webmestre', _request('webmestre') ? _request('webmestre') : 'non');
318
+    }
319
+    $retour = parametre_url($retour, 'email_confirm', '');
320
+
321
+    if ($restreintes = _request('restreintes')) {
322
+        foreach ($restreintes as $k => $v) {
323
+            if(strpos($v, 'rubrique|') === 0) {
324
+                $restreintes[$k] = substr($v, 9);
325
+            }
326
+        }
327
+        set_request('restreintes', $restreintes);
328
+    }
329
+
330
+    set_request(
331
+        'email',
332
+        email_valide(_request('email'))
333
+    ); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
334
+    // "[email protected]  " ou encore "Marie Toto <[email protected]>"
335
+
336
+    include_spip('inc/autoriser');
337
+    if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))) {
338
+        $email_nouveau = _request('email');
339
+        set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
340
+        // mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
341
+        // pour qu'il confirme qu'il possede bien cette adresse
342
+        // son clic sur l'url du message permettre de confirmer le changement
343
+        // et de revenir sur son profil
344
+        if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
345
+            and $email_nouveau !=
346
+                ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
347
+        ) {
348
+            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
349
+            $texte = _T(
350
+                'form_auteur_mail_confirmation',
351
+                array(
352
+                    'url' => generer_action_auteur(
353
+                        'confirmer_email',
354
+                        $email_nouveau,
355
+                        parametre_url($retour, 'email_modif', 'ok')
356
+                    )
357
+                )
358
+            );
359
+            $envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
360
+            set_request('email_confirm', $email_nouveau);
361
+            if ($email_ancien) {
362
+                $envoyer_mail($email_ancien, _T('form_auteur_confirmation'),
363
+                    _T('form_auteur_envoi_mail_confirmation', array('email' => $email_nouveau)));
364
+            }
365
+            $retour = parametre_url($retour, 'email_confirm', $email_nouveau);
366
+        }
367
+    }
368
+
369
+    $res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
370
+
371
+    if (_request('reset_password') and !intval($id_auteur) and intval($res['id_auteur'])) {
372
+        $erreurs = array();
373
+        $erreurs = auteur_reset_password($res['id_auteur'], $erreurs);
374
+        if (isset($erreurs['message_ok'])) {
375
+            if (!isset($res['message_ok'])) $res['message_ok'] = '';
376
+            $res['message_ok'] = trim($res['message_ok'] . ' ' . $erreurs['message_ok']);
377
+        }
378
+        if (isset($erreurs['message_erreur']) and $erreurs['message_erreur']) {
379
+            if (!isset($res['message_erreur'])) $res['message_erreur'] = '';
380
+            $res['message_erreur'] = trim($res['message_erreur'] . ' ' . $erreurs['message_erreur']);
381
+        }
382
+    }
383
+
384
+    // Un lien auteur a prendre en compte ?
385
+    if ($associer_objet and $id_auteur = $res['id_auteur']) {
386
+        $objet = '';
387
+        if (intval($associer_objet)) {
388
+            $objet = 'article';
389
+            $id_objet = intval($associer_objet);
390
+        } elseif (preg_match(',^\w+\|[0-9]+$,', $associer_objet)) {
391
+            list($objet, $id_objet) = explode('|', $associer_objet);
392
+        }
393
+        if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) {
394
+            include_spip('action/editer_auteur');
395
+            auteur_associer($id_auteur, array($objet => $id_objet));
396
+            if (isset($res['redirect'])) {
397
+                $res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_auteur, '&');
398
+            }
399
+        }
400
+    }
401
+
402
+    return $res;
403 403
 }
404 404
 
405 405
 
406 406
 function auteur_reset_password($id_auteur, $erreurs = array()) {
407
-	$auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
408
-	$config = auteurs_edit_config($auteur);
409
-
410
-	if ($config['edit_pass']) {
411
-		if ($email = auteur_regenerer_identifiants($id_auteur)) {
412
-			$erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', array('email' => $email));
413
-			$erreurs['message_erreur'] = '';
414
-		} elseif ($email === false) {
415
-			$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
416
-		} else {
417
-			$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
418
-		}
419
-	} else {
420
-		$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
421
-	}
422
-
423
-	return $erreurs;
407
+    $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
408
+    $config = auteurs_edit_config($auteur);
409
+
410
+    if ($config['edit_pass']) {
411
+        if ($email = auteur_regenerer_identifiants($id_auteur)) {
412
+            $erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', array('email' => $email));
413
+            $erreurs['message_erreur'] = '';
414
+        } elseif ($email === false) {
415
+            $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
416
+        } else {
417
+            $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
418
+        }
419
+    } else {
420
+        $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
421
+    }
422
+
423
+    return $erreurs;
424 424
 }
425 425
 
426 426
 /**
@@ -431,52 +431,52 @@  discard block
 block discarded – undo
431 431
  * @return string
432 432
  */
433 433
 function auteur_regenerer_identifiants($id_auteur, $notifier=true, $contexte = array()) {
434
-	if ($id_auteur){
435
-		$set = array();
436
-		include_spip('inc/access');
437
-		$set['pass'] = creer_pass_aleatoire();
438
-
439
-		include_spip('action/editer_auteur');
440
-		auteur_modifier($id_auteur,$set);
441
-
442
-		$row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
443
-		include_spip('inc/filtres');
444
-		if ($notifier
445
-			and $row['email']
446
-			and email_valide($row['email'])
447
-		  and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')){
448
-			// envoyer l'email avec login/pass
449
-			$c = array(
450
-				'id_auteur' => $id_auteur,
451
-				'nom' => $row['nom'],
452
-				'mode' => $row['statut'],
453
-				'email' => $row['email'],
454
-				'pass' => $set['pass'],
455
-			);
456
-			// on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
457
-			$contexte = array_merge($contexte, $c);
458
-			// si pas de langue explicitement demandee, prendre celle de l'auteur si on la connait, ou a defaut celle du site
459
-			// plutot que celle de l'admin qui vient de cliquer sur le bouton
460
-			if (!isset($contexte['lang']) or !$contexte['lang']) {
461
-				if (isset($row['lang']) and $row['lang']) {
462
-					$contexte['lang'] = $row['lang'];
463
-				}
464
-				else {
465
-					$contexte['lang'] = $GLOBALS['meta']['langue_site'];
466
-				}
467
-			}
468
-			lang_select($contexte['lang']);
469
-			$message = recuperer_fond($fond, $contexte);
470
-			include_spip("inc/notifications");
471
-			notifications_envoyer_mails($row['email'],$message);
472
-			lang_select();
473
-
474
-			return $row['email'];
475
-		}
476
-
477
-		return false;
478
-
479
-	}
480
-
481
-	return '';
434
+    if ($id_auteur){
435
+        $set = array();
436
+        include_spip('inc/access');
437
+        $set['pass'] = creer_pass_aleatoire();
438
+
439
+        include_spip('action/editer_auteur');
440
+        auteur_modifier($id_auteur,$set);
441
+
442
+        $row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
443
+        include_spip('inc/filtres');
444
+        if ($notifier
445
+            and $row['email']
446
+            and email_valide($row['email'])
447
+          and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')){
448
+            // envoyer l'email avec login/pass
449
+            $c = array(
450
+                'id_auteur' => $id_auteur,
451
+                'nom' => $row['nom'],
452
+                'mode' => $row['statut'],
453
+                'email' => $row['email'],
454
+                'pass' => $set['pass'],
455
+            );
456
+            // on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
457
+            $contexte = array_merge($contexte, $c);
458
+            // si pas de langue explicitement demandee, prendre celle de l'auteur si on la connait, ou a defaut celle du site
459
+            // plutot que celle de l'admin qui vient de cliquer sur le bouton
460
+            if (!isset($contexte['lang']) or !$contexte['lang']) {
461
+                if (isset($row['lang']) and $row['lang']) {
462
+                    $contexte['lang'] = $row['lang'];
463
+                }
464
+                else {
465
+                    $contexte['lang'] = $GLOBALS['meta']['langue_site'];
466
+                }
467
+            }
468
+            lang_select($contexte['lang']);
469
+            $message = recuperer_fond($fond, $contexte);
470
+            include_spip("inc/notifications");
471
+            notifications_envoyer_mails($row['email'],$message);
472
+            lang_select();
473
+
474
+            return $row['email'];
475
+        }
476
+
477
+        return false;
478
+
479
+    }
480
+
481
+    return '';
482 482
 }
Please login to merge, or discard this patch.
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
 		unset($erreurs['new_login']);
168 168
 	}
169 169
 
170
-	$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
170
+	$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
171 171
 	$auth_methode = ($auth_methode ? $auth_methode : 'spip');
172 172
 	include_spip('inc/auth');
173 173
 
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
 		if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))
183 183
 			and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
184 184
 			and !strlen(trim($email))
185
-			and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
185
+			and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur)))
186 186
 		) {
187 187
 			$erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
188 188
 		} else {
@@ -197,18 +197,18 @@  discard block
 block discarded – undo
197 197
 			#Nouvel auteur
198 198
 			if (intval($id_auteur) == 0) {
199 199
 				#Un auteur existe deja avec cette adresse ?
200
-				if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
200
+				if (sql_countsel('spip_auteurs', 'email='.sql_quote($email)) > 0) {
201 201
 					$erreurs['email'] = _T('erreur_email_deja_existant');
202 202
 				}
203 203
 			} else {
204 204
 				#Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
205 205
 				if ((sql_countsel(
206 206
 					'spip_auteurs',
207
-					'email=' . sql_quote($email)
207
+					'email='.sql_quote($email)
208 208
 				) > 0) and ($id_auteur != ($id_auteur_ancien = sql_getfetsel(
209 209
 					'id_auteur',
210 210
 					'spip_auteurs',
211
-					'email=' . sql_quote($email)
211
+					'email='.sql_quote($email)
212 212
 				)))) {
213 213
 					$erreurs['email'] = _T('erreur_email_deja_existant');
214 214
 				}
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
 	// corriger un cas si frequent : www.example.org sans le http:// qui precede
226 226
 	if ($url = _request('url_site') and !tester_url_absolue($url)) {
227 227
 		if (strpos($url, ':') === false and strncasecmp($url, 'www.', 4) === 0) {
228
-			$url = 'http://' . $url;
228
+			$url = 'http://'.$url;
229 229
 			set_request('url_site', $url);
230 230
 		}
231 231
 	}
@@ -238,11 +238,11 @@  discard block
 block discarded – undo
238 238
 	$erreurs['message_erreur'] = '';
239 239
 	if (
240 240
 		$login = _request('login') and
241
-		$login !== sql_getfetsel('login','spip_auteurs', 'id_auteur='.intval($id_auteur))
241
+		$login !== sql_getfetsel('login', 'spip_auteurs', 'id_auteur='.intval($id_auteur))
242 242
 	) {
243 243
 		// on verifie la meme chose que dans auteurs_edit_config()
244
-		if ( ! auth_autoriser_modifier_login($auth_methode)
245
-			or !autoriser('modifier', 'auteur', intval($id_auteur), null, array('email' => true))){
244
+		if (!auth_autoriser_modifier_login($auth_methode)
245
+			or !autoriser('modifier', 'auteur', intval($id_auteur), null, array('email' => true))) {
246 246
 			$erreurs['login'] = _T('info_non_modifiable');
247 247
 		}
248 248
 	}
@@ -320,7 +320,7 @@  discard block
 block discarded – undo
320 320
 
321 321
 	if ($restreintes = _request('restreintes')) {
322 322
 		foreach ($restreintes as $k => $v) {
323
-			if(strpos($v, 'rubrique|') === 0) {
323
+			if (strpos($v, 'rubrique|') === 0) {
324 324
 				$restreintes[$k] = substr($v, 9);
325 325
 			}
326 326
 		}
@@ -343,7 +343,7 @@  discard block
 block discarded – undo
343 343
 		// et de revenir sur son profil
344 344
 		if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
345 345
 			and $email_nouveau !=
346
-				($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
346
+				($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur)))
347 347
 		) {
348 348
 			$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
349 349
 			$texte = _T(
@@ -373,11 +373,11 @@  discard block
 block discarded – undo
373 373
 		$erreurs = auteur_reset_password($res['id_auteur'], $erreurs);
374 374
 		if (isset($erreurs['message_ok'])) {
375 375
 			if (!isset($res['message_ok'])) $res['message_ok'] = '';
376
-			$res['message_ok'] = trim($res['message_ok'] . ' ' . $erreurs['message_ok']);
376
+			$res['message_ok'] = trim($res['message_ok'].' '.$erreurs['message_ok']);
377 377
 		}
378 378
 		if (isset($erreurs['message_erreur']) and $erreurs['message_erreur']) {
379 379
 			if (!isset($res['message_erreur'])) $res['message_erreur'] = '';
380
-			$res['message_erreur'] = trim($res['message_erreur'] . ' ' . $erreurs['message_erreur']);
380
+			$res['message_erreur'] = trim($res['message_erreur'].' '.$erreurs['message_erreur']);
381 381
 		}
382 382
 	}
383 383
 
@@ -404,7 +404,7 @@  discard block
 block discarded – undo
404 404
 
405 405
 
406 406
 function auteur_reset_password($id_auteur, $erreurs = array()) {
407
-	$auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
407
+	$auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
408 408
 	$config = auteurs_edit_config($auteur);
409 409
 
410 410
 	if ($config['edit_pass']) {
@@ -430,21 +430,21 @@  discard block
 block discarded – undo
430 430
  * @param array $contexte
431 431
  * @return string
432 432
  */
433
-function auteur_regenerer_identifiants($id_auteur, $notifier=true, $contexte = array()) {
434
-	if ($id_auteur){
433
+function auteur_regenerer_identifiants($id_auteur, $notifier = true, $contexte = array()) {
434
+	if ($id_auteur) {
435 435
 		$set = array();
436 436
 		include_spip('inc/access');
437 437
 		$set['pass'] = creer_pass_aleatoire();
438 438
 
439 439
 		include_spip('action/editer_auteur');
440
-		auteur_modifier($id_auteur,$set);
440
+		auteur_modifier($id_auteur, $set);
441 441
 
442
-		$row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
442
+		$row = sql_fetsel('*', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
443 443
 		include_spip('inc/filtres');
444 444
 		if ($notifier
445 445
 			and $row['email']
446 446
 			and email_valide($row['email'])
447
-		  and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')){
447
+		  and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')) {
448 448
 			// envoyer l'email avec login/pass
449 449
 			$c = array(
450 450
 				'id_auteur' => $id_auteur,
@@ -468,7 +468,7 @@  discard block
 block discarded – undo
468 468
 			lang_select($contexte['lang']);
469 469
 			$message = recuperer_fond($fond, $contexte);
470 470
 			include_spip("inc/notifications");
471
-			notifications_envoyer_mails($row['email'],$message);
471
+			notifications_envoyer_mails($row['email'], $message);
472 472
 			lang_select();
473 473
 
474 474
 			return $row['email'];
Please login to merge, or discard this patch.