Changeset 4124


Ignore:
Timestamp:
Oct 26, 2009, 11:34:13 PM (11 years ago)
Author:
Eric
Message:

[NBC_UserAdvManager] pre 2.12.0 :

  • Adding of password enforcement control function
  • Main code refactory
  • French language file refactory
  • Admin panel refactory
Location:
extensions/NBC_UserAdvManager/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • extensions/NBC_UserAdvManager/trunk/admin/UserAdvManager_admin.php

    r4061 r4124  
    5656  case 'global':
    5757       
    58         if (isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_Mail_Info']) and isset($_POST['UserAdvManager_No_Casse']) and isset($_POST['UserAdvManager_Username_Char']) and isset($_POST['UserAdvManager_Confirm_Mail']) and isset($_POST['UserAdvManager_No_Comment_Anonymous']) and isset($_POST['UserAdvManager_Password_Enforced']))
     58        if (isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_Mail_Info']) and isset($_POST['UserAdvManager_No_Casse']) and isset($_POST['UserAdvManager_Username_Char']) and isset($_POST['UserAdvManager_Confirm_Mail']) and isset($_POST['UserAdvManager_No_Comment_Anonymous']) and isset($_POST['UserAdvManager_Password_Enforced']) and isset($_POST['UserAdvManager_AdminPassword_Enforced']))
    5959  {
    6060                $_POST['UserAdvManager_MailInfo_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_MailInfo_Text']));
    6161                $_POST['UserAdvManager_ConfirmMail_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_Text']));
    6262               
    63                 $newconf_nbc_UserAdvManager = $_POST['UserAdvManager_Mail_Info'].';'.$_POST['UserAdvManager_No_Casse'].';'.$_POST['UserAdvManager_Confirm_Mail'].';'.(isset($_POST['UserAdvManager_No_Confirm_Group'])?$_POST['UserAdvManager_No_Confirm_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Group'])?$_POST['UserAdvManager_Validated_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Status'])?$_POST['UserAdvManager_Validated_Status']:'').';'.$_POST['UserAdvManager_No_Comment_Anonymous'].';'.$_POST['UserAdvManager_Username_Char'].';'.$_POST['UserAdvManager_Username_List'].';'.(isset($_POST['UserAdvManager_No_Confirm_Status'])?$_POST['UserAdvManager_No_Confirm_Status']:'').';'.$_POST['UserAdvManager_MailInfo_Text'].';'.$_POST['UserAdvManager_ConfirmMail_Text'].';'.$_POST['UserAdvManager_MailExclusion'].';'.$_POST['UserAdvManager_MailExclusion_List'].';'.$_POST['UserAdvManager_Password_Enforced'].';'.$_POST['UserAdvManager_Password_Score'];
     63                $newconf_nbc_UserAdvManager = $_POST['UserAdvManager_Mail_Info'].';'.$_POST['UserAdvManager_No_Casse'].';'.$_POST['UserAdvManager_Confirm_Mail'].';'.(isset($_POST['UserAdvManager_No_Confirm_Group'])?$_POST['UserAdvManager_No_Confirm_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Group'])?$_POST['UserAdvManager_Validated_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Status'])?$_POST['UserAdvManager_Validated_Status']:'').';'.$_POST['UserAdvManager_No_Comment_Anonymous'].';'.$_POST['UserAdvManager_Username_Char'].';'.$_POST['UserAdvManager_Username_List'].';'.(isset($_POST['UserAdvManager_No_Confirm_Status'])?$_POST['UserAdvManager_No_Confirm_Status']:'').';'.$_POST['UserAdvManager_MailInfo_Text'].';'.$_POST['UserAdvManager_ConfirmMail_Text'].';'.$_POST['UserAdvManager_MailExclusion'].';'.$_POST['UserAdvManager_MailExclusion_List'].';'.$_POST['UserAdvManager_Password_Enforced'].';'.$_POST['UserAdvManager_Password_Score'].';'.$_POST['UserAdvManager_AdminPassword_Enforced'];
    6464               
    6565                $conf['nbc_UserAdvManager'] = $newconf_nbc_UserAdvManager;
     
    202202                'UserAdvManager_PASSWORDENF_FALSE'    => $conf_nbc_UserAdvManager[14]=='false' ?  'checked="checked"' : '' ,
    203203                'UserAdvManager_PASSWORD_SCORE'       => $conf_nbc_UserAdvManager[15],
     204    'UserAdvManager_ADMINPASSWENF_TRUE'   => $conf_nbc_UserAdvManager[16]=='true' ?  'checked="checked"' : '' ,
     205                'UserAdvManager_ADMINPASSWENF_FALSE'  => $conf_nbc_UserAdvManager[16]=='false' ?  'checked="checked"' : '' ,
    204206                'UserAdvManager_PASSWORD_TEST_SCORE'  => $UserAdvManager_Password_Test_Score,
    205207    )
     
    207209       
    208210
    209   if ( isset($_POST['audit']) or isset($_POST['submit']) )
     211  if (isset($_POST['audit']))
    210212        {
    211213                $msg_error1 = '';
     
    298300// |                             errors display                            |
    299301// +-----------------------------------------------------------------------+
    300   if ( isset ($errors) and count($errors) != 0)
     302  if (isset ($errors) and count($errors) != 0)
    301303  {
    302304          $template->assign('errors',array());
  • extensions/NBC_UserAdvManager/trunk/admin/global.tpl

    r4061 r4124  
    55<form method="post" action="{$UserAdvManager_F_ACTION}" class="general">
    66  <fieldset>
    7         <legend>{'UserAdvManager_Title'|@translate}</legend>
     7        <legend>{'UserAdvManager_Title1'|@translate}</legend>
    88    <ul>
    99        <li><label>{'UserAdvManager_No_Casse'|@translate}</label><br>
    10         <input type="radio" value="true" {$UserAdvManager_NO_CASSE_TRUE} name="UserAdvManager_No_Casse"/>{'UserAdvManager_No_Casse_true'|@translate}<br>
    11         <input type="radio" value="false" {$UserAdvManager_NO_CASSE_FALSE} name="UserAdvManager_No_Casse"/>{'UserAdvManager_No_Casse_false'|@translate}<br>
     10        <input type="radio" value="true" {$UserAdvManager_NO_CASSE_TRUE} name="UserAdvManager_No_Casse">{'UserAdvManager_No_Casse_true'|@translate}<br>
     11        <input type="radio" value="false" {$UserAdvManager_NO_CASSE_FALSE} name="UserAdvManager_No_Casse">{'UserAdvManager_No_Casse_false'|@translate}<br>
    1212        <br>
    1313                </li>
    1414        <li><label>{'UserAdvManager_Username_Char'|@translate}</label><br>
    15         <input type="radio" value="true" {$UserAdvManager_USERNAME_CHAR_TRUE} name="UserAdvManager_Username_Char"/>{'UserAdvManager_Username_Char_true'|@translate}
    16         <input type="text" name="UserAdvManager_Username_List" value="{$UserAdvManager_USERNAME_CHAR_LIST}" size="20" style="text-align: center;"/><br>
    17         <input type="radio" value="false" {$UserAdvManager_USERNAME_CHAR_FALSE} name="UserAdvManager_Username_Char"/>{'UserAdvManager_Username_Char_false'|@translate}<br>
    18         <br>
     15        <input type="radio" value="true" {$UserAdvManager_USERNAME_CHAR_TRUE} name="UserAdvManager_Username_Char">{'UserAdvManager_Username_Char_true'|@translate}
     16        <input type="text" name="UserAdvManager_Username_List" value="{$UserAdvManager_USERNAME_CHAR_LIST}" size="20" style="text-align: center;"><br>
     17        <input type="radio" value="false" {$UserAdvManager_USERNAME_CHAR_FALSE} name="UserAdvManager_Username_Char">{'UserAdvManager_Username_Char_false'|@translate}<br><br>
    1918        </li>
    20         <li><label>{'UserAdvManager_Password_Enforced'|@translate}</label><br/>
    21         <input type="radio" value="true" {$UserAdvManager_PASSWORDENF_TRUE} name="UserAdvManager_Password_Enforced"/>{'UserAdvManager_Password_Enforced_true'|@translate}
    22         <input type="text" name="UserAdvManager_Password_Score" value="{$UserAdvManager_PASSWORD_SCORE}" size="5" style="text-align: center;"/><br><br>
     19     
     20        <li><label>{'UserAdvManager_Password_Enforced'|@translate}</label><br>
     21        <input type="radio" value="true" {$UserAdvManager_PASSWORDENF_TRUE} name="UserAdvManager_Password_Enforced">{'UserAdvManager_Password_Enforced_true'|@translate}
     22        <input type="text" name="UserAdvManager_Password_Score" value="{$UserAdvManager_PASSWORD_SCORE}" size="5" style="text-align: center;"><br><br>
    2323       
    2424        <label>{'UserAdvManager_Password_Enforced_Info'|@translate}</label><br><br>
    25         {'UserAdvManager_PasswordTest'|@translate}<input type="text" name="UserAdvManager_Password_Test" value="{$UserAdvManager_PASSWORD_TEST}" size="50" style="text-align: left;"/>&nbsp;&nbsp;&nbsp;
     25        {'UserAdvManager_PasswordTest'|@translate}<input type="text" name="UserAdvManager_Password_Test" value="{$UserAdvManager_PASSWORD_TEST}" size="50" style="text-align: left;">&nbsp;&nbsp;&nbsp;
    2626        <input class="submit" type="submit" value="{'PasswordTest'|@translate}" name="PasswordTest" >&nbsp;&nbsp;&nbsp;
    2727        {'UserAdvManager_ScoreTest'|@translate}{$UserAdvManager_PASSWORD_TEST_SCORE}<br><br>
    28         {if isset($PasswordTest) && empty($UserAdvManager_PASSWORD_TEST)}
    29           <label>{'reg_err_login3'|@translate}</label>
    30         {/if}
    3128       
    32         <input type="radio" value="false" {$UserAdvManager_PASSWORDENF_FALSE} name="UserAdvManager_Password_Enforced"/>{'UserAdvManager_Password_Enforced_false'|@translate}<br>
    33         <br>
     29        <input type="radio" value="false" {$UserAdvManager_PASSWORDENF_FALSE} name="UserAdvManager_Password_Enforced">{'UserAdvManager_Password_Enforced_false'|@translate}<br><br>
    3430        </li>
    35         <li><label>{'UserAdvManager_Mail_Info'|@translate}</label><br/>
    36         <input type="radio" value="true" {$UserAdvManager_MAIL_INFO_TRUE} name="UserAdvManager_Mail_Info"/>{'UserAdvManager_Mail_Info_true'|@translate}<br>
    37         <input type="radio" value="false" {$UserAdvManager_MAIL_INFO_FALSE} name="UserAdvManager_Mail_Info"/>{'UserAdvManager_Mail_Info_false'|@translate}<br>
    38         <br>
     31
     32        <li><label>{'UserAdvManager_AdminPassword_Enforced'|@translate}</label><br>
     33        <input type="radio" value="true" {$UserAdvManager_ADMINPASSWENF_TRUE} name="UserAdvManager_AdminPassword_Enforced">{'UserAdvManager_AdminPassword_Enforced_true'|@translate}<br>
     34        <input type="radio" value="false" {$UserAdvManager_ADMINPASSWENF_FALSE} name="UserAdvManager_AdminPassword_Enforced">{'UserAdvManager_AdminPassword_Enforced_false'|@translate}<br><br>
     35
     36        <li><label>{'UserAdvManager_No_Comment_Anonymous'|@translate}</label><br>
     37        <input type="radio" value="true" {$UserAdvManager_NO_COMMENT_ANO_TRUE} name="UserAdvManager_No_Comment_Anonymous">{'UserAdvManager_No_Comment_Anonymous_true'|@translate}<br>
     38        <input type="radio" value="false" {$UserAdvManager_NO_COMMENT_ANO_FALSE} name="UserAdvManager_No_Comment_Anonymous">{'UserAdvManager_No_Comment_Anonymous_false'|@translate}<br><br>
    3939        </li>
     40     
     41        <li><label>{'UserAdvManager_MailExclusion'|@translate}</label><br>
     42        <input type="radio" value="true" {$UserAdvManager_MAILEXCLUSION_TRUE} name="UserAdvManager_MailExclusion">{'UserAdvManager_MailExclusion_true'|@translate}<br>
     43        <input type="radio" value="false" {$UserAdvManager_MAILEXCLUSION_FALSE} name="UserAdvManager_MailExclusion">{'UserAdvManager_MailExclusion_false'|@translate}<br><br>
     44        </li>
     45     
     46        <li><label>{'UserAdvManager_MailExclusion_List'|@translate}</label><br>
     47        <textarea name="UserAdvManager_MailExclusion_List" id="UserAdvManager_MailExclusion_List" rows="3" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILEXCLUSION_LIST}</textarea><br><br>
     48        </li>
     49    </ul>
     50   
     51        <p><input class="submit" type="submit" value="{'submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED} >&nbsp;<input class="submit" type="submit" value="{'audit'|@translate}" name="audit"></p>
     52  </fieldset>
     53
     54    <fieldset>
     55    <legend>{'UserAdvManager_Title2'|@translate}</legend>
     56    <ul>
     57        <li><label>{'UserAdvManager_Mail_Info'|@translate}</label><br>
     58        <input type="radio" value="true" {$UserAdvManager_MAIL_INFO_TRUE} name="UserAdvManager_Mail_Info">{'UserAdvManager_Mail_Info_true'|@translate}<br>
     59        <input type="radio" value="false" {$UserAdvManager_MAIL_INFO_FALSE} name="UserAdvManager_Mail_Info">{'UserAdvManager_Mail_Info_false'|@translate}<br><br>
     60        </li>
     61     
    4062        <li><label>{'UserAdvManager_MailInfo_Text'|@translate}</label><br><br>
    41         <textarea name="UserAdvManager_MailInfo_Text" id="UserAdvManager_MailInfo_Text" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILINFO_TEXT}</textarea>
    42         <br><br>
     63        <textarea name="UserAdvManager_MailInfo_Text" id="UserAdvManager_MailInfo_Text" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILINFO_TEXT}</textarea><br><br>
    4364        </li>
     65     
    4466        <li><label>{'UserAdvManager_Confirm_Mail'|@translate}</label><br>
    45         <input type="radio" value="true" {$UserAdvManager_CONFIRM_MAIL_TRUE} name="UserAdvManager_Confirm_Mail"/>{'UserAdvManager_Confirm_Mail_true'|@translate}<br>
    46         <input type="radio" value="false" {$UserAdvManager_CONFIRM_MAIL_FALSE} name="UserAdvManager_Confirm_Mail"/>{'UserAdvManager_Confirm_Mail_false'|@translate}<br>
    47         <br>
     67        <input type="radio" value="true" {$UserAdvManager_CONFIRM_MAIL_TRUE} name="UserAdvManager_Confirm_Mail">{'UserAdvManager_Confirm_Mail_true'|@translate}<br>
     68        <input type="radio" value="false" {$UserAdvManager_CONFIRM_MAIL_FALSE} name="UserAdvManager_Confirm_Mail">{'UserAdvManager_Confirm_Mail_false'|@translate}<br><br>
    4869        </li>
     70     
    4971        <li><label>{'UserAdvManager_ConfirmMail_Text'|@translate}</label><br><br>
    50         <textarea name="UserAdvManager_ConfirmMail_Text" id="UserAdvManager_ConfirmMail_Text" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_TEXT}</textarea>
    51         <br><br>
     72        <textarea name="UserAdvManager_ConfirmMail_Text" id="UserAdvManager_ConfirmMail_Text" rows="10" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_CONFIRMMAIL_TEXT}</textarea><br><br>
    5273        </li>
     74     
    5375        <br>
    5476                        <div style="text-align: center; font-size: 1.1em; color: red;"><b>{'UserAdvManager_Confirm_Group_Notice'|@translate}</b></div>
    5577                        <br>
     78     
    5679        <li><label>{'UserAdvManager_No_Confirm_Group'|@translate}</label><br>
    57                 {html_options name="UserAdvManager_No_Confirm_Group" options=$No_Confirm_Group.group_options selected=$No_Confirm_Group.group_selected}
    58         <br><br>
     80                {html_options name="UserAdvManager_No_Confirm_Group" options=$No_Confirm_Group.group_options selected=$No_Confirm_Group.group_selected}<br><br>
    5981        </li>
     82     
    6083        <li><label>{'UserAdvManager_Validated_Group'|@translate}</label><br>
    61                 {html_options name="UserAdvManager_Validated_Group" options=$Validated_Group.group_options selected=$Validated_Group.group_selected}
    62         <br><br>
     84                {html_options name="UserAdvManager_Validated_Group" options=$Validated_Group.group_options selected=$Validated_Group.group_selected}<br><br>
    6385        </li>
     86     
    6487        <br>
    6588                        <div style="text-align: center; font-size: 1.1em; color: red;"><b>{'UserAdvManager_Confirm_Status_Notice'|@translate}</b></div>
    6689                        <br>
     90     
    6791        <li><label>{'UserAdvManager_No_Confirm_Status'|@translate}</label><br>
    68                 {html_options name="UserAdvManager_No_Confirm_Status" options=$No_Confirm_Status.Status_options selected=$No_Confirm_Status.Status_selected}
    69         <br><br>
     92                {html_options name="UserAdvManager_No_Confirm_Status" options=$No_Confirm_Status.Status_options selected=$No_Confirm_Status.Status_selected}<br><br>
    7093        </li>
     94     
    7195        <li><label>{'UserAdvManager_Validated_Status'|@translate}</label><br>
    72                 {html_options name="UserAdvManager_Validated_Status" options=$Confirm_Status.Status_options selected=$Confirm_Status.Status_selected}
    73         <br><br>
    74         </li>
    75         <li><label>{'UserAdvManager_No_Comment_Anonymous'|@translate}</label><br>
    76         <input type="radio" value="true" {$UserAdvManager_NO_COMMENT_ANO_TRUE} name="UserAdvManager_No_Comment_Anonymous"/>{'UserAdvManager_No_Comment_Anonymous_true'|@translate}<br>
    77         <input type="radio" value="false" {$UserAdvManager_NO_COMMENT_ANO_FALSE} name="UserAdvManager_No_Comment_Anonymous"/>{'UserAdvManager_No_Comment_Anonymous_false'|@translate}<br>
    78         <br>
    79         </li>
    80         <li><label>{'UserAdvManager_MailExclusion'|@translate}</label><br>
    81         <input type="radio" value="true" {$UserAdvManager_MAILEXCLUSION_TRUE} name="UserAdvManager_MailExclusion"/>{'UserAdvManager_MailExclusion_true'|@translate}<br>
    82         <input type="radio" value="false" {$UserAdvManager_MAILEXCLUSION_FALSE} name="UserAdvManager_MailExclusion"/>{'UserAdvManager_MailExclusion_false'|@translate}<br>
    83         <br>
    84         </li>
    85         <li><label>{'UserAdvManager_MailExclusion_List'|@translate}</label><br>
    86         <textarea name="UserAdvManager_MailExclusion_List" id="UserAdvManager_MailExclusion_List" rows="3" cols="80" {$TAG_INPUT_ENABLED}>{$UserAdvManager_MAILEXCLUSION_LIST}</textarea>
     96                {html_options name="UserAdvManager_Validated_Status" options=$Confirm_Status.Status_options selected=$Confirm_Status.Status_selected}<br><br>
    8797        </li>
    8898    </ul>
    89         <p><input class="submit" type="submit" value="{'audit'|@translate}" name="audit" />&nbsp;<input class="submit" type="submit" value="{'submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED} /></p>
     99   
     100        <p><input class="submit" type="submit" value="{'submit'|@translate}" name="submit" {$TAG_INPUT_ENABLED} >&nbsp;<input class="submit" type="submit" value="{'audit'|@translate}" name="audit"></p>
    90101  </fieldset>
    91102</form>
  • extensions/NBC_UserAdvManager/trunk/include/functions_UserAdvManager.inc.php

    r4061 r4124  
    575575
    576576
    577 /* Obsolete function - Check for no forbidden email provider */
    578 /* This don't work on function call */
    579 //function ValidateEmailProvider($email)
    580 //{
    581 //  global $conf;
    582 //
    583 //      $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
    584 //      if (isset($conf_nbc_UserAdvManager[12]))
    585 //      {
    586 //              $ncsemail = strtolower($email);
    587 //              $conf_nbc_MailExclusion = preg_split('/,/',$conf_nbc_UserAdvManager[13]);
    588 //              for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
    589 //              {
    590 //                      $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
    591 //                      if (preg_match($pattern, $ncsemail))
    592 //                      return false;
    593 //              else
    594 //                              return true;
    595 //              }
    596 //      }
    597 //}
     577/* Function called from main.inc.php - Check if user's email is in excluded email providers list */
     578function ValidateEmailProvider($email)
     579{
     580  global $conf;
     581
     582        $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
     583        if (isset($conf_nbc_UserAdvManager[12]))
     584        {
     585                $ncsemail = strtolower($email);
     586                $conf_nbc_MailExclusion = preg_split('/,/',$conf_nbc_UserAdvManager[13]);
     587                for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
     588                {
     589                        $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
     590                        if (preg_match($pattern, $ncsemail))
     591                        return false;
     592                else
     593                        return true;
     594                }
     595        }
     596}
    598597
    599598
     
    743742 * Thanx to MathieuGut from http://m-gut.developpez.com
    744743 */
    745 function testpassword($password)        { // Le mot de passe passé en paramètre - $password given by user
    746 
    747 // Initialisation des variables - Variables initiation
    748 $points = 0;
    749 $point_lowercase = 0;
    750 $point_uppercase = 0;
    751 $point_numbers = 0;
    752 $point_characters = 0;
    753 
    754 // On récupère la longueur du mot de passe - Getting password lengh     
    755 $length = strlen($password);
    756 
    757 // On fait une boucle pour lire chaque lettre - Loop to read password characters
    758 for($i = 0; $i < $length; $i++)         {
    759        
    760         // On sélectionne une à une chaque lettre - Select each letters
    761         // $i étant à 0 lors du premier passage de la boucle - $i is 0 at first turn
    762         $letters = $password[$i];
    763 
    764         if ($letters>='a' && $letters<='z'){
    765                 // On ajoute 1 point pour une minuscule - Adding 1 point to score for a lowercase
    766                 $points = $points + 1;
    767 
    768                 // On rajoute le bonus pour une minuscule - Adding bonus points for lowercase
    769                 $point_lowercase = 1;
    770         }
    771         else if ($letters>='A' && $letters <='Z'){
    772                 // On ajoute 2 points pour une majuscule - Adding 2 points to score for uppercase
    773                 $points = $points + 2;
     744function testpassword($password) // Le mot de passe passé en paramètre - $password given by user
     745{
     746
     747  // Initialisation des variables - Variables initiation
     748  $points = 0;
     749  $point_lowercase = 0;
     750  $point_uppercase = 0;
     751  $point_numbers = 0;
     752  $point_characters = 0;
     753
     754  // On récupère la longueur du mot de passe - Getting password lengh   
     755  $length = strlen($password);
     756 
     757  // On fait une boucle pour lire chaque lettre - Loop to read password characters
     758  for($i = 0; $i < $length; $i++)
     759  {
     760    // On sélectionne une à une chaque lettre - Select each letters
     761    // $i étant à 0 lors du premier passage de la boucle - $i is 0 at first turn
     762    $letters = $password[$i];
     763
     764    if ($letters>='a' && $letters<='z')
     765    {
     766      // On ajoute 1 point pour une minuscule - Adding 1 point to score for a lowercase
     767                  $points = $points + 1;
     768
     769                  // On rajoute le bonus pour une minuscule - Adding bonus points for lowercase
     770                  $point_lowercase = 1;
     771    }
     772    else if ($letters>='A' && $letters <='Z')
     773    {
     774      // On ajoute 2 points pour une majuscule - Adding 2 points to score for uppercase
     775      $points = $points + 2;
    774776               
    775                 // On rajoute le bonus pour une majuscule - Adding bonus points for uppercase
    776                 $point_uppercase = 2;
    777         }
    778         else if ($letters>='0' && $letters<='9'){
    779                 // On ajoute 3 points pour un chiffre - Adding 3 points to score for numbers
    780                 $points = $points + 3;
     777      // On rajoute le bonus pour une majuscule - Adding bonus points for uppercase
     778      $point_uppercase = 2;
     779    }
     780    else if ($letters>='0' && $letters<='9')
     781    {
     782      // On ajoute 3 points pour un chiffre - Adding 3 points to score for numbers
     783      $points = $points + 3;
    781784               
    782                 // On rajoute le bonus pour un chiffre - Adding bonus points for numbers
    783                 $point_numbers = 3;
    784         }
    785         else {
    786                 // On ajoute 5 points pour un caractère autre - Adding 5 points to score for special characters
    787                 $points = $points + 5;
     785      // On rajoute le bonus pour un chiffre - Adding bonus points for numbers
     786      $point_numbers = 3;
     787    }
     788    else
     789    {
     790      // On ajoute 5 points pour un caractère autre - Adding 5 points to score for special characters
     791      $points = $points + 5;
    788792               
    789                 // On rajoute le bonus pour un caractère autre - Adding bonus points for special characters
    790                 $point_characters = 5;
    791         }
    792 }
    793 
    794 // Calcul du coefficient points/longueur - calculating the coefficient points / length
    795 $step1 = $points / $length;
    796 
    797 // Calcul du coefficient de la diversité des types de caractères... - Calculation of the diversity of character types...
    798 $step2 = $point_lowercase + $point_uppercase + $point_numbers + $point_characters;
    799 
    800 // Multiplication du coefficient de diversité avec celui de la longueur - Multiplying the coefficient of diversity with that of the length
    801 $score = $step1 * $step2;
    802 
    803 // Multiplication du résultat par la longueur de la chaîne - Multiplying the result by the length of the chain
    804 $finalscore = $score * $length;
    805 
    806 return $finalscore;
     793      // On rajoute le bonus pour un caractère autre - Adding bonus points for special characters
     794      $point_characters = 5;
     795    }
     796  }
     797
     798  // Calcul du coefficient points/longueur - calculating the coefficient points / length
     799  $step1 = $points / $length;
     800
     801  // Calcul du coefficient de la diversité des types de caractères... - Calculation of the diversity of character types...
     802  $step2 = $point_lowercase + $point_uppercase + $point_numbers + $point_characters;
     803
     804  // Multiplication du coefficient de diversité avec celui de la longueur - Multiplying the coefficient of diversity with that of the length
     805  $score = $step1 * $step2;
     806
     807  // Multiplication du résultat par la longueur de la chaîne - Multiplying the result by the length of the chain
     808  $finalscore = $score * $length;
     809
     810  return $finalscore;
    807811}
    808812?>
  • extensions/NBC_UserAdvManager/trunk/language/en_UK/plugin.lang.php

    r4061 r4124  
    5757$lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Enable email reminder';
    5858$lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Disable email reminder';
    59 $lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Custom content of the recall message with regeneration of validation key.<br>If left blank, the recall mail will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled with the installation of the plugin is given as an example)<br><br>(!!! <b style="text-decoration: blink underline;">WARNING !</b> Text modification is available <b>ONLY</b> if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)';
    60 $lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Custom content of the recall message without regeneration of validation key.<br>If left blank, the recall mail will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled with the installation of the plugin is given as an example)<br><br>(!!! <b style="text-decoration: blink underline;">WARNING !</b> Text modification is available <b>ONLY</b> if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)';
     59$lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Custom content of the recall message with regeneration of validation key.<br>If left blank, the recall mail will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled with the installation of the plugin is given as an example)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
     60$lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Custom content of the recall message without regeneration of validation key.<br>If left blank, the recall mail will include only the validation link. It is therefore strongly advised to take a little explanatory text. (NB: The text pre-filled with the installation of the plugin is given as an example)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">WARNING !</b> <b style="color: red;">Text modification is available ONLY if email reminder is enabled. Use the multi language tags from Extended Description plugin if this plugin is activated !!!)</b>';
    6161
    6262
  • extensions/NBC_UserAdvManager/trunk/language/fr_FR/plugin.lang.php

    r4061 r4124  
    99$lang['Title_Tab1'] = 'UserAdvManager - Configuration Générale';
    1010$lang['Tab_Global'] = 'Configuration Générale';
    11 $lang['UserAdvManager_Title'] = 'Configuration avancée des utilisateurs';
     11$lang['UserAdvManager_Title1'] = 'Gestion de l\'inscription des utilisateurs';
     12$lang['UserAdvManager_Title2'] = 'Validation d\'inscription et gestion de groupes / statuts';
    1213$lang['UserAdvManager_Mail_Info'] = 'Mail d\'information à l\'utilisateur';
    1314$lang['UserAdvManager_Mail_Info_true'] = ' Envoyer un mail à l\'utilisateur reprenant ses infos lors de son inscription ou la mise à jour de son profil.';
    14 $lang['UserAdvManager_Mail_Info_false'] = ' Désactive l\'envoi de mail d\'info.';
     15$lang['UserAdvManager_Mail_Info_false'] = ' Désactive l\'envoi de mail d\'info. (valeur par défaut)';
    1516$lang['UserAdvManager_MailInfo_Text'] = ' Texte utilisé pour l\'introduction du mail envoyé à l\'utilisateur pour son inscription ou la mise à jour de son profil<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
    1617$lang['UserAdvManager_No_Casse'] = 'Utilisateur insensible à la casse';
    1718$lang['UserAdvManager_No_Casse_true'] = ' Rendre le compte utilisateur insensible à la casse, lors de l\'inscription et l\identification.';
    18 $lang['UserAdvManager_No_Casse_false'] = ' Laisser les utilisateur sensible à la casse.';
     19$lang['UserAdvManager_No_Casse_false'] = ' Laisser les utilisateur sensible à la casse. (valeur par défaut)';
    1920$lang['UserAdvManager_Username_Char'] = 'Caractères limités pour le nom d\'utilisateur';
    2021$lang['UserAdvManager_Username_Char_true'] = ' Interdire les caractères saisis dans le champs ci-après pour le nom d\'utilisateur lors de l\'inscription == ';
    21 $lang['UserAdvManager_Username_Char_false'] = ' Laisser le contrôle par défaut du nom d\'utilisateur.';
     22$lang['UserAdvManager_Username_Char_false'] = ' Laisser le contrôle par défaut du nom d\'utilisateur. (valeur par défaut)';
    2223$lang['UserAdvManager_Password_Enforced'] = 'Renforcement des mots de passe - Activer cette option rend la saisie du mot de passe obligatoire à l\'inscription des visiteurs. De plus, le mot de passe saisi par le visiteur devra répondre à un score de fiabilité.';
    23 $lang['UserAdvManager_Password_Enforced_Info'] = '<b style="text-decoration: underline; color: green;">Explications :</b> <b style="color: green;">Le score d\'un mot de passe est calculé en fonction des paramètres de base : longueur, types de caractères utilisés(lettres, chiffres, majuscules, minuscules, caractères spéciaux). Si le mot de passe de l\'utilisateur ne répond pas au score, le score réalisé est affiché ainsi que le score planchet et une indication pour augmenter la valeur de ce score. Pour donner un ordre d\'idée, un score inférieur à 100 est considéré comme faible. Entre 100 et 500, la fiabilité est renforcée. Au dela de 500, c\'est Fort Knox !! ;-)<br>Vous pouvez tester la fiabilité d\'un mot de passe en utilisant les champs ci-dessous (pour test uniquement !) ;-)</b>';
     24$lang['UserAdvManager_Password_Enforced_Info'] = '<b style="text-decoration: underline; color: green;">Explications :</b> <b style="color: green;">Le score d\'un mot de passe est calculé en fonction des paramètres de base : longueur, types de caractères utilisés(lettres, chiffres, majuscules, minuscules, caractères spéciaux). Si le mot de passe de l\'utilisateur ne répond pas au score, le score réalisé est affiché ainsi que le score planchet et une indication pour augmenter la valeur de ce score. Pour donner un ordre d\'idée, un score inférieur à 100 est considéré comme faible. Entre 100 et 500, la fiabilité est renforcée. Au dela de 500, c\'est Fort Knox !! ;-)<br>Vous pouvez tester la fiabilité d\'un mot de passe en utilisant les champs ci-dessous (pour test uniquement !)</b>';
    2425$lang['UserAdvManager_PasswordTest'] = 'Mot de passe à tester : ';
    2526$lang['UserAdvManager_ScoreTest'] = 'Score obtenu : ';
    2627$lang['PasswordTest'] = 'Calcul du score';
    27 $lang['UserAdvManager_Password_Enforced_true'] = ' Mot de passe renforcé obligatoire - Saisir le score minimum (planchet)de fiabilité du mots de passe == ';
    28 $lang['UserAdvManager_Password_Enforced_false'] = ' Ne pas renforcer les mots de passe (fonctionnement normal)';
     28$lang['UserAdvManager_Password_Enforced_true'] = ' Mot de passe renforcé obligatoire - Saisir le score minimum (valeur planchet) de fiabilité du mots de passe == ';
     29$lang['UserAdvManager_Password_Enforced_false'] = ' Ne pas renforcer les mots de passe. (valeur par défaut)';
     30$lang['UserAdvManager_AdminPassword_Enforced'] = 'Appliquer également le contrôle du renforcement de mots de passe lorsqu\'un administrateur créé un utilisateur? A noter : Si l\'utilisateur ainsi créé désire changer de mot de passe et que le renforcement des mots de passe pour les utilisateurs est actif, il sera soumis à la règle configurée.';
     31$lang['UserAdvManager_AdminPassword_Enforced_true'] = 'Activer le renforcement des mots de passe pour les admins.';
     32$lang['UserAdvManager_AdminPassword_Enforced_false'] = 'Désactiver le renforcement des mots de passe pour les admins. (valeur par défaut)';
    2933$lang['UserAdvManager_Confirm_Mail'] = 'Confirmation de l\'adresse email';
    3034$lang['UserAdvManager_Confirm_Mail_true'] = ' Envoyer un mail permettant a l\'utilisateur de confirmer son adresse email et donc son compte utilisateur.';
    31 $lang['UserAdvManager_Confirm_Mail_false'] = ' Système d\'inscription et de mise à jour standard sans confirmation de l\'adresse email.';
     35$lang['UserAdvManager_Confirm_Mail_false'] = ' Système d\'inscription et de mise à jour standard sans confirmation de l\'adresse email. (valeur par défaut)';
    3236$lang['UserAdvManager_ConfirmMail_Text'] = ' Texte utilisé pour l\'introduction du mail envoyé à l\'utilisateur pour confirmer son adresse mail<br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
    3337$lang['UserAdvManager_Confirm_Group_Notice'] = 'ATTENTION : L\'utilisation des groupes de validation nécessite que vous ayez créé au moins un groupe d\'utilisateurs et qu\'il soit défini "par défaut" dans la gestion des groupes d\'utilisateurs de Piwigo.';
     
    3943$lang['UserAdvManager_No_Comment_Anonymous'] = 'Pseudo obligatoire sur commentaire';
    4044$lang['UserAdvManager_No_Comment_Anonymous_true'] = ' Le champs auteur doit être renseigné pour enregistrer un commentaire.';
    41 $lang['UserAdvManager_No_Comment_Anonymous_false'] = ' Laisser le fonctionnement par défaut pour enregistrer un commentaire.';
     45$lang['UserAdvManager_No_Comment_Anonymous_false'] = ' Laisser le fonctionnement par défaut pour enregistrer un commentaire. (valeur par défaut)';
    4246$lang['UserAdvManager_MailExclusion'] = 'Exclusion des domaines de messagerie';
    4347$lang['UserAdvManager_MailExclusion_true'] = ' Activer l\'exclusion des domaines de messagerie (par exemple @hotmail.* ou @msn.*)';
    44 $lang['UserAdvManager_MailExclusion_false'] = ' Désactiver l\'exclusion des domaines de messagerie.';
     48$lang['UserAdvManager_MailExclusion_false'] = ' Désactiver l\'exclusion des domaines de messagerie. (valeur par défaut)';
    4549$lang['UserAdvManager_MailExclusion_List'] = ' Si l\'exclusion de domaines de messagerie est activée, saisissez les domaines à exclure ici. Il faut respecter le format suivant :<br>@[nom_du_domaine].[extension_du_domaine] - Exemple : @hotmail.com<br><br>Séparez les domaines par une virgule<br>';
    46 $lang['audit'] = 'Audit';
    47 $lang['submit'] = 'Valider';
     50$lang['audit'] = 'Auditer les paramètres';
     51$lang['submit'] = 'Sauvegarder les paramètres';
    4852
    4953
     
    5458$lang['UserAdvManager_ConfirmMail_Info'] = 'Limitation du délai de validation de l\'inscription :<br>Si vous activez cette option, sélectionnez le délai (x) )souhaité dans la liste qui suit. Les visiteurs qui s\'inscriront alors auront x jours de délais pour valider leur inscription. Passé ce délai, le lien de validation qu\'ils auront reçu par mail sera expiré.<br>';
    5559$lang['UserAdvManager_ConfirmMail_TimeOut_true'] = 'Activer la limitation du délai d\'inscription.';
    56 $lang['UserAdvManager_ConfirmMail_TimeOut_false'] = 'Désactiver la limitation du délai d\'inscription.';
     60$lang['UserAdvManager_ConfirmMail_TimeOut_false'] = 'Désactiver la limitation du délai d\'inscription. (valeur par défaut)';
    5761$lang['UserAdvManager_ConfirmMail_TimeOut'] = 'Délai d\activation :';
    5862$lang['UserAdvManager_ConfirmMail_Delay_Info'] = 'Saisissez ici le nombre de jours avant expiration de la validation d\'inscription : ';
     
    6266//$lang['UserAdvManager_ConfirmMail_AutoDel_false'] = 'Désactiver la suppression automatique.';
    6367$lang['UserAdvManager_ConfirmMail_Remail'] = 'Activer ou désactiver la fonctionnalité de rappel des inscrits non validés :<br>';
    64 $lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Activer le rappel par mail';
    65 $lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Désactiver le rappel par mail';
     68$lang['UserAdvManager_ConfirmMail_Remail_true'] = 'Activer le rappel par mail.';
     69$lang['UserAdvManager_ConfirmMail_Remail_false'] = 'Désactiver le rappel par mail. (valeur par défaut)';
    6670$lang['UserAdvManager_ConfirmMail_ReMail_Txt1'] = 'Contenu personnalisé du message de rappel avec regénération de clé de validation.<br>Si laissé vide, le mail de rappel ne comportera que le lien de validation. Il est donc vivement conseillé de saisir un petit texte explicatif. (NB : Le texte pré renseigné à l\'installation du plugin est donné en exemple)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">La modification du texte n\'est possible <b>QUE</b> si le rappel par email est activé. Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
    6771$lang['UserAdvManager_ConfirmMail_ReMail_Txt2'] = 'Contenu personnalisé du message de rappel sans regénération de clé de validation.<br>Si laissé vide, le mail de rappel sera vide. Il est donc vivement conseillé de saisir un petit texte explicatif. (NB : Le texte pré renseigné à l\'installation du plugin est donné en exemple)<br><br><b style="color: red;">(!!! </b><b style="text-decoration: underline; color: red;">ATTENTION !</b> <b style="color: red;">La modification du texte n\'est possible <b>QUE</b> si le rappel par email est activé. Utilisez la méthode multi language du plugin Extended Description si celui-ci est activé !!!)</b>';
     
    108112$lang['Err_audit_username_char'] = '<b>Ce compte contient un ou des caractères interdits :</b> ';
    109113$lang['Err_audit_email_forbidden'] = '<b>Ce compte contient des domaines de messagerie interdit :</b> ';
    110 $lang['Err_audit_advise'] = '<b>Vous avez des corrections a faire pour respecter les nouvelles règles que vous avez activé<br>utilisez un utilitaire de gestion de base de données pour corriger les comptes utilisateurs directement dans la table ###_USERS si nécessaire.</b>';
     114$lang['Err_audit_advise'] = '<b>Vous avez des corrections a faire pour respecter les nouvelles règles que vous avez activées.<br>Utilisez un utilitaire de gestion de base de données pour corriger les comptes utilisateurs directement dans la table ###_USERS si nécessaire.</b><br><br>';
    111115$lang['UserAdvManager_Empty Author'] = 'Le champs auteur doit être rempli pour enregistrer un commentaire.';
    112 $lang['reg_err_login3'] = 'Mot de passe obligatoire !';
    113 $lang['reg_err_login4'] = 'Le mot de passe choisi est trop faible.';
     116$lang['reg_err_login3'] = 'Sécurité : Le mot de passe est obligatoire !';
     117$lang['reg_err_login4_%s'] = 'Sécurité : Un système de contrôle calcule un score de complexité sur les mots de passe choisis. La complexité de votre mot de passe est trop faible (score = %s). Veuillez choisir un nouveau mot de passe plus sûre en respectant les règles suivantes :<br>
     118- Utiliser des lettres et des chiffres<br>
     119- Utiliser des minuscules et des majuscules<br>
     120- Augmenter sa longueur (nombre de caractères)<br>
     121Le score minimal des mots de passe imposé par l\'administrateur est de : ';
    114122if ( isset($conf_UserAdvManager[1]) and $conf_UserAdvManager[1] == 'true' )
    115123        $lang['reg_err_login5'] = 'ce nom utilisateur est déjà pris, ATTENTION le nom est insensible à la casse (Majuscule = Minuscule).';
  • extensions/NBC_UserAdvManager/trunk/main.inc.php

    r4061 r4124  
    7070-- 2.11.5 : Bug 1195 fixed : Registration displays the good title
    7171
    72 -- pre 2.12.0 : Password control and enforcement (step 1)
    73 
     72-- pre 2.12.0 : Bug 1206 fixed : All plugin functionnalities work in user's profile page
     73            Plugin's core code and admin panel refactoring
     74            Password control and enforcement : A complexity score is computed on user registration. If this score is less than the goal set by admin, the password choosen is rejected.
    7475*/
    7576
     
    8384
    8485++ Password control and enforcement
    85   -- Empty password (done in Piwigo 2.x)
    86   ++ Can not be the same as username
    87   ++ complexity of the password (Numbers+Lettrers+Low and high case+Special+minimal length)
     86  ?? Can not be the same as username -> Could password score control be sufficient ?
    8887 
    8988++ Security : Blocking brut-force attacks !
     
    9998
    10099
    101 if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
     100if (!defined('PHPWG_ROOT_PATH'))
     101{
     102  die('Hacking attempt!');
     103}
    102104
    103105define('NBC_UserAdvManager_DIR' , basename(dirname(__FILE__)));
     
    135137 
    136138  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
    137 
    138   if (( isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
    139        
    140         SendMail2User(1, $register_user['id'], $register_user['username'], $_POST['password'], $register_user['email'], true);
     139 
     140  /* Sending registration confirmation by email */
     141  if ((isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
     142  {
     143    SendMail2User(1, $register_user['id'], $register_user['username'], $_POST['password'], $register_user['email'], true);
     144  }
    141145}
    142146
     
    148152function UserAdvManager_Deluser($user_id)
    149153{
    150 
    151154  DeleteConfirmMail($user_id);
    152 
    153 }
    154 
     155}
     156
     157
     158/* Check users registration */
     159add_event_handler('register_user_check', 'UserAdvManager_RegistrationCheck', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
     160
     161function UserAdvManager_RegistrationCheck($err, $user)
     162{
     163  global $errors, $conf;
     164
     165  $PasswordCheck = 0;
     166 
     167  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
     168
     169  /* Password enforcement control */
     170  if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
     171  {
     172    if (!empty($user['password']) and !is_admin())
     173    {
     174      $PasswordCheck = testpassword($user['password']);
     175 
     176      if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
     177      {
     178        $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
     179        return($lang['reg_err_pass'] = l10n_args($message).$conf_nbc_UserAdvManager[15]);
     180      }
     181    }
     182    else if (!empty($user['password']) and is_admin() and isset($conf_nbc_UserAdvManager[16]) and $conf_nbc_UserAdvManager[16] == 'true')
     183    {
     184      $PasswordCheck = testpassword($user['password']);
     185 
     186      if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
     187      {
     188        $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
     189        return($lang['reg_err_pass'] = l10n_args($message).$conf_nbc_UserAdvManager[15]);
     190      }
     191    }
     192  }
     193
     194  /* Username non case sensitive */
     195  if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true')
     196  {
     197    $new_username =  NotSensibleSearchUsername($_POST['login']);
     198    $_POST['login'] = $new_username == '' ? $_POST['login'] : $new_username;
     199  }
     200
     201  /* Username without forbidden keys */
     202  if (isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' and !empty($_POST['login']) and !ValidateUsername($_POST['login']))
     203  {
     204    $_POST['login'] = '';
     205    return($lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_nbc_UserAdvManager[8]."'");
     206  }
     207
     208  /* Email without forbidden domains */
     209  if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']) and !ValidateEmailProvider($_POST['mail_address']))
     210  {
     211    $_POST['login'] = '';
     212    return($lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
     213  }
     214}
     215
     216
     217if (script_basename() == 'profile')
     218{
     219  add_event_handler('loc_begin_profile', 'UserAdvManager_Profile_Init');
     220
     221  function UserAdvManager_Profile_Init()
     222  {
     223    global $conf, $user, $template;
     224
     225    $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
     226
     227    if (isset($_POST['validate']))
     228    {
     229      /* Email without forbidden domains */
     230      if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']))
     231      {
     232        if (!ValidateEmailProvider($_POST['mail_address']))
     233        {
     234          $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
     235          unset($_POST['validate']);
     236        }
     237      }
     238
     239      $typemail = 3;
     240     
     241      if (!empty($_POST['use_new_pwd']))
     242      {
     243        $typemail = 2;
     244       
     245        /* Password enforcement control */
     246        if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
     247        {
     248          $PasswordCheck = testpassword($_POST['use_new_pwd']);
     249         
     250          if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
     251          {
     252            $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
     253            $template->append('errors', l10n_args($message).$conf_nbc_UserAdvManager[15]);
     254            unset($_POST['use_new_pwd']);
     255            unset($_POST['validate']);
     256          }
     257        }
     258      }
     259     
     260      /* Sending registration confirmation by email */
     261      if (( isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
     262      {
     263        $confirm_mail_need = false;
     264             
     265        if (!empty($_POST['mail_address']) and ValidateEmailProvider($_POST['mail_address']))
     266        {
     267          $query = '
     268            SELECT '.$conf['user_fields']['email'].' AS email
     269              FROM '.USERS_TABLE.'
     270            WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
     271            ;';
     272         
     273          list($current_email) = mysql_fetch_row(pwg_query($query));
     274     
     275          if ( $_POST['mail_address'] != $current_email and ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true') )
     276       
     277            $confirm_mail_need = true;
     278        }
     279       
     280        if ((!empty($_POST['use_new_pwd']) and ( isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or $confirm_mail_need) )
     281        {
     282          $query = '
     283            SELECT '.$conf['user_fields']['username'].'
     284              FROM '.USERS_TABLE.'
     285            WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
     286            ;';
     287       
     288          list($username) = mysql_fetch_row(pwg_query($query));
     289
     290          SendMail2User($typemail, $user['id'], $username, $_POST['use_new_pwd'], $_POST['mail_address'], $confirm_mail_need);
     291        }
     292      }
     293    }
     294  }
     295}
    155296
    156297
     
    160301{
    161302  load_language('plugin.lang', NBC_UserAdvManager_PATH);
    162   global $conf, $template, $page, $lang;
    163  
    164   $PasswordCheck = 0;
     303  global $conf, $template, $page, $lang, $errors;
    165304
    166305  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
    167306 
    168 
    169   if ( isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true' )
     307  /* Username non case sensitive */
     308  if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true')
     309  {
    170310    $lang['reg_err_login5'] = l10n('reg_err_login5');
    171    
     311  }
     312 
     313
    172314 
    173 /* User identication */
     315/* User identification */
    174316  if (script_basename() == 'identification')
    175317  {
     
    186328
    187329
    188 
    189330/* Admin user management */
    190331  if (script_basename() == 'admin' and isset($_GET['page']) and $_GET['page'] == 'user_list')
     
    199340      }
    200341
    201 
    202342      /* Username without forbidden keys */
    203343      if (isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' and !empty($_POST['login']) and !ValidateUsername($_POST['login']))
    204344      {
    205         $lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_nbc_UserAdvManager[8]."'";
    206         $_POST['login'] = '';
     345        $template->append('errors', l10n('reg_err_login6')."'".$conf_nbc_UserAdvManager[8]."'");
     346        unset($_POST['submit_add']);
    207347      }
    208348
    209349      /* Email without forbidden domains */
    210       /* This don't work on call of ValidateEmailProvider() function - Why ?? -> Due to the "return = false|true" in function ?*/
    211       //if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['email']) and !ValidateEmailProvider($_POST['email']))
    212       //{
    213       //  $lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'";
    214           //  $_POST['login'] = '';
    215           //}
    216       /* This work with a code copy of ValidateEmailProvider() function */
    217                         if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['email']))
    218                         {
    219                         $ncsemail = strtolower($_POST['email']);
    220                         $conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
    221                         for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
    222                     {
    223                   $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
    224                                 if (preg_match($pattern, $ncsemail))
    225                         {
    226                         $lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'";
    227                         $_POST['login'] = '';
    228                                         }
    229                                 }
    230                         }
    231     }
    232   }
    233 
    234 /* User creation */
    235   if (script_basename() == 'register')
    236   {
    237     if (isset($_POST['submit']))
    238     {
    239       /* Username non case sensitive */
    240       if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true')
    241       {
    242         $new_username =  NotSensibleSearchUsername($_POST['login']);
    243         $_POST['login'] = $new_username == '' ? $_POST['login'] : $new_username;
    244       }
    245 
    246 
    247       /* Username without forbidden keys */
    248       if (isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' and !empty($_POST['login']) and !ValidateUsername($_POST['login']))
    249       {
    250         $lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_nbc_UserAdvManager[8]."'";
    251         $_POST['login'] = '';
    252       }
    253 
    254 
    255   if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
    256   {
    257     //$PasswordCheck = testpassword($_POST['password']);
    258     $PasswordCheck = 10;
    259     if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
    260     {
    261       array_push($errors, l10n('reg_err_login4')."'".$conf_nbc_UserAdvManager[15]."'");
    262       //$lang['reg_err_login1'] = l10n('reg_err_login4')."'".$conf_nbc_UserAdvManager[15]."'";
    263       $_POST['password'] = "";
    264       $_POST['password_conf'] = "";
    265       $PasswordCheck = 0;
    266     }
    267   }
    268 
    269       /* Email without forbidden domains */
    270       /* This don't work on call of ValidateEmailProvider() function - Why ?? -> Due to the "return = false|true" in function ?*/
    271       //if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']) and !ValidateEmailProvider($_POST['mail_address']))
    272       //{
    273       //  $lang['reg_err_mail_address'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'";
    274       //  $_POST['mail_address'] = '';
    275       //}
    276       /* This work with a code copy of ValidateEmailProvider() function */
    277                         if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']))
    278                   {
    279                         $ncsemail = strtolower($_POST['mail_address']);
    280                     $conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
    281                                 for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
    282                           {
    283                                 $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
    284                                 if (preg_match($pattern, $ncsemail))
    285                                   {
    286                                         $lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'";
    287                                                 $_POST['login'] = '';
    288                                   }
    289                           }
    290                   }
    291     }
    292   }
    293 
    294 /* User profile update */
    295   if (script_basename() == 'profile')
    296   {
    297     if (isset($_POST['validate']))
    298     {
    299       /* Sending email to user */
    300       if (( isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
    301       {
    302         global $conf, $user ;
    303         $errors = array();
    304  
    305         $int_pattern = '/^\d+$/';
    306         if (empty($_POST['nb_image_line'])
    307             or (!preg_match($int_pattern, $_POST['nb_image_line'])))
    308         {
    309           $errors[] = l10n('nb_image_line_error');
    310         }
    311      
    312         if (empty($_POST['nb_line_page'])
    313             or (!preg_match($int_pattern, $_POST['nb_line_page'])))
    314         {
    315           $errors[] = l10n('nb_line_page_error');
    316         }
    317      
    318         if ($_POST['maxwidth'] != ''
    319             and (!preg_match($int_pattern, $_POST['maxwidth'])
    320                  or $_POST['maxwidth'] < 50))
    321         {
    322           $errors[] = l10n('maxwidth_error');
    323         }
    324         if ($_POST['maxheight']
    325              and (!preg_match($int_pattern, $_POST['maxheight'])
    326                    or $_POST['maxheight'] < 50))
    327         {
    328           $errors[] = l10n('maxheight_error');
    329         }
    330 
    331         if (isset($_POST['mail_address']))
    332         {
    333           $mail_error = validate_mail_address($user['id'], $_POST['mail_address']);
    334           if (!empty($mail_error))
    335           {
    336             $errors[] = $mail_error;
    337           }
    338          
    339                                         if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']))
    340                                 {
    341                                         $ncsemail = strtolower($_POST['mail_address']);
    342                                 $conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
    343                                                 for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
    344                                         {
    345                                                 $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
    346                                                 if (preg_match($pattern, $ncsemail))
    347                                                 {
    348                                                 $mail_error = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'";
    349                                                 }
    350                                         }
    351                                 }
    352                 if (!empty($mail_error))
    353           {
    354             $errors[] = $mail_error;
    355           }
    356         }
    357 
    358         $typemail = 3;
    359        
    360         if (!empty($_POST['use_new_pwd']))
    361         {
    362           $typemail = 2;
    363 
    364           // password must be the same as its confirmation
    365           if ($_POST['use_new_pwd'] != $_POST['passwordConf'])
    366           {
    367             $errors[] = l10n('New password confirmation does not correspond');
    368           }
    369 
    370           if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
    371           {
    372             //$PasswordCheck = testpassword($_POST['password']);
    373             $PasswordCheck = 10;
    374             if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
    375             {
    376               $lang['reg_err_login1'] = l10n('reg_err_login4')."'".$conf_nbc_UserAdvManager[15]."'";
    377             }
    378           }
    379           else if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true')
    380           {
    381             $lang['reg_err_login1'] = l10n('reg_err_login3');
    382           }
    383 
    384           if ( !defined('IN_ADMIN') )
    385           {// changing password requires old password
    386             $query = '
    387               SELECT '.$conf['user_fields']['password'].' AS password
    388               FROM '.USERS_TABLE.'
    389               WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
    390             ;';
    391             list($current_password) = mysql_fetch_row(pwg_query($query));
    392        
    393             if ($conf['pass_convert']($_POST['password']) != $current_password)
    394             {
    395               $errors[] = l10n('Current password is wrong');
    396             }
    397           }
    398         }
    399        
    400         $confirm_mail_need = false;
    401              
    402         if (!empty($_POST['mail_address']))
    403         {
    404           $query = '
    405             SELECT '.$conf['user_fields']['email'].' AS email
    406             FROM '.USERS_TABLE.'
    407             WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
    408           ;';
    409           list($current_email) = mysql_fetch_row(pwg_query($query));
    410      
    411           if ( $_POST['mail_address'] != $current_email and ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true') )
    412             $confirm_mail_need = true;
    413         }
    414 
    415         if (count($errors) == 0 and (!empty($_POST['use_new_pwd']) and ( isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or $confirm_mail_need) )
    416         {
    417           $query = '
    418             SELECT '.$conf['user_fields']['username'].'
    419             FROM '.USERS_TABLE.'
    420             WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
    421           ;';
    422           list($username) = mysql_fetch_row(pwg_query($query));
    423 
    424 
    425           SendMail2User($typemail, $user['id'], $username, $_POST['use_new_pwd'], $_POST['mail_address'], $confirm_mail_need);
    426         }
     350      if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['email']) and !ValidateEmailProvider($_POST['email']))
     351      {
     352        $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
     353        unset($_POST['submit_add']);
    427354      }
    428355    }
  • extensions/NBC_UserAdvManager/trunk/maintain.inc.php

    r4061 r4124  
    1212  $q = '
    1313    INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
    14     VALUES ("nbc_UserAdvManager","true;false;false;-1;-1;-1;false;false;;-1;;;false;;false;100;","Parametres du plugin nbc UserAdvManager")
     14    VALUES ("nbc_UserAdvManager","true;false;false;-1;-1;-1;false;false;;-1;;;false;;false;100;false","Parametres du plugin nbc UserAdvManager")
    1515  ;';
    1616  pwg_query($q);
Note: See TracChangeset for help on using the changeset viewer.