Completed
Push — master ( 97f3d5...c5e084 )
by cam
01:15
created
ecrire/action/inscrire_auteur.php 2 patches
Indentation   +207 added lines, -207 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Inscription
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 
@@ -39,70 +39,70 @@  discard block
 block discarded – undo
39 39
  * @return array|string
40 40
  */
41 41
 function action_inscrire_auteur_dist($statut, $mail_complet, $nom, $options = []) {
42
-	if (!is_array($options)) {
43
-		$options = ['id' => $options];
44
-	}
45
-
46
-	if (function_exists('test_inscription')) {
47
-		$f = 'test_inscription';
48
-	} else {
49
-		$f = 'test_inscription_dist';
50
-	}
51
-	$desc = $f($statut, $mail_complet, $nom, $options);
52
-
53
-	// erreur ?
54
-	if (!is_array($desc)) {
55
-		return _T($desc);
56
-	}
57
-
58
-	include_spip('base/abstract_sql');
59
-	$res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
60
-	// erreur ?
61
-	if (!$res) {
62
-		return _T('titre_probleme_technique');
63
-	}
64
-
65
-	$row = sql_fetch($res);
66
-	sql_free($res);
67
-	if ($row) {
68
-		if (isset($options['force_nouveau']) and $options['force_nouveau'] == true) {
69
-			$desc['id_auteur'] = $row['id_auteur'];
70
-			$desc = inscription_nouveau($desc);
71
-		} else {
72
-			$desc = $row;
73
-		}
74
-	} else // s'il n'existe pas deja, creer les identifiants
75
-	{
76
-		$desc = inscription_nouveau($desc);
77
-	}
78
-
79
-	// erreur ?
80
-	if (!is_array($desc)) {
81
-		return $desc;
82
-	}
83
-
84
-
85
-	// generer le mot de passe (ou le refaire si compte inutilise)
86
-	$desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']);
87
-
88
-	// attribuer un jeton pour confirmation par clic sur un lien
89
-	$desc['jeton'] = auteur_attribuer_jeton($desc['id_auteur']);
90
-
91
-	// charger de suite cette fonction, pour ses utilitaires
92
-	$envoyer_inscription = charger_fonction('envoyer_inscription', '');
93
-	[$sujet, $msg, $from, $head] = $envoyer_inscription($desc, $nom, $statut, $options);
94
-
95
-	$notifications = charger_fonction('notifications', 'inc');
96
-	notifications_envoyer_mails($mail_complet, $msg, $sujet, $from, $head);
97
-
98
-	// Notifications
99
-	$notifications(
100
-		'inscription',
101
-		$desc['id_auteur'],
102
-		['nom' => $desc['nom'], 'email' => $desc['email']]
103
-	);
104
-
105
-	return $desc;
42
+    if (!is_array($options)) {
43
+        $options = ['id' => $options];
44
+    }
45
+
46
+    if (function_exists('test_inscription')) {
47
+        $f = 'test_inscription';
48
+    } else {
49
+        $f = 'test_inscription_dist';
50
+    }
51
+    $desc = $f($statut, $mail_complet, $nom, $options);
52
+
53
+    // erreur ?
54
+    if (!is_array($desc)) {
55
+        return _T($desc);
56
+    }
57
+
58
+    include_spip('base/abstract_sql');
59
+    $res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
60
+    // erreur ?
61
+    if (!$res) {
62
+        return _T('titre_probleme_technique');
63
+    }
64
+
65
+    $row = sql_fetch($res);
66
+    sql_free($res);
67
+    if ($row) {
68
+        if (isset($options['force_nouveau']) and $options['force_nouveau'] == true) {
69
+            $desc['id_auteur'] = $row['id_auteur'];
70
+            $desc = inscription_nouveau($desc);
71
+        } else {
72
+            $desc = $row;
73
+        }
74
+    } else // s'il n'existe pas deja, creer les identifiants
75
+    {
76
+        $desc = inscription_nouveau($desc);
77
+    }
78
+
79
+    // erreur ?
80
+    if (!is_array($desc)) {
81
+        return $desc;
82
+    }
83
+
84
+
85
+    // generer le mot de passe (ou le refaire si compte inutilise)
86
+    $desc['pass'] = creer_pass_pour_auteur($desc['id_auteur']);
87
+
88
+    // attribuer un jeton pour confirmation par clic sur un lien
89
+    $desc['jeton'] = auteur_attribuer_jeton($desc['id_auteur']);
90
+
91
+    // charger de suite cette fonction, pour ses utilitaires
92
+    $envoyer_inscription = charger_fonction('envoyer_inscription', '');
93
+    [$sujet, $msg, $from, $head] = $envoyer_inscription($desc, $nom, $statut, $options);
94
+
95
+    $notifications = charger_fonction('notifications', 'inc');
96
+    notifications_envoyer_mails($mail_complet, $msg, $sujet, $from, $head);
97
+
98
+    // Notifications
99
+    $notifications(
100
+        'inscription',
101
+        $desc['id_auteur'],
102
+        ['nom' => $desc['nom'], 'email' => $desc['email']]
103
+    );
104
+
105
+    return $desc;
106 106
 }
