From b63e0f54f334ead57adc5a40547d3b3a87abf444 Mon Sep 17 00:00:00 2001 From: tofulm Date: Wed, 12 Aug 2020 12:14:14 +0200 Subject: [PATCH] ajout de l'uncite du mail en fonction de la conf --- formulaires/editer_compte_spip.php | 46 ++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/formulaires/editer_compte_spip.php b/formulaires/editer_compte_spip.php index 9a2ca42..a52daa4 100644 --- a/formulaires/editer_compte_spip.php +++ b/formulaires/editer_compte_spip.php @@ -20,6 +20,10 @@ function formulaires_editer_compte_spip_charger_dist($id_auteur = 'new', $redir function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redirect = ''){ $erreurs = array(); + $mode = lire_config('comptespip/statut'); + if (!in_array($mode, ['6forum', '1comite', '0minirezo'])) { + $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici'); + } // mot de passe if (_request('password') != _request('password_confirmation')){ @@ -39,12 +43,50 @@ function formulaires_editer_compte_spip_verifier_dist($id_auteur = 'new', $redi //} // email - if (!$email = strval(_request('email'))) { + if (!$mail = strval(_request('email'))) { $erreurs['email'] = _T('info_obligatoire'); } else { include_spip('inc/filtres'); - if (!email_valide($email)) { + if (!email_valide($mail)) { $erreurs['email'] = _T('info_email_invalide'); + } else { + $unicite_email = lire_config('comptespip/unicite_email'); + if ( $unicite_email !== "non") { + include_spip('action/inscrire_auteur'); + if (function_exists('test_inscription')) { + $f = 'test_inscription'; + } else { + $f = 'test_inscription_dist'; + } + $declaration = $f($mode, $mail, _request('nom'), $id); + if (is_string($declaration)) { + $k = (strpos($declaration, 'mail') !== false) ? + 'mail_inscription' : 'nom_inscription'; + $erreurs[$k] = _T($declaration); + } else { + include_spip('base/abstract_sql'); + + if ($row = sql_fetsel( + 'statut, id_auteur, login, email', + 'spip_auteurs', + 'email=' . sql_quote($declaration['email']) + )) { + if (($row['statut'] == '5poubelle') and empty($declaration['pass'])) { + // irrecuperable + $erreurs['message_erreur'] = _T('form_forum_access_refuse'); + } else { + if (($row['statut'] != 'nouveau') and empty($declaration['pass'])) { + if (intval($row['statut']) > intval($mode)) { + set_request('_upgrade_auteur', $row['id_auteur']); + } else { + // deja inscrit + $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre'); + } + } + } + } + } + } } }