Changeset 108447 in spip-zone


Ignore:
Timestamp:
Jan 11, 2018, 9:18:05 AM (17 months ago)
Author:
erational@…
Message:

Version SPIP 3.2: on met à jour les surcharges avec les évolutions du core
TODO: dans la fonction generer mot de passe il faudrait tenir compte des constraintes imposées par le plugin

Location:
_plugins_/motpassecomplexe/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/motpassecomplexe/trunk/formulaires/editer_auteur.html

    r102750 r108447  
    44        [(#ENV{editable})
    55        <form method='post' action='#ENV{action}'><div>
    6                 [(#REM) declarer les hidden qui declencheront le service du formulaire 
     6                [(#REM) declarer les hidden qui declencheront le service du formulaire
    77                parametre : url d'action ]
    88                #ACTION_FORMULAIRE{#ENV{action}}
    99                <input type='hidden' name='id_auteur' value='#ENV{id_auteur}' />
    1010                [<input type='hidden' name='redirect' value='(#ENV**{redirect})' />]
    11                 <ul class="editer-groupe">
    12                         <li class="editer editer_nom obligatoire[ (#ENV**{erreurs}|table_valeur{nom}|oui)erreur]">
     11                <div class="editer-groupe">
     12                        <div class="editer editer_nom obligatoire[ (#ENV**{erreurs}|table_valeur{nom}|oui)erreur]">
    1313                                <label for="nom"><:titre_cadre_signature_obligatoire:></label>[
    1414                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{nom})</span>
    1515                                ][<p class='explication'>(#ENV{id_auteur}|=={#SESSION{id_auteur}}|?{<:entree_nom_pseudo:>,<:entree_nom_pseudo_2:>})</p>]
    1616                                <input type='text' class='text' name='nom' id='nom' placeholder="<:ecrire:item_nouvel_auteur|attribut_html:>" value="[(#ENV**{nom})]" />
    17                         </li>
     17                        </div>
    1818                        [(#REM)
    1919                                Modification de l'email
    2020                                ou message disant que seuls les admins peuvent le modifier
    2121                        ]
    22                         <li class="editer editer_email[ (#ENV**{erreurs}|table_valeur{email}|oui)erreur]">
     22                        <div class="editer editer_email[ (#ENV**{erreurs}|table_valeur{email}|oui)erreur]">
    2323                                [<label for="email">(#ENV{id_auteur}|=={#SESSION{id_auteur}}|?{<:entree_adresse_email:>,<:entree_adresse_email_2:>})</label>][
    2424                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{email})</span>
    2525                                ]<input type='text' class='text' name='email' id='email' value="[(#ENV**{email})]" />
    26                         </li>
    27                         <li class="editer editer_bio[ (#ENV**{erreurs}|table_valeur{bio}|oui)erreur]">
     26                        </div>
     27                        <div class="editer editer_bio[ (#ENV**{erreurs}|table_valeur{bio}|oui)erreur]">
    2828                                [<label for="bio">(#ENV{id_auteur}|=={#SESSION{id_auteur}}|?{<:entree_infos_perso:>,<:entree_infos_perso_2:>})</label>][
    2929                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{bio})</span>
    3030                                ]<p class="explication"><:entree_biographie:></p>
    3131                                <textarea name='bio' id='bio' rows='4' cols='40'>[(#ENV**{bio})]</textarea>
    32                         </li>
     32                        </div>
    3333                        [(#REM)
    3434                                Cle PGP
    3535                        ]
    36                         <li class="editer editer_pgp[ (#ENV**{erreurs}|table_valeur{pgp}|oui)erreur]">
     36                        <div class="editer editer_pgp[ (#ENV**{erreurs}|table_valeur{pgp}|oui)erreur]">
    3737                                [<label for="pgp">(#ENV{id_auteur}|=={#SESSION{id_auteur}}|?{<:entree_cle_pgp:>,<:entree_cle_pgp_2:>})</label>][
    3838                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{pgp})</span>
    3939                                ]<textarea name='pgp' id='pgp' rows='4' cols='40'>[(#ENV**{pgp})]</textarea>
    40                         </li>
     40                        </div>
    4141                        [(#REM)
    4242                                Statut
    4343                        ]
    4444                        [(#AUTORISER{modifier,auteur,#ID_AUTEUR,'',#ARRAY{statut,'?'}}|oui)
    45                         <li class='editer editer_statut'>
     45                        <div class='editer editer_statut'>
    4646                                #INCLURE{fond=formulaires/inc-instituer_auteur,statut=#ENV**{statut,#EVAL{_STATUT_AUTEUR_CREATION}},id_auteur,webmestre}
    47                         </li>]
     47                        </div>]
    4848                        [(#REM)
    4949                                Site Web : nom et url
    5050                        ]
    51                         <li class='editer editer_liens_sites fieldset'>
     51                        <div class='editer_liens_sites fieldset'>
    5252                                <fieldset>
    5353                                        <legend><:info_site_web:></legend>
    54                                         <ul>
    55                                                 <li class="editer editer_nom_site[ (#ENV**{erreurs}|table_valeur{nom_site_auteur}|oui)erreur]">
     54                                        <div class="editer-groupe">
     55                                                <div class="editer editer_nom_site[ (#ENV**{erreurs}|table_valeur{nom_site_auteur}|oui)erreur]">
    5656                                                        [<label for="nom_site">(#ENV{id_auteur}|=={#SESSION{id_auteur}}|?{<:entree_nom_site:>,<:entree_nom_site_2:>})</label>][
    5757                                                        <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{nom_site_auteur})</span>
    5858                                                        ]<input type='text' class='text' name='nom_site' id='nom_site' value="[(#ENV**{nom_site})]" />
    59                                                 </li>
    60                                                 <li class="editer editer_url_site[ (#ENV**{erreurs}|table_valeur{url_site}|oui)erreur]">
     59                                                </div>
     60                                                <div class="editer editer_url_site[ (#ENV**{erreurs}|table_valeur{url_site}|oui)erreur]">
    6161                                                        [<label for="url_site">(#ENV{id_auteur}|=={#SESSION{id_auteur}}|?{<:entree_url:>,<:entree_url_2:>})</label>][
    6262                                                        <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{url_site})</span>
    6363                                                        ]<input type='text' class='text' name='url_site' id='url_site' value="[(#ENV**{url_site})]" />
    64                                                 </li>
    65                                         </ul>
     64                                                </div>
     65                                        </div>
    6666                                </fieldset>
    67                         </li>
     67                        </div>
    6868                        [(#REM)
    6969                                Identifiants (nom, mot de passe)
    7070                        ]
    71                         <li class='editer editer_identification fieldset'>
     71                        <div class='editer_identification fieldset'>
    7272                                <fieldset>
    7373                                        [<legend>(#ENV{id_auteur}|=={#SESSION{id_auteur}}|?{<:entree_identifiants_connexion:>,<:entree_identifiants_connexion_2:>})</legend>]
     
    7878                                                <div class='notice'><:texte_login_precaution:></div>
    7979                                        ]
    80                                         <ul>
     80                                        <div class="editer-groupe">
    8181                                                [(#REM) Un redacteur n'a pas le droit de modifier son login ! ]
    82                                                 <li class='editer editer_new_login[ (#ENV**{erreurs}|table_valeur{login}|oui)erreur]'>
     82                                                <div class='editer editer_new_login[ (#ENV**{erreurs}|table_valeur{login}|oui)erreur]'>
    8383                                                        [(#ENV{config}|table_valeur{edit_login}|oui)
    8484                                                                <label for='new_login'><:item_login:></label>[
     
    9292                                                                <input type='text' class='text' disabled='disabled' name='login' id='login' value="[(#ENV**{login})]" />
    9393                                                        ]
    94                                                 </li>
    95                                                 [(#ENV{config}|table_valeur{edit_pass}|oui)     
    96                                                 <li class='editer editer_new_pass[ (#ENV**{erreurs}|table_valeur{new_pass}|oui)erreur]'>
     94                                                </div>
     95                                                [(#ENV{config}|table_valeur{edit_pass}|oui)
     96                                                <div class='editer editer_new_pass[ (#ENV**{erreurs}|table_valeur{new_pass}|oui)erreur]'>
    9797                                                        <label for='new_pass'><:entree_nouveau_passe:></label>[
    9898                                                        <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{new_pass})</span>
    99                                                         ]<p class='explication'>(<:motpassecomplexe:info_passe_trop_court{nb=#EVAL{_PASS_LONGUEUR_MINI},nb_min=#EVAL{_MOTCOMPLEXE_MINUSCULE},nb_maj=#EVAL{_MOTCOMPLEXE_MAJUSCULE},nb_int=#EVAL{_MOTCOMPLEXE_CHIFFRE},nb_spe=#EVAL{_MOTCOMPLEXE_SPECIAL}}:>)</p>
     99                                                        ]<p class='explication'><:motpassecomplexe:info_passe_trop_court{nb=#EVAL{_PASS_LONGUEUR_MINI},nb_min=#EVAL{_MOTCOMPLEXE_MINUSCULE},nb_maj=#EVAL{_MOTCOMPLEXE_MAJUSCULE},nb_int=#EVAL{_MOTCOMPLEXE_CHIFFRE},nb_spe=#EVAL{_MOTCOMPLEXE_SPECIAL}}:></p>
    100100                                                        <input type='password' autocomplete="off" class='password' name='new_pass' id='new_pass' value="" />
    101                                                 </li>
    102                                                 <li class='editer editer_new_pass2'>
     101                                                </div>
     102                                                <div class='editer editer_new_pass2'>
    103103                                                        <label for='new_pass2'><:info_confirmer_passe:></label>[
    104104                                                        <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{new_pass2})</span>
    105105                                                        ]<input type='password' autocomplete="off" class='password' name='new_pass2' id='new_pass2' value="" />
    106                                                 </li>]
    107                                         </ul>
     106                                                        [(#ENV{config/edit_pass}|oui)
     107                                                        <input type="submit" class="over offscreen" name="submit" value="submit" />
     108                                                        <button class="submit reset_password" type="submit" name="reset_password" value="1" style="margin-top:5px"><:bouton_reset_password:></button>
     109                                                        ]
     110                                                </div>]
     111                                        </div>
    108112                                </fieldset>
    109                         </li>
    110                 </ul>
     113                        </div>
     114                </div>
    111115                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    112116                <!--extra-->
  • _plugins_/motpassecomplexe/trunk/formulaires/editer_auteur.php

    r96779 r108447  
    162162        include_spip("motpassecomplexe_fonctions");   // PLUGIN MOTPASSECOMPLEXE
    163163        if (!nom_acceptable(_request('nom'))) {
    164                 $erreurs['nom'] = _T("info_nom_pas_conforme");
     164                $erreurs['nom'] = _T('info_nom_pas_conforme');
    165165        }
    166166
     
    187187                        if (intval($id_auteur) == 0) {
    188188                                #Un auteur existe deja avec cette adresse ?
    189                                 if (sql_countsel("spip_auteurs", "email=" . sql_quote($email)) > 0) {
     189                        if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
    190190                                        $erreurs['email'] = _T('erreur_email_deja_existant');
    191191                                }
    192192                        } else {
    193193                                #Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
    194                                 if ((sql_countsel("spip_auteurs",
    195                                                         "email=" . sql_quote($email)) > 0) and ($id_auteur != ($id_auteur_ancien = sql_getfetsel('id_auteur',
    196                                                         'spip_auteurs', "email=" . sql_quote($email))))
    197                                 ) {
     194                                if ((sql_countsel(
     195                                        'spip_auteurs',
     196                                        'email=' . sql_quote($email)
     197                                ) > 0) and ($id_auteur != ($id_auteur_ancien = sql_getfetsel(
     198                                        'id_auteur',
     199                                        'spip_auteurs',
     200                                        'email=' . sql_quote($email)
     201                                )))) {
    198202                                        $erreurs['email'] = _T('erreur_email_deja_existant');
    199203                                }
     
    202206        }
    203207
    204         if (preg_match(",^\s*javascript,i", _request('url_site'))) {
     208        if (!count($erreurs) and _request('reset_password')) {
     209                $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
     210                $config = auteurs_edit_config($auteur);
     211                if ($config['edit_pass']) {
     212                        if ($email = auteur_regenerer_identifiants($id_auteur)) {
     213                                $erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', array('email' => $email));
     214                                $erreurs['message_erreur'] = '';
     215                        } elseif ($email === false) {
     216                                $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
     217                        } else {
     218                                $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_creation');
     219                        }
     220                } else {
     221                        $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_creation');
     222                }
     223                return $erreurs;
     224        }
     225
     226        // corriger un cas si frequent : www.example.org sans le http:// qui precede
     227        if ($url = _request('url_site') and !tester_url_absolue($url)) {
     228                if (strpos($url, ':') === false and strncasecmp($url, 'www.', 4) === 0) {
     229                        $url = 'http://' . $url;
     230                        set_request('url_site', $url);
     231                }
     232        }
     233        // traiter les liens implicites avant de tester l'url
     234        include_spip('inc/lien');
     235        if ($url = calculer_url(_request('url_site')) and !tester_url_absolue($url)) {
    205236                $erreurs['url_site'] = _T('info_url_site_pas_conforme');
    206237        }
     
    217248                                $erreurs['new_pass'] = _T('info_passes_identiques');
    218249                                $erreurs['message_erreur'] .= _T('info_passes_identiques');
    219                         }
    220                         elseif ($err = motpassecomplexe_verifier_pass(_request('new_pass'))){     // PLUGIN MOTPASSECOMPLEXE
     250                        } elseif ($err = motpassecomplexe_verifier_pass(_request('new_pass'))){     // PLUGIN MOTPASSECOMPLEXE
    221251                                $erreurs['new_pass'] = $err;
    222252                                $erreurs['message_erreur'] .= $err;
    223                         }
    224                         elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
     253                        } elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
    225254                                $erreurs['new_pass'] = $err;
    226255                                $erreurs['message_erreur'] .= $err;
     
    282311        $retour = parametre_url($retour, 'email_confirm', '');
    283312
    284         set_request('email',
    285                 email_valide(_request('email'))); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
     313        set_request(
     314                'email',
     315                email_valide(_request('email'))
     316        ); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
    286317        // "Marie@toto.com  " ou encore "Marie Toto <Marie@toto.com>"
    287318
     
    295326                // et de revenir sur son profil
    296327                if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
    297                         and $email_nouveau != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
     328                        and $email_nouveau !=
     329                                ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))
    298330                ) {
    299331                        $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    300                         $texte = _T('form_auteur_mail_confirmation',
     332                        $texte = _T(
     333                                'form_auteur_mail_confirmation',
    301334                                array(
    302                                         'url' => generer_action_auteur('confirmer_email', $email_nouveau, parametre_url($retour, 'email_modif', 'ok'))
    303                                 ));
     335                                        'url' => generer_action_auteur(
     336                                                'confirmer_email',
     337                                                $email_nouveau,
     338                                                parametre_url($retour, 'email_modif', 'ok')
     339                                        )
     340                                )
     341                        );
    304342                        $envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
    305343                        set_request('email_confirm', $email_nouveau);
     
    327365                        auteur_associer($id_auteur, array($objet => $id_objet));
    328366                        if (isset($res['redirect'])) {
    329                                 $res['redirect'] = parametre_url($res['redirect'], "id_lien_ajoute", $id_auteur, '&');
     367                                $res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_auteur, '&');
    330368                        }
    331369                }
     
    334372        return $res;
    335373}
     374
     375
     376/**
     377 * Renvoyer des identifiants
     378 * @param int $id_auteur
     379 * @param bool $notifier
     380 * @param array $contexte
     381 * @return string
     382 */
     383function auteur_regenerer_identifiants($id_auteur, $notifier=true, $contexte = array()) {
     384        if ($id_auteur){
     385                $set = array();
     386                include_spip('inc/access');
     387                $set['pass'] = creer_pass_aleatoire();
     388
     389                include_spip('action/editer_auteur');
     390                auteur_modifier($id_auteur,$set);
     391
     392                $row = sql_fetsel('*','spip_auteurs','id_auteur='.intval($id_auteur));
     393                include_spip('inc/filtres');
     394                if ($notifier
     395                        and $row['email']
     396                        and email_valide($row['email'])
     397                  and trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')){
     398                        // envoyer l'email avec login/pass
     399                        $c = array(
     400                                'id_auteur' => $id_auteur,
     401                                'nom' => $row['nom'],
     402                                'mode' => $row['statut'],
     403                                'email' => $row['email'],
     404                                'pass' => $set['pass'],
     405                        );
     406                        // on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
     407                        $contexte = array_merge($contexte, $c);
     408                        $message = recuperer_fond($fond, $contexte);
     409                        include_spip("inc/notifications");
     410                        notifications_envoyer_mails($row['email'],$message);
     411
     412                        return $row['email'];
     413                }
     414
     415                return false;
     416
     417        }
     418
     419        return '';
     420}
  • _plugins_/motpassecomplexe/trunk/formulaires/mot_de_passe.php

    r96779 r108447  
    44 *  SPIP, Systeme de publication pour l'internet                           *
    55 *                                                                         *
    6  *  Copyright (c) 2001-2014                                                *
     6 *  Copyright (c) 2001-2016                                                *
    77 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    88 *                                                                         *
     
    1111\***************************************************************************/
    1212
    13 if (!defined('_ECRIRE_INC_VERSION')) return;
     13if (!defined('_ECRIRE_INC_VERSION')) {
     14        return;
     15}
    1416
    1517include_spip('base/abstract_sql');
    16  
    17 function retrouve_auteur($id_auteur,$jeton=''){
    18         if ($id_auteur=intval($id_auteur)) {
    19                 return sql_fetsel('*','spip_auteurs',array('id_auteur='.intval($id_auteur),"statut<>'5poubelle'","pass<>''"));
    20         }
    21         elseif ($jeton) {
     18
     19function retrouve_auteur($id_auteur, $jeton = '') {
     20        if ($id_auteur = intval($id_auteur)) {
     21                return sql_fetsel(
     22                        '*',
     23                        'spip_auteurs',
     24                        array('id_auteur=' . intval($id_auteur), "statut<>'5poubelle'", "pass<>''")
     25                );
     26        } elseif ($jeton) {
    2227                include_spip('action/inscrire_auteur');
    2328                if ($auteur = auteur_verifier_jeton($jeton)
    24                   AND $auteur['statut']<>'5poubelle'
    25                   AND $auteur['pass']<>''){
     29                        and $auteur['statut'] <> '5poubelle'
     30                        and $auteur['pass'] <> ''
     31                ) {
    2632                        return $auteur;
    2733                }
    2834        }
     35
    2936        return false;
    3037}
    31  
     38
    3239// chargement des valeurs par defaut des champs du formulaire
    3340/**
     
    4047 * @return array
    4148 */
    42 function formulaires_mot_de_passe_charger_dist($id_auteur=null, $jeton=null){
     49function formulaires_mot_de_passe_charger_dist($id_auteur = null, $jeton = null) {
    4350
    4451        $valeurs = array();
    4552        // compatibilite anciens appels du formulaire
    46         if (is_null($jeton)) $jeton = _request('p');
    47         $auteur = retrouve_auteur($id_auteur,$jeton);
     53        if (is_null($jeton)) {
     54                $jeton = _request('p');
     55        }
     56        $auteur = retrouve_auteur($id_auteur, $jeton);
    4857
    49         if ($auteur){
     58        if ($auteur) {
    5059                $valeurs['id_auteur'] = $id_auteur; // a toutes fins utiles pour le formulaire
    51                 if ($jeton)
    52                         $valeurs['_hidden'] = '<input type="hidden" name="p" value="'.$jeton.'" />';
     60                if ($jeton) {
     61                        $valeurs['_hidden'] = '<input type="hidden" name="p" value="' . $jeton . '" />';
     62                }
     63        } else {
     64                $valeurs['_hidden'] = _T('pass_erreur_code_inconnu');
     65                $valeurs['editable'] = false; // pas de saisie
    5366        }
    54         else {
    55                 $valeurs['message_erreur'] = _T('pass_erreur_code_inconnu');
    56                 $valeurs['editable'] =  false; // pas de saisie
    57         }
    58         $valeurs['oubli']='';
    59         $valeurs['nobot']='';
     67        $valeurs['oubli'] = '';
     68        $valeurs['nobot'] = '';
     69
    6070        return $valeurs;
    6171}
     
    6373/**
    6474 * Verification de la saisie du mot de passe.
    65  * On verifie qu'un mot de passe est saisi, et que sa longueur est suffisante
     75 * On verifie qu'un mot de passe est saisi, et que sa longuer est suffisante
    6676 * Ce serait le lieu pour verifier sa qualite (caracteres speciaux ...)
    6777 *
     
    6979 */
    7080function formulaires_mot_de_passe_verifier_dist($id_auteur=null, $jeton=null){
    71         include_spip("motpassecomplexe_fonctions");   // PLUGIN MOTPASSECOMPLEXE
    72  
    73   $erreurs = array();
    74  
    75   if (!_request('oubli')) 
    76                 $erreurs['oubli'] = _T('info_obligatoire');   
    77   else if ( $erreur_motpasse = motpassecomplexe_verifier_pass($p = _request('oubli')) )      // PLUGIN MOTPASSECOMPLEXE
    78     $erreurs['oubli'] = $erreur_motpasse;  // PLUGIN MOTPASSECOMPLEXE
    79   else {               
    80     if (!is_null($c = _request('oubli_confirm'))){
    81                         if (!$c)
    82                                 $erreurs['oubli_confirm'] = _T('info_obligatoire');
    83                         elseif ($c!==$p)
    84                                 $erreurs['oubli'] = _T('info_passes_identiques');
     81        include_spip("motpassecomplexe_fonctions");             // PLUGIN MOTPASSECOMPLEXE
     82
     83        $erreurs = array();
     84
     85        if (!_request('oubli')) {
     86                $erreurs['oubli'] = _T('info_obligatoire');
     87        } else if ( $erreur_motpasse = motpassecomplexe_verifier_pass($p = _request('oubli')) ) { // PLUGIN MOTPASSECOMPLEXE
     88                $erreurs['oubli'] = $erreur_motpasse; // PLUGIN MOTPASSECOMPLEXE
     89        } else {
     90                if (strlen($p = _request('oubli')) < _PASS_LONGUEUR_MINI) {
     91                        $erreurs['oubli'] = _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
     92                } else {
     93                        if (!is_null($c = _request('oubli_confirm'))) {
     94                                if (!$c) {
     95                                        $erreurs['oubli_confirm'] = _T('info_obligatoire');
     96                                } elseif ($c !== $p) {
     97                                        $erreurs['oubli'] = _T('info_passes_identiques');
     98                                }
     99                        }
    85100                }
    86101        }
     
    91106        }
    92107
    93         if (_request('nobot'))
     108        if (_request('nobot')) {
    94109                $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
    95        
     110        }
     111
    96112        return $erreurs;
    97113}
     
    103119 * @param int $id_auteur
    104120 */
    105 function formulaires_mot_de_passe_traiter_dist($id_auteur=null, $jeton=null){
    106         $res = array('message_ok'=>'');
     121function formulaires_mot_de_passe_traiter_dist($id_auteur = null, $jeton = null) {
     122        $res = array('message_ok' => '');
    107123        refuser_traiter_formulaire_ajax(); // puisqu'on va loger l'auteur a la volee (c'est bonus)
    108124
    109125        // compatibilite anciens appels du formulaire
    110         if (is_null($jeton)) $jeton = _request('p');
    111         $row = retrouve_auteur($id_auteur,$jeton);
     126        if (is_null($jeton)) {
     127                $jeton = _request('p');
     128        }
     129        $row = retrouve_auteur($id_auteur, $jeton);
    112130
    113131        if ($row
    114          && ($id_auteur = $row['id_auteur'])
    115          && ($oubli = _request('oubli'))) {
     132                && ($id_auteur = $row['id_auteur'])
     133                && ($oubli = _request('oubli'))
     134        ) {
    116135                include_spip('action/editer_auteur');
    117136                include_spip('action/inscrire_auteur');
    118                 if ($err = auteur_modifier($id_auteur, array('pass'=>$oubli))){
    119                         $res = array('message_erreur'=>$err);
    120                 }
    121                 else {
     137                if ($err = auteur_modifier($id_auteur, array('pass' => $oubli))) {
     138                        $res = array('message_erreur' => $err);
     139                } else {
    122140                        auteur_effacer_jeton($id_auteur);
    123141                        $login = $row['login'];
    124                         $res['message_ok'] = "<b>" . _T('pass_nouveau_enregistre') . "</b>".
    125                         "<br />" . _T('pass_rappel_login', array('login' => $login));
     142                        $res['message_ok'] = '<b>' . _T('pass_nouveau_enregistre') . '</b>' .
     143                                '<br />' . _T('pass_rappel_login', array('login' => $login));
    126144
    127145                        include_spip('inc/auth');
    128                         $row = sql_fetsel("*","spip_auteurs","id_auteur=".intval($id_auteur));
     146                        $row = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
    129147                        auth_loger($row);
    130148                }
    131149        }
     150
    132151        return $res;
    133152}
    134 ?>
  • _plugins_/motpassecomplexe/trunk/lang/motpassecomplexe_fr.php

    r96779 r108447  
    22// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
    33
    4 if (!defined('_ECRIRE_INC_VERSION')) return;
     4if (!defined('_ECRIRE_INC_VERSION')) {
     5        return;
     6}
    57
    68$GLOBALS[$GLOBALS['idx_lang']] = array(
     
    810        // M
    911        'motpassecomplexe_titre' => 'Mot de passe complexe',
    10  
    11   // I
    12   'info_passe_trop_court' => 'Le mot de passe doit contenir au moins @nb@ caractères dont @nb_min@ minuscule(s),  @nb_maj@ majuscules(s), @nb_int@ chiffes(s) et @nb_spe@ caractère(s) spéciaux.',
     12
     13        // I
     14        'info_passe_trop_court' => 'Le mot de passe doit contenir au moins @nb@ caractères dont @nb_min@ minuscule(s),  @nb_maj@ majuscules(s), @nb_int@ chiffes(s) et @nb_spe@ caractère(s) spéciaux.',
    1315);
    1416
  • _plugins_/motpassecomplexe/trunk/lang/paquet-motpassecomplexe_fr.php

    r96779 r108447  
    22// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
    33
    4 if (!defined('_ECRIRE_INC_VERSION')) return;
     4if (!defined('_ECRIRE_INC_VERSION')) {
     5        return;
     6}
    57
    68$GLOBALS[$GLOBALS['idx_lang']] = array(
     
    1214);
    1315
    14 ?>
  • _plugins_/motpassecomplexe/trunk/motpassecomplexe_fonctions.php

    r96779 r108447  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4        return;
     5}
    46
    57/**
     
    1416function motpassecomplexe_verifier_pass($new_pass){
    1517
    16   // charge les constantes
    17   // define('_PASS_LONGUEUR_MINI', '6');                                         // longueur  - defaut: 6
    18   if (!defined('_MOTCOMPLEXE_MINUSCULE')) define('_MOTCOMPLEXE_MINUSCULE', 1);    // nb de minuscules  - defaut: 1
    19   if (!defined('_MOTCOMPLEXE_MAJUSCULE')) define('_MOTCOMPLEXE_MAJUSCULE', 1);    // nb de majuscules  - defaut: 1
    20   if (!defined('_MOTCOMPLEXE_CHIFFRE')) define('_MOTCOMPLEXE_CHIFFRE', 1);        // nb de chiffres  - defaut: 1
    21   if (!defined('_MOTCOMPLEXE_SPECIAL')) define('_MOTCOMPLEXE_SPECIAL', 1);        // nb de caractères spéciaux  - defaut: 1
    22  
    23   $requis = array (
    24           'nb' => _PASS_LONGUEUR_MINI,
    25           'nb_min' => _MOTCOMPLEXE_MINUSCULE,
    26           'nb_maj' => _MOTCOMPLEXE_MAJUSCULE,
    27           'nb_int' => _MOTCOMPLEXE_CHIFFRE,
    28           'nb_spe' => _MOTCOMPLEXE_SPECIAL,         
    29   );
    30  
    31   $nb =      strlen($new_pass);
    32   $nb_min =  motpassecomplexe_count_pattern($new_pass, '![^a-z]+!');
    33   $nb_maj =  motpassecomplexe_count_pattern($new_pass, '![^A-Z]+!');
    34   $nb_int =  motpassecomplexe_count_pattern($new_pass, '![^0-9]+!');
    35   $nb_spe =  $nb - motpassecomplexe_count_pattern($new_pass, '![^A-z0-9 ]+!');
    36  
    37   $verifications = array( 
    38         array (
    39           'constante' => _PASS_LONGUEUR_MINI,
    40           'operateur' => '>=',
    41           'variable' =>  $nb,
    42         ),
    43         array (
    44           'constante' => _MOTCOMPLEXE_MINUSCULE,
    45           'operateur' => '>=',
    46           'variable' =>  $nb_min,
    47         ),
    48         array (
    49           'constante' => _MOTCOMPLEXE_MAJUSCULE,
    50           'operateur' => '>=',
    51           'variable' =>  $nb_maj,
    52         ),
    53         array (
    54           'constante' => _MOTCOMPLEXE_CHIFFRE,
    55           'operateur' => '>=',
    56           'variable' =>  $nb_int,
    57         ),
    58         array (
    59           'constante' => _MOTCOMPLEXE_SPECIAL,
    60           'operateur' => '>=',
    61           'variable' =>  $nb_spe,       
    62         ),   
    63   );
    64  
     18         // charge les constantes
     19        // define('_PASS_LONGUEUR_MINI', '6');                                                                                  // longueur minimale - defaut: 6
     20        if (!defined('_MOTCOMPLEXE_MINUSCULE')) define('_MOTCOMPLEXE_MINUSCULE', 1);    // nb de minuscules  - defaut: 1
     21        if (!defined('_MOTCOMPLEXE_MAJUSCULE')) define('_MOTCOMPLEXE_MAJUSCULE', 1);    // nb de majuscules  - defaut: 1
     22        if (!defined('_MOTCOMPLEXE_CHIFFRE')) define('_MOTCOMPLEXE_CHIFFRE', 1);                // nb de chiffres  - defaut: 1
     23        if (!defined('_MOTCOMPLEXE_SPECIAL')) define('_MOTCOMPLEXE_SPECIAL', 1);                // nb de caractères spéciaux  - defaut: 1
    6524
    66   foreach ($verifications as $verification) {         
    67        if (!version_compare($verification['variable'], $verification['constante'], $verification['operateur']))
    68                   return _T('motpassecomplexe:info_passe_trop_court', $requis);
    69   }
    70    
     25        $requis = array (
     26                'nb' => _PASS_LONGUEUR_MINI,
     27                'nb_min' => _MOTCOMPLEXE_MINUSCULE,
     28                'nb_maj' => _MOTCOMPLEXE_MAJUSCULE,
     29                'nb_int' => _MOTCOMPLEXE_CHIFFRE,
     30                'nb_spe' => _MOTCOMPLEXE_SPECIAL,
     31        );
     32
     33        $nb = strlen($new_pass);
     34        $nb_min = motpassecomplexe_count_pattern($new_pass, '![^a-z]+!');
     35        $nb_maj = motpassecomplexe_count_pattern($new_pass, '![^A-Z]+!');
     36        $nb_int = motpassecomplexe_count_pattern($new_pass, '![^0-9]+!');
     37        $nb_spe = $nb - motpassecomplexe_count_pattern($new_pass, '![^A-z0-9 ]+!');
     38
     39        $verifications = array(
     40                array (
     41                        'constante' => _PASS_LONGUEUR_MINI,
     42                        'operateur' => '>=',
     43                        'variable' =>  $nb,
     44                ),
     45                array (
     46                        'constante' => _MOTCOMPLEXE_MINUSCULE,
     47                        'operateur' => '>=',
     48                        'variable' => $nb_min,
     49                ),
     50                array (
     51                        'constante' => _MOTCOMPLEXE_MAJUSCULE,
     52                        'operateur' => '>=',
     53                        'variable' => $nb_maj,
     54                ),
     55                array (
     56                        'constante' => _MOTCOMPLEXE_CHIFFRE,
     57                        'operateur' => '>=',
     58                        'variable' => $nb_int,
     59                ),
     60                array (
     61                        'constante' => _MOTCOMPLEXE_SPECIAL,
     62                        'operateur' => '>=',
     63                        'variable' => $nb_spe,
     64                ),
     65        );
     66
     67
     68        foreach ($verifications as $verification) {
     69                if (!version_compare($verification['variable'], $verification['constante'], $verification['operateur'])) {
     70                        return _T('motpassecomplexe:info_passe_trop_court', $requis);
     71                }
     72        }
    7173
    7274        return '';
     
    8486 */
    8587function motpassecomplexe_count_pattern($str, $pattern) {
    86   return strlen(preg_replace($pattern, '', $str));
     88        return strlen(preg_replace($pattern, '', $str));
    8789}
  • _plugins_/motpassecomplexe/trunk/motpassecomplexe_options.php

    r96779 r108447  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
     3if (!defined('_ECRIRE_INC_VERSION')) {
     4        return;
     5}
    46
    57// les constantes definissant les contraintes sur le mot de passe
    6 // define('_PASS_LONGUEUR_MINI', '6');                                          // longueur minimale - defaut: 6
    7 if (!defined('_MOTCOMPLEXE_MINUSCULE')) define('_MOTCOMPLEXE_MINUSCULE', 1);    // nb de minuscules  - defaut: 1
    8 if (!defined('_MOTCOMPLEXE_MAJUSCULE')) define('_MOTCOMPLEXE_MAJUSCULE', 1);    // nb de majuscules  - defaut: 1
    9 if (!defined('_MOTCOMPLEXE_CHIFFRE')) define('_MOTCOMPLEXE_CHIFFRE', 1);        // nb de chiffres  - defaut: 1
    10 if (!defined('_MOTCOMPLEXE_SPECIAL')) define('_MOTCOMPLEXE_SPECIAL', 1);        // nb de caractères spéciaux  - defaut: 1
     8// define('_PASS_LONGUEUR_MINI', '6');                                                                                  // longueur minimale - defaut: 6
     9if (!defined('_MOTCOMPLEXE_MINUSCULE')) define('_MOTCOMPLEXE_MINUSCULE', 1);    // nb de minuscules  - defaut: 1
     10if (!defined('_MOTCOMPLEXE_MAJUSCULE')) define('_MOTCOMPLEXE_MAJUSCULE', 1);    // nb de majuscules  - defaut: 1
     11if (!defined('_MOTCOMPLEXE_CHIFFRE')) define('_MOTCOMPLEXE_CHIFFRE', 1);                // nb de chiffres  - defaut: 1
     12if (!defined('_MOTCOMPLEXE_SPECIAL')) define('_MOTCOMPLEXE_SPECIAL', 1);                // nb de caractères spéciaux  - defaut: 1
  • _plugins_/motpassecomplexe/trunk/paquet.xml

    r108444 r108447  
    22        prefix="motpassecomplexe"
    33        categorie="auteur"
    4         version="1.1.3"
    5         etat="dev"
    6         compatibilite="[3.1.1;3.1.*]"
     4        version="1.3.0"
     5        etat="stable"
     6        compatibilite="[3.2.0;3.2.*]"
    77        logo="prive/themes/spip/images/motpassecomplexe-64.png"
    88        documentation="https://contrib.spip.net/4754"
Note: See TracChangeset for help on using the changeset viewer.