107 107
 
108 108
 
@@ -125,23 +125,23 @@  discard block
 block discarded – undo
125 125
  *
126 126
  */
127 127
 function test_inscription_dist($statut, $mail, $nom, $options) {
128
-	include_spip('inc/filtres');
129
-	if (!$r = email_valide($mail)) {
130
-		return 'info_email_invalide';
131
-	}
132
-	$nom = trim(corriger_caracteres($nom));
133
-	$res = ['email' => $r, 'nom' => $nom, 'prefs' => $statut];
134
-	if (isset($options['login'])) {
135
-		$login = trim(corriger_caracteres($options['login']));
136
-		if ((strlen($login) >= _LOGIN_TROP_COURT) and (strlen($nom) <= 64)) {
137
-			$res['login'] = $login;
138
-		}
139
-	}
140
-	if (!isset($res['login']) and ((strlen($nom) < _LOGIN_TROP_COURT) or (strlen($nom) > 64))) {
141
-		return 'ecrire:info_login_trop_court';
142
-	}
143
-
144
-	return $res;
128
+    include_spip('inc/filtres');
129
+    if (!$r = email_valide($mail)) {
130
+        return 'info_email_invalide';
131
+    }
132
+    $nom = trim(corriger_caracteres($nom));
133
+    $res = ['email' => $r, 'nom' => $nom, 'prefs' => $statut];
134
+    if (isset($options['login'])) {
135
+        $login = trim(corriger_caracteres($options['login']));
136
+        if ((strlen($login) >= _LOGIN_TROP_COURT) and (strlen($nom) <= 64)) {
137
+            $res['login'] = $login;
138
+        }
139
+    }
140
+    if (!isset($res['login']) and ((strlen($nom) < _LOGIN_TROP_COURT) or (strlen($nom) > 64))) {
141
+        return 'ecrire:info_login_trop_court';
142
+    }
143
+
144
+    return $res;
145 145
 }
146 146
 
147 147
 
@@ -154,33 +154,33 @@  discard block
 block discarded – undo
154 154
  * @return mixed|string
155 155
  */
156 156
 function inscription_nouveau($desc) {
157
-	if (!isset($desc['login']) or !strlen($desc['login'])) {
158
-		$desc['login'] = test_login($desc['nom'], $desc['email']);
159
-	}
157
+    if (!isset($desc['login']) or !strlen($desc['login'])) {
158
+        $desc['login'] = test_login($desc['nom'], $desc['email']);
159
+    }
160 160
 
161
-	$desc['statut'] = 'nouveau';
162
-	include_spip('action/editer_auteur');
163
-	if (isset($desc['id_auteur'])) {
164
-		$id_auteur = $desc['id_auteur'];
165
-	} else {
166
-		$id_auteur = auteur_inserer();
167
-	}
161
+    $desc['statut'] = 'nouveau';
162
+    include_spip('action/editer_auteur');
163
+    if (isset($desc['id_auteur'])) {
164
+        $id_auteur = $desc['id_auteur'];
165
+    } else {
166
+        $id_auteur = auteur_inserer();
167
+    }
168 168
 
169
-	if (!$id_auteur) {
170
-		return _T('titre_probleme_technique');
171
-	}
169
+    if (!$id_auteur) {
170
+        return _T('titre_probleme_technique');
171
+    }
172 172
 
173
-	$desc['lang'] = $GLOBALS['spip_lang'];
173
+    $desc['lang'] = $GLOBALS['spip_lang'];
174 174
 
175
-	include_spip('inc/autoriser');
176
-	// lever l'autorisation pour pouvoir modifier le statut
177
-	autoriser_exception('modifier', 'auteur', $id_auteur);
178
-	auteur_modifier($id_auteur, $desc);
179
-	autoriser_exception('modifier', 'auteur', $id_auteur, false);
175
+    include_spip('inc/autoriser');
176
+    // lever l'autorisation pour pouvoir modifier le statut
177
+    autoriser_exception('modifier', 'auteur', $id_auteur);
178
+    auteur_modifier($id_auteur, $desc);
179
+    autoriser_exception('modifier', 'auteur', $id_auteur, false);
180 180
 
181
-	$desc['id_auteur'] = $id_auteur;
181
+    $desc['id_auteur'] = $id_auteur;
182 182
 
183
-	return $desc;
183
+    return $desc;
184 184
 }
185 185
 
186 186
 
@@ -192,29 +192,29 @@  discard block
 block discarded – undo
192 192
  * @return string
193 193
  */
194 194
 function test_login($nom, $mail) {
195
-	include_spip('inc/charsets');
196
-	$nom = strtolower(translitteration($nom));
197
-	$login_base = preg_replace('/[^\w\d_]/', '_', $nom);
198
-
199
-	// il faut eviter que le login soit vraiment trop court
200
-	if (strlen($login_base) < 3) {
201
-		$mail = strtolower(translitteration(preg_replace('/@.*/', '', $mail)));
202
-		$login_base = preg_replace('/[^\w\d]/', '_', $mail);
203
-	}
204
-	if (strlen($login_base) < 3) {
205
-		$login_base = 'user';
206
-	}
207
-
208
-	$login = $login_base;
209
-
210
-	for ($i = 1;; $i++) {
211
-		if (!sql_countsel('spip_auteurs', "login='$login'")) {
212
-			return $login;
213
-		}
214
-		$login = $login_base . $i;
215
-	}
216
-
217
-	return $login;
195
+    include_spip('inc/charsets');
196
+    $nom = strtolower(translitteration($nom));
197
+    $login_base = preg_replace('/[^\w\d_]/', '_', $nom);
198
+
199
+    // il faut eviter que le login soit vraiment trop court
200
+    if (strlen($login_base) < 3) {
201
+        $mail = strtolower(translitteration(preg_replace('/@.*/', '', $mail)));
202
+        $login_base = preg_replace('/[^\w\d]/', '_', $mail);
203
+    }
204
+    if (strlen($login_base) < 3) {
205
+        $login_base = 'user';
206
+    }
207
+
208
+    $login = $login_base;
209
+
210
+    for ($i = 1;; $i++) {
211
+        if (!sql_countsel('spip_auteurs', "login='$login'")) {
212
+            return $login;
213
+        }
214
+        $login = $login_base . $i;
215
+    }
216
+
217
+    return $login;
218 218
 }
219 219
 
220 220
 
@@ -232,26 +232,26 @@  discard block
 block discarded – undo
232 232
  */
233 233
 function envoyer_inscription_dist($desc, $nom, $mode, $options = []) {
234 234
 
235
-	$contexte = array_merge($desc, $options);
236
-	$contexte['nom'] = $nom;
237
-	$contexte['mode'] = $mode;
238
-	$contexte['url_confirm'] = generer_url_action('confirmer_inscription', '', true, true);
239
-	$contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'email', $desc['email']);
240
-	$contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'jeton', $desc['jeton']);
241
-	// S'il y a l'option redirect, on l'ajoute directement ici
242
-	if (isset($options['redirect'])) {
243
-		$contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'redirect', $options['redirect']);
244
-	}
245
-
246
-	$modele_mail = 'modeles/mail_inscription';
247
-	if (isset($options['modele_mail']) and $options['modele_mail']) {
248
-		$modele_mail = $options['modele_mail'];
249
-	}
250
-	$message = recuperer_fond($modele_mail, $contexte);
251
-	$from = ($options['from'] ?? null);
252
-	$head = null;
253
-
254
-	return ['', $message, $from, $head];
235
+    $contexte = array_merge($desc, $options);
236
+    $contexte['nom'] = $nom;
237
+    $contexte['mode'] = $mode;
238
+    $contexte['url_confirm'] = generer_url_action('confirmer_inscription', '', true, true);
239
+    $contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'email', $desc['email']);
240
+    $contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'jeton', $desc['jeton']);
241
+    // S'il y a l'option redirect, on l'ajoute directement ici
242
+    if (isset($options['redirect'])) {
243
+        $contexte['url_confirm'] = parametre_url($contexte['url_confirm'], 'redirect', $options['redirect']);
244
+    }
245
+
246
+    $modele_mail = 'modeles/mail_inscription';
247
+    if (isset($options['modele_mail']) and $options['modele_mail']) {
248
+        $modele_mail = $options['modele_mail'];
249
+    }
250
+    $message = recuperer_fond($modele_mail, $contexte);
251
+    $from = ($options['from'] ?? null);
252
+    $head = null;
253
+
254
+    return ['', $message, $from, $head];
255 255
 }
256 256
 
257 257
 
@@ -262,12 +262,12 @@  discard block
 block discarded – undo
262 262
  * @return string
263 263
  */
264 264
 function creer_pass_pour_auteur($id_auteur) {
265
-	include_spip('inc/acces');
266
-	$pass = creer_pass_aleatoire(max(_PASS_LONGUEUR_MINI, 16), $id_auteur);
267
-	include_spip('action/editer_auteur');
268
-	auteur_instituer($id_auteur, ['pass' => $pass]);
265
+    include_spip('inc/acces');
266
+    $pass = creer_pass_aleatoire(max(_PASS_LONGUEUR_MINI, 16), $id_auteur);
267
+    include_spip('action/editer_auteur');
268
+    auteur_instituer($id_auteur, ['pass' => $pass]);
269 269
 
270
-	return $pass;
270
+    return $pass;
271 271
 }
272 272
 
273 273
 /**
@@ -280,17 +280,17 @@  discard block
 block discarded – undo
280 280
  * @return string
281 281
  */
282 282
 function tester_statut_inscription($statut_tmp, $id) {
283
-	include_spip('inc/autoriser');
284
-	if ($statut_tmp) {
285
-		return autoriser('inscrireauteur', $statut_tmp, $id) ? $statut_tmp : '';
286
-	} elseif (
287
-		autoriser('inscrireauteur', $statut_tmp = '1comite', $id)
288
-		or autoriser('inscrireauteur', $statut_tmp = '6forum', $id)
289
-	) {
290
-		return $statut_tmp;
291
-	}
292
-
293
-	return '';
283
+    include_spip('inc/autoriser');
284
+    if ($statut_tmp) {
285
+        return autoriser('inscrireauteur', $statut_tmp, $id) ? $statut_tmp : '';
286
+    } elseif (
287
+        autoriser('inscrireauteur', $statut_tmp = '1comite', $id)
288
+        or autoriser('inscrireauteur', $statut_tmp = '6forum', $id)
289
+    ) {
290
+        return $statut_tmp;
291
+    }
292
+
293
+    return '';
294 294
 }
295 295
 
296 296
 
@@ -304,35 +304,35 @@  discard block
 block discarded – undo
304 304
  * @return array
305 305
  */
306 306
 function confirmer_statut_inscription($auteur) {
307
-	// securite
308
-	if ($auteur['statut'] != 'nouveau') {
309
-		return $auteur;
310
-	}
311
-
312
-	$s = $auteur['prefs'];
313
-	// securite, au cas ou prefs aurait ete corrompu (ou deja ecrase par un tableau serialize)
314
-	if (!preg_match(',^\w+$,', $s)) {
315
-		$s = '6forum';
316
-	}
317
-	include_spip('inc/autoriser');
318
-	if (!autoriser('inscrireauteur', $s)) {
319
-		return $auteur;
320
-	}
321
-
322
-	include_spip('inc/autoriser');
323
-	// accorder l'autorisation de modif du statut auteur
324
-	autoriser_exception('modifier', 'auteur', $auteur['id_auteur']);
325
-	include_spip('action/editer_auteur');
326
-	// changer le statut
327
-	auteur_modifier($auteur['id_auteur'], ['statut' => $s]);
328
-	unset($_COOKIE['spip_session']); // forcer la maj de la session
329
-	// lever l'autorisation de modif du statut auteur
330
-	autoriser_exception('modifier', 'auteur', $auteur['id_auteur'], false);
331
-
332
-	// mettre a jour le statut
333
-	$auteur['statut'] = $s;
334
-
335
-	return $auteur;
307
+    // securite
308
+    if ($auteur['statut'] != 'nouveau') {
309
+        return $auteur;
310
+    }
311
+
312
+    $s = $auteur['prefs'];
313
+    // securite, au cas ou prefs aurait ete corrompu (ou deja ecrase par un tableau serialize)
314
+    if (!preg_match(',^\w+$,', $s)) {
315
+        $s = '6forum';
316
+    }
317
+    include_spip('inc/autoriser');
318
+    if (!autoriser('inscrireauteur', $s)) {
319
+        return $auteur;
320
+    }
321
+
322
+    include_spip('inc/autoriser');
323
+    // accorder l'autorisation de modif du statut auteur
324
+    autoriser_exception('modifier', 'auteur', $auteur['id_auteur']);
325
+    include_spip('action/editer_auteur');
326
+    // changer le statut
327
+    auteur_modifier($auteur['id_auteur'], ['statut' => $s]);
328
+    unset($_COOKIE['spip_session']); // forcer la maj de la session
329
+    // lever l'autorisation de modif du statut auteur
330
+    autoriser_exception('modifier', 'auteur', $auteur['id_auteur'], false);
331
+
332
+    // mettre a jour le statut
333
+    $auteur['statut'] = $s;
334
+
335
+    return $auteur;
336 336
 }
337 337
 
338 338
 
@@ -344,14 +344,14 @@  discard block
 block discarded – undo
344 344
  * @return string
345 345
  */
346 346
 function auteur_attribuer_jeton($id_auteur) {
347
-	include_spip('inc/acces');
348
-	// s'assurer de l'unicite du jeton pour le couple (email,cookie)
349
-	do {
350
-		$jeton = creer_uniqid();
351
-		sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton], 'id_auteur=' . intval($id_auteur));
352
-	} while (sql_countsel('spip_auteurs', 'cookie_oubli=' . sql_quote($jeton)) > 1);
353
-
354
-	return $jeton;
347
+    include_spip('inc/acces');
348
+    // s'assurer de l'unicite du jeton pour le couple (email,cookie)
349
+    do {
350
+        $jeton = creer_uniqid();
351
+        sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton], 'id_auteur=' . intval($id_auteur));
352
+    } while (sql_countsel('spip_auteurs', 'cookie_oubli=' . sql_quote($jeton)) > 1);
353
+
354
+    return $jeton;
355 355
 }
356 356
 
357 357
 /**
@@ -361,15 +361,15 @@  discard block
 block discarded – undo
361 361
  * @return array|bool
362 362
  */
363 363
 function auteur_verifier_jeton($jeton) {
364
-	// refuser un jeton corrompu
365
-	if (preg_match(',[^0-9a-f.],i', $jeton)) {
366
-		return false;
367
-	}
364
+    // refuser un jeton corrompu
365
+    if (preg_match(',[^0-9a-f.],i', $jeton)) {
366
+        return false;
367
+    }
368 368
 
369
-	// on peut tomber sur un jeton compose uniquement de chiffres, il faut forcer le $type pour sql_quote pour eviter de planter
370
-	$desc = sql_fetsel('*', 'spip_auteurs', 'cookie_oubli=' . sql_quote($jeton, '', 'string'));
369
+    // on peut tomber sur un jeton compose uniquement de chiffres, il faut forcer le $type pour sql_quote pour eviter de planter
370
+    $desc = sql_fetsel('*', 'spip_auteurs', 'cookie_oubli=' . sql_quote($jeton, '', 'string'));
371 371
 
372
-	return $desc;
372
+    return $desc;
373 373
 }
374 374
 
375 375
 /**
@@ -379,5 +379,5 @@  discard block
 block discarded – undo
379 379
  * @return bool
380 380
  */
381 381
 function auteur_effacer_jeton($id_auteur) {
382
-	return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur=' . intval($id_auteur));
382
+    return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur=' . intval($id_auteur));
383 383
 }
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -56,7 +56,7 @@  discard block
 block discarded – undo
56 56
 	}
57 57
 
58 58
 	include_spip('base/abstract_sql');
59
-	$res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email=' . sql_quote($desc['email']));
59
+	$res = sql_select('statut, id_auteur, login, email, nom', 'spip_auteurs', 'email='.sql_quote($desc['email']));
60 60
 	// erreur ?
61 61
 	if (!$res) {
62 62
 		return _T('titre_probleme_technique');
@@ -207,11 +207,11 @@  discard block
 block discarded – undo
207 207
 
208 208
 	$login = $login_base;
209 209
 
210
-	for ($i = 1;; $i++) {
210
+	for ($i = 1; ; $i++) {
211 211
 		if (!sql_countsel('spip_auteurs', "login='$login'")) {
212 212
 			return $login;
213 213
 		}
214
-		$login = $login_base . $i;
214
+		$login = $login_base.$i;
215 215
 	}
216 216
 
217 217
 	return $login;
@@ -348,8 +348,8 @@  discard block
 block discarded – undo
348 348
 	// s'assurer de l'unicite du jeton pour le couple (email,cookie)
349 349
 	do {
350 350
 		$jeton = creer_uniqid();
351
-		sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton], 'id_auteur=' . intval($id_auteur));
352
-	} while (sql_countsel('spip_auteurs', 'cookie_oubli=' . sql_quote($jeton)) > 1);
351
+		sql_updateq('spip_auteurs', ['cookie_oubli' => $jeton], 'id_auteur='.intval($id_auteur));
352
+	} while (sql_countsel('spip_auteurs', 'cookie_oubli='.sql_quote($jeton)) > 1);
353 353
 
354 354
 	return $jeton;
355 355
 }
@@ -367,7 +367,7 @@  discard block
 block discarded – undo
367 367
 	}
368 368
 
369 369
 	// on peut tomber sur un jeton compose uniquement de chiffres, il faut forcer le $type pour sql_quote pour eviter de planter
370
-	$desc = sql_fetsel('*', 'spip_auteurs', 'cookie_oubli=' . sql_quote($jeton, '', 'string'));
370
+	$desc = sql_fetsel('*', 'spip_auteurs', 'cookie_oubli='.sql_quote($jeton, '', 'string'));
371 371
 
372 372
 	return $desc;
373 373
 }
@@ -379,5 +379,5 @@  discard block
 block discarded – undo
379 379
  * @return bool
380 380
  */
381 381
 function auteur_effacer_jeton($id_auteur) {
382
-	return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur=' . intval($id_auteur));
382
+	return sql_updateq('spip_auteurs', ['cookie_oubli' => ''], 'id_auteur='.intval($id_auteur));
383 383
 }
Please login to merge, or discard this patch.