[SPIP] ~maj 3.0.10 --> 3.0.14
[lhc/web/www.git] / www / prive / formulaires / editer_auteur.php
index 4076758..0e1b3fe 100644 (file)
@@ -61,9 +61,13 @@ function formulaires_editer_auteur_verifier_dist($id_auteur='new', $retour='', $
        $auth_methode = sql_getfetsel('source','spip_auteurs','id_auteur='.intval($id_auteur));
        $auth_methode = ($auth_methode ? $auth_methode : 'spip');
        include_spip('inc/auth');
+       include_spip('inc/filtres');
+
+       if (!nom_acceptable(_request('nom'))) {
+               $erreurs['nom'] = _T("info_nom_pas_conforme");
+       }
 
        if ($email = _request('email')){
-               include_spip('inc/filtres');
                include_spip('inc/autoriser');
                // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
                if (!autoriser('modifier','auteur',$id_auteur,null,array('email'=>'?'))
@@ -76,6 +80,26 @@ function formulaires_editer_auteur_verifier_dist($id_auteur='new', $retour='', $
                else if (!email_valide($email)){
                        $erreurs['email'] = (($id_auteur==$GLOBALS['visiteur_session']['id_auteur'])?_T('form_email_non_valide'):_T('form_prop_indiquer_email'));
                }
+
+               # Ne pas autoriser d'avoir deux auteurs avec le même email
+               # cette fonctionalité nécessite que la base soit clean à l'activation : pas de
+               # doublon sur la requête select email,count(*) from spip_auteurs group by email ;
+               if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
+                       #Nouvel auteur
+                       if (intval($id_auteur)==0) {
+                               #Un auteur existe deja avec cette adresse ?
+                               if (sql_countsel("spip_auteurs", "email=".sql_quote($email)) > 0)
+                                       $erreurs['email'] = _T('erreur_email_deja_existant');
+                       } else {
+                               #Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
+                               if ((sql_countsel("spip_auteurs", "email=".sql_quote($email)) > 0) AND ($id_auteur!=($id_auteur_ancien=sql_getfetsel('id_auteur', 'spip_auteurs', "email=".sql_quote($email)))))
+                                       $erreurs['email'] = _T('erreur_email_deja_existant');
+                       }
+               }
+       }
+
+       if (preg_match(",^\s*javascript,i", _request('url_site'))) {
+               $erreurs['url_site'] = _T('info_url_site_pas_conforme');
        }
 
        if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)){