Changeset 8065


Ignore:
Timestamp:
Dec 9, 2010, 10:46:14 PM (10 years ago)
Author:
Eric
Message:

Pre Branch 2.16 modifications in trunk:

  • Automation of user cleanup and downgrade tasks
Location:
extensions/NBC_UserAdvManager/trunk
Files:
2 added
10 edited

Legend:

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

    r7955 r8065  
    7474$height = '300px';
    7575$areas = array();
    76 array_push( $areas,'UAM_ConfirmMail_Custom_Txt1','UAM_ConfirmMail_Custom_Txt2');
     76array_push( $areas,'UAM_ConfirmMail_Custom_Txt1','UAM_ConfirmMail_Custom_Txt2','UAM_GTAutoDelText');
    7777
    7878if (function_exists('set_fckeditor_instance'))
     
    105105  case 'global':
    106106
    107         if (isset($_POST['submit']) and !is_adviser() and isset($_POST['UAM_Mail_Info']) and isset($_POST['UAM_Username_Char']) and isset($_POST['UAM_Confirm_Mail']) and isset($_POST['UAM_No_Comment_Anonymous']) and isset($_POST['UAM_Password_Enforced']) and isset($_POST['UAM_AdminPassword_Enforced']) and isset($_POST['UAM_GhostUser_Tracker']) and isset($_POST['UAM_Admin_ConfMail']) and isset($_POST['UAM_RedirToProfile']))
     107        if (isset($_POST['submit']) and !is_adviser() and isset($_POST['UAM_Mail_Info']) and isset($_POST['UAM_Username_Char']) and isset($_POST['UAM_Confirm_Mail']) and isset($_POST['UAM_No_Comment_Anonymous']) and isset($_POST['UAM_Password_Enforced']) and isset($_POST['UAM_AdminPassword_Enforced']) and isset($_POST['UAM_GhostUser_Tracker']) and isset($_POST['UAM_Admin_ConfMail']) and isset($_POST['UAM_RedirToProfile']) and isset($_POST['UAM_GTAuto']))
    108108  {
    109109
     
    114114
    115115    $_POST['UAM_GhostTracker_ReminderText'] = str_replace('\"', '"', str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_GhostTracker_ReminderText'])));
    116 
     116   
     117    $_POST['UAM_GTAutoDelText'] = str_replace('\"', '"', str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_GTAutoDelText'])));
     118
     119    $_POST['UAM_GTAutoMailText'] = str_replace('\"', '"', str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UAM_GTAutoMailText'])));
    117120
    118121    //Check if CR-LF exist at begining and end of mail exclusion list - If yes, removes them
     
    121124      array_push($page['errors'], l10n('mail_exclusionlist_error'));
    122125      $UAM_Exclusionlist_Error = true;
     126    }
     127
     128    // Consistency check between ConfirmMail and AutoMail - We cannot use GTAutoMail if ConfirmMail is disabled
     129    $conf_UAM = unserialize($conf['UserAdvManager']);
     130   
     131    if (((isset($conf_UAM['1']) and ($conf_UAM['1'] == 'false' or $conf_UAM['1'] == 'local')) or ($_POST['UAM_Confirm_Mail'] == 'false' or $_POST['UAM_Confirm_Mail'] == 'local')) and $_POST['UAM_GTAutoMail'] == 'true')
     132    {
     133      $newvalue = 'false';
     134      $_POST['UAM_GTAutoMail'] = $newvalue;
     135      array_push($page['errors'], l10n('Error_GTAutoMail_cannot_be_set_without_ConfirmMail'));
    123136    }
    124137
     
    145158      $_POST['UAM_Add_LastVisit_Column'],
    146159      $_POST['UAM_Admin_ConfMail'],
    147       $_POST['UAM_RedirToProfile']);
     160      $_POST['UAM_RedirToProfile'],
     161      $_POST['UAM_GTAuto'],
     162      $_POST['UAM_GTAutoDel'],
     163      $_POST['UAM_GTAutoMail'],
     164      $_POST['UAM_GTAutoDelText'],
     165      $_POST['UAM_GTAutoMailText'],
     166      (isset($_POST['UAM_Downgrade_Group'])?$_POST['UAM_Downgrade_Group']:''),
     167      (isset($_POST['UAM_Downgrade_Status'])?$_POST['UAM_Downgrade_Status']:''));
    148168
    149169    $conf['UserAdvManager'] = serialize($newconf_UAM);
     
    203223  $conf_UAM = unserialize($conf['UserAdvManager']);
    204224
    205   //Group setting for unvalidated and validated users
     225  //Group setting for unvalidated, validated users and downgrade group
    206226  $groups[-1] = '---------';
    207227  $No_Valid = -1;
    208228  $Valid = -1;
     229  $Downgrade = -1;
    209230       
    210231  //Check groups list in database
     
    229250                {
    230251                $Valid = $row['id'];
     252                }
     253    //configuration value for downgrade users
     254    if (isset($conf_UAM[27]) and $conf_UAM[27] == $row['id'])
     255                {
     256                $Downgrade = $row['id'];
    231257                }
    232258  }
     
    248274                        )
    249275        );
     276  //Template initialization for downgrade group
     277  $template->assign(
     278    'Downgrade_Group',
     279                array(
     280      'group_options'=> $groups,
     281      'group_selected' => $Downgrade
     282                        )
     283        );
    250284       
    251   //Status setting for unvalidated and validated users
     285  //Status setting for unvalidated, validated users and downgrade status
    252286  $status_options[-1] = '------------';
    253287  $No_Valid_Status = -1;
    254288  $Valid_Status = -1;
     289  $Downgrade_Status = -1;
    255290       
    256   //Get status values
     291  //Get unvalidate status values
    257292  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
    258293  {
     
    263298          }
    264299         
    265       //Template initialization for unvalidated users group
     300      //Template initialization for unvalidated users status
    266301      $template->assign(
    267302        'No_Confirm_Status',
     
    273308  }
    274309 
    275   //Get status values
     310  //Get validate status values
    276311  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
    277312  {
     
    282317                }
    283318               
    284       //Template initialization for unvalidated users group
     319      //Template initialization for validated users status
    285320      $template->assign(
    286321            'Confirm_Status',
     
    288323                    'Status_options' => $status_options,
    289324                    'Status_selected' => $Valid_Status
     325                    )
     326            );
     327        }
     328
     329  //Get downgrade status values
     330  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
     331  {
     332          $status_options[$status] = l10n('user_status_'.$status);
     333          if (isset($conf_UAM[28]) and $conf_UAM[28] == $status)
     334                {
     335                  $Downgrade_Status = $status;
     336                }
     337               
     338      //Template initialization for validated users status
     339      $template->assign(
     340            'Downgrade_Status',
     341            array(
     342                    'Status_options' => $status_options,
     343                    'Status_selected' => $Downgrade_Status
    290344                    )
    291345            );
     
    339393    'UAM_REDIRTOPROFILE_TRUE'        => $conf_UAM[21]=='true' ?  'checked="checked"' : '' ,
    340394    'UAM_REDIRTOPROFILE_FALSE'       => $conf_UAM[21]=='false' ?  'checked="checked"' : '' ,
     395    'UAM_GTAUTO_TRUE'                => $conf_UAM[22]=='true' ?  'checked="checked"' : '' ,
     396    'UAM_GTAUTO_FALSE'               => $conf_UAM[22]=='false' ?  'checked="checked"' : '' ,
     397    'UAM_GTAUTODEL_TRUE'             => $conf_UAM[23]=='true' ?  'checked="checked"' : '' ,
     398    'UAM_GTAUTODEL_FALSE'            => $conf_UAM[23]=='false' ?  'checked="checked"' : '' ,
     399    'UAM_GTAUTOMAIL_TRUE'            => $conf_UAM[24]=='true' ?  'checked="checked"' : '' ,
     400    'UAM_GTAUTOMAIL_FALSE'           => $conf_UAM[24]=='false' ?  'checked="checked"' : '' ,
     401    'UAM_GTAUTODEL_TEXT'             => $conf_UAM[25],
     402    'UAM_GTAUTOMAILTEXT'             => $conf_UAM[26],
     403                'UAM_Downgrade_Group'            => $conf_UAM[27],
     404                'UAM_Downgrade_Status'           => $conf_UAM[28],
    341405                'UAM_PASSWORD_TEST_SCORE'        => $UAM_Password_Test_Score,
    342406    'UAM_ERROR_REPORTS4'             => $UAM_Exclusionlist_Error,
  • extensions/NBC_UserAdvManager/trunk/admin/template/global.tpl

    r7935 r8065  
    202202            <br><br>
    203203                </li>
    204 
     204{if $UAM_CONFIRM_MAIL_FALSE}
     205<div class="uam_hide">
     206{/if}
    205207          <ul>
    206208                  <li>
     
    262264
    263265          <br><hr><br>
    264        
    265           <div id="uam_notice">{'UAM_Confirm_grpstat_notice'|@translate}</div>
    266             <br>
    267             <li>
    268               <label class="cluetip" title="{'UAM_confirmgrpTitle'|translate}|{'UAM_confirmgrpTitle_d'|translate}">
    269                 {'UAM_Confirm_Group'|@translate}
    270               </label>
    271             <br><br>
    272             </li>
    273 
    274             <ul>
     266
     267          <ul>
     268            <div id="uam_notice">{'UAM_Confirm_grpstat_notice'|@translate}</div>
     269              <br>
    275270              <li>
    276                 <label>
    277                   {'UAM_No_Confirm_Group'|@translate}
    278                 </label><br>
    279                 <div id="uam_leftmargin">
    280                   {html_options name="UAM_No_Confirm_Group" options=$No_Confirm_Group.group_options selected=$No_Confirm_Group.group_selected}
    281                 </div>
    282                 <br><br>
     271                <label class="cluetip" title="{'UAM_confirmgrpTitle'|translate}|{'UAM_confirmgrpTitle_d'|translate}">
     272                  {'UAM_Confirm_Group'|@translate}
     273                </label>
     274              <br><br>
    283275              </li>
    284      
     276
     277              <ul>
     278                <li>
     279                  <label>
     280                    {'UAM_No_Confirm_Group'|@translate}
     281                  </label><br>
     282                  <div id="uam_leftmargin">
     283                    {html_options name="UAM_No_Confirm_Group" options=$No_Confirm_Group.group_options selected=$No_Confirm_Group.group_selected}
     284                  </div>
     285                  <br><br>
     286                </li>
     287
     288                <li>
     289                  <label>
     290                    {'UAM_Validated_Group'|@translate}
     291                  </label><br>
     292                  <div id="uam_leftmargin">
     293                    {html_options name="UAM_Validated_Group" options=$Validated_Group.group_options selected=$Validated_Group.group_selected}
     294                  </div>
     295                  <br><br>
     296                </li>
     297              </ul>
     298
    285299              <li>
    286                 <label>
    287                   {'UAM_Validated_Group'|@translate}
    288                 </label><br>
    289                 <div id="uam_leftmargin">
    290                   {html_options name="UAM_Validated_Group" options=$Validated_Group.group_options selected=$Validated_Group.group_selected}
    291                 </div>
    292                 <br><br>
     300                <label class="cluetip" title="{'UAM_confirmstatTitle'|translate}|{'UAM_confirmstatTitle_d'|translate}">
     301                  {'UAM_Confirm_Status'|@translate}
     302                </label>
     303              <br><br>
    293304              </li>
    294             </ul>
    295 
    296             <li>
    297               <label class="cluetip" title="{'UAM_confirmstatTitle'|translate}|{'UAM_confirmstatTitle_d'|translate}">
    298                 {'UAM_Confirm_Status'|@translate}
    299               </label>
    300             <br><br>
    301             </li>
    302 
    303             <ul>
     305
     306              <ul>
     307                <li>
     308                  <label>
     309                    {'UAM_No_Confirm_Status'|@translate}
     310                  </label><br>
     311                  <div id="uam_leftmargin">
     312                    {html_options name="UAM_No_Confirm_Status" options=$No_Confirm_Status.Status_options selected=$No_Confirm_Status.Status_selected}
     313                  </div>
     314                  <br><br>
     315                </li>
     316
     317                <li>
     318                  <label>
     319                    {'UAM_Validated_Status'|@translate}
     320                  </label><br>
     321                  <div id="uam_leftmargin">
     322                    {html_options name="UAM_Validated_Status" options=$Confirm_Status.Status_options selected=$Confirm_Status.Status_selected}
     323                  </div>
     324                  <br><br>
     325                </li>
     326              </ul>
     327
     328              <br><hr><br>
     329
    304330              <li>
    305                 <label>
    306                   {'UAM_No_Confirm_Status'|@translate}
    307                 </label><br>
    308                 <div id="uam_leftmargin">
    309                   {html_options name="UAM_No_Confirm_Status" options=$No_Confirm_Status.Status_options selected=$No_Confirm_Status.Status_selected}
    310                 </div>
    311                 <br><br>
     331                <label class="cluetip" title="{'UAM_validationlimitTitle'|translate}|{'UAM_validationlimitTitle_d'|translate}">
     332                  {'UAM_ValidationLimit_Info'|@translate}
     333                </label>
     334              <br><br>
     335                <input type="radio" value="false" {$UAM_CONFIRMMAIL_TIMEOUT_FALSE} name="UAM_ConfirmMail_TimeOut">
     336                  {'UAM_ConfirmMail_TimeOut_false'|@translate}<br>
     337                <input type="radio" value="true" {$UAM_CONFIRMMAIL_TIMEOUT_TRUE} name="UAM_ConfirmMail_TimeOut">
     338                  {'UAM_ConfirmMail_TimeOut_true'|@translate}
     339                <input type="text" name="UAM_ConfirmMail_Delay" value="{$UAM_CONFIRMMAIL_DELAY}" size="5" style="text-align: center;"><br><br>
    312340              </li>
    313341
    314342              <li>
    315                 <label>
    316                   {'UAM_Validated_Status'|@translate}
    317                 </label><br>
    318                 <div id="uam_leftmargin">
    319                   {html_options name="UAM_Validated_Status" options=$Confirm_Status.Status_options selected=$Confirm_Status.Status_selected}
    320                 </div>
    321                 <br><br>
     343                <label class="cluetip" title="{'UAM_remailTitle'|translate}|{'UAM_remailTitle_d'|translate}">
     344                  {'UAM_ConfirmMail_Remail'|@translate}
     345                </label>
     346              <br><br>
     347                <input type="radio" value="false" {$UAM_CONFIRMMAIL_REMAIL_FALSE} name="UAM_ConfirmMail_Remail">
     348                  {'UAM_ConfirmMail_Remail_false'|@translate}<br>
     349                <input type="radio" value="true" {$UAM_CONFIRMMAIL_REMAIL_TRUE} name="UAM_ConfirmMail_Remail">
     350                  {'UAM_ConfirmMail_Remail_true'|@translate}<br><br>
    322351              </li>
    323             </ul>
    324 
    325             <br><hr><br>
    326 
    327             <li>
    328               <label class="cluetip" title="{'UAM_validationlimitTitle'|translate}|{'UAM_validationlimitTitle_d'|translate}">
    329                 {'UAM_ValidationLimit_Info'|@translate}
    330               </label>
    331             <br><br>
    332               <input type="radio" value="false" {$UAM_CONFIRMMAIL_TIMEOUT_FALSE} name="UAM_ConfirmMail_TimeOut">
    333                  {'UAM_ConfirmMail_TimeOut_false'|@translate}<br>
    334               <input type="radio" value="true" {$UAM_CONFIRMMAIL_TIMEOUT_TRUE} name="UAM_ConfirmMail_TimeOut">
    335                  {'UAM_ConfirmMail_TimeOut_true'|@translate}
    336               <input type="text" name="UAM_ConfirmMail_Delay" value="{$UAM_CONFIRMMAIL_DELAY}" size="5" style="text-align: center;"><br><br>
    337             </li>
    338 
    339             <li>
    340               <label class="cluetip" title="{'UAM_remailTitle'|translate}|{'UAM_remailTitle_d'|translate}">
    341                 {'UAM_ConfirmMail_Remail'|@translate}
    342               </label>
    343             <br><br>
    344               <input type="radio" value="false" {$UAM_CONFIRMMAIL_REMAIL_FALSE} name="UAM_ConfirmMail_Remail">
    345                  {'UAM_ConfirmMail_Remail_false'|@translate}<br>
    346               <input type="radio" value="true" {$UAM_CONFIRMMAIL_REMAIL_TRUE} name="UAM_ConfirmMail_Remail">
    347                  {'UAM_ConfirmMail_Remail_true'|@translate}<br><br>
    348             </li>
    349 
    350             <ul>
    351               <li>
    352                 <label class="cluetip" title="{'UAM_remailtxt1Title'|translate}|{'UAM_remailtxt1Title_d'|translate}">
    353                   {'UAM_ConfirmMail_ReMail_Txt1'|@translate}
    354                 </label>
    355                 <br><br>
    356                   <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt1" id="UAM_ConfirmMail_ReMail_Txt1" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT1}</textarea>
    357                 <br><br>
    358               </li>
     352
     353              <ul>
     354                <li>
     355                  <label class="cluetip" title="{'UAM_remailtxt1Title'|translate}|{'UAM_remailtxt1Title_d'|translate}">
     356                    {'UAM_ConfirmMail_ReMail_Txt1'|@translate}
     357                  </label>
     358                  <br><br>
     359                    <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt1" id="UAM_ConfirmMail_ReMail_Txt1" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT1}</textarea>
     360                  <br><br>
     361                </li>
    359362<!--
    360               {* if 'FCK_PATH'|@defined *}
    361                 <div style="text-align:right;">
    362                   <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt1'); return false;">FCK Editor On/Off</a>
    363                 </div>
    364               {* /if *}
     363                {* if 'FCK_PATH'|@defined *}
     364                  <div style="text-align:right;">
     365                    <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt1'); return false;">FCK Editor On/Off</a>
     366                  </div>
     367                {* /if *}
    365368-->
    366369
    367               <li>
    368                 <label class="cluetip" title="{'UAM_remailtxt2Title'|translate}|{'UAM_remailtxt2Title_d'|translate}">
    369                   {'UAM_ConfirmMail_ReMail_Txt2'|@translate}
    370                 </label>
    371                 <br><br>
    372                   <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt2" id="UAM_ConfirmMail_ReMail_Txt2" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT2}</textarea><br>
    373               </li>
     370                <li>
     371                  <label class="cluetip" title="{'UAM_remailtxt2Title'|translate}|{'UAM_remailtxt2Title_d'|translate}">
     372                    {'UAM_ConfirmMail_ReMail_Txt2'|@translate}
     373                  </label>
     374                  <br><br>
     375                    <textarea class="uam_textfields" name="UAM_ConfirmMail_ReMail_Txt2" id="UAM_ConfirmMail_ReMail_Txt2" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_CONFIRMMAIL_REMAIL_TXT2}</textarea><br>
     376                </li>
    374377<!--
    375               {* if 'FCK_PATH'|@defined *}
    376                 <div style="text-align:right;">
    377                   <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt2'); return false;">FCK Editor On/Off</a>
    378                 </div>
    379               {* /if *}
     378                {* if 'FCK_PATH'|@defined *}
     379                  <div style="text-align:right;">
     380                    <a href="#" onClick="toogleEditor('UAM_ConfirmMail_ReMail_Txt2'); return false;">FCK Editor On/Off</a>
     381                  </div>
     382                {* /if *}
    380383-->
    381             </ul>
     384              </ul>
     385          </ul>
     386{if $UAM_CONFIRM_MAIL_FALSE}
     387</div>
     388{/if}
    382389        </ul>
    383390      </fieldset>
     
    401408       
    402409          <ul>
    403             <li><label class="cluetip" title="{'UAM_gttextTitle'|translate}|{'UAM_gttextTitle_d'|translate}">{'UAM_GhostTracker_ReminderText'|@translate}</label><br><br>
    404               <textarea class="uam_textfields" name="UAM_GhostTracker_ReminderText" id="UAM_GhostTracker_ReminderText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GHOSTRACKER_REMINDERTEXT}</textarea>
    405             <br><br>
    406             </li>
    407 
     410            <li>
     411              <label class="cluetip" title="{'UAM_gttextTitle'|translate}|{'UAM_gttextTitle_d'|translate}">{'UAM_GhostTracker_ReminderText'|@translate}</label>
     412            <br><br>
     413              <textarea class="uam_textfields" name="UAM_GhostTracker_ReminderText" id="UAM_GhostTracker_ReminderText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GHOSTRACKER_REMINDERTEXT}</textarea><br><br>
     414            </li>
    408415<!--
    409416            {* if 'FCK_PATH'|@defined *}
     
    413420            {* /if *}
    414421-->
     422
     423            <li><label class="cluetip" title="{'UAM_GTAutoTitle'|translate}|{'UAM_GTAutoTitle_d'|translate}">{'UAM_GTAuto'|@translate}</label>
     424            <br><br>
     425              <input type="radio" value="false" {$UAM_GTAUTO_FALSE} name="UAM_GTAuto">{'UAM_GTAuto_false'|@translate}<br>
     426              <input type="radio" value="true" {$UAM_GTAUTO_TRUE} name="UAM_GTAuto">{'UAM_GTAuto_true'|@translate}<br><br>
     427            </li>
     428           
     429            {if $UAM_GTAUTO_FALSE}
     430              <div class="uam_hide">
     431            {/if}
     432                <ul>
     433                  <li><label class="cluetip" title="{'UAM_GTAutoDelTitle'|translate}|{'UAM_GTAutoDelTitle_d'|translate}">{'UAM_GTAutoDel'|@translate}</label>
     434                  <br><br>
     435                    <input type="radio" value="false" {$UAM_GTAUTODEL_FALSE} name="UAM_GTAutoDel">{'UAM_GTAutoDel_false'|@translate}<br>
     436                    <input type="radio" value="true" {$UAM_GTAUTODEL_TRUE} name="UAM_GTAutoDel">{'UAM_GTAutoDel_true'|@translate}<br><br>
     437                      <textarea class="uam_textfields" name="UAM_GTAutoDelText" id="UAM_GTAutoDelText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GTAUTODEL_TEXT}</textarea>
     438                      <br><br>
     439                     
     440                      {if 'FCK_PATH'|@defined}
     441                        <div style="text-align:right;">
     442                          <a href="#" onClick="toogleEditor('UAM_GTAutoDelText'); return false;">FCK Editor On/Off</a>
     443                        </div>
     444                      {/if}
     445                  </li>
     446
     447                  {if $UAM_GTAUTODEL_TRUE}
     448                    <div class="uam_hide">
     449                  {/if}
     450                      <li><label class="cluetip" title="{'UAM_GTAutoGpTitle'|translate}|{'UAM_GTAutoGpTitle_d'|translate}">{'UAM_GTAutoGp'|@translate}</label><br><br>
     451                        <ul>
     452                          <li>
     453                            <label>
     454                              {'UAM_Expired_Group'|@translate}
     455                            </label>
     456                          <br>
     457                            <div id="uam_leftmargin">
     458                              {html_options name="UAM_Downgrade_Group" options=$Downgrade_Group.group_options selected=$Downgrade_Group.group_selected}
     459                            </div>
     460                          <br><br>
     461                          </li>
     462
     463                          <li>
     464                            <label>
     465                              {'UAM_Expired_Status'|@translate}
     466                            </label>
     467                          <br>
     468                            <div id="uam_leftmargin">
     469                              {html_options name="UAM_Downgrade_Status" options=$Downgrade_Status.Status_options selected=$Downgrade_Status.Status_selected}
     470                            </div>
     471                          <br><br>
     472                          </li>
     473                        </ul>
     474
     475                        <ul>
     476                          <li><label class="cluetip" title="{'UAM_GTAutoMailTitle'|translate}|{'UAM_GTAutoMailTitle_d'|translate}">{'UAM_GTAutoMail'|@translate}</label><br><br>
     477                            <input type="radio" value="false" {$UAM_GTAUTOMAIL_FALSE} name="UAM_GTAutoMail">{'UAM_GTAutoMail_false'|@translate}<br>
     478                            <input type="radio" value="true" {$UAM_GTAUTOMAIL_TRUE} name="UAM_GTAutoMail">{'UAM_GTAutoMail_true'|@translate}<br><br><br>
     479                            <textarea class="uam_textfields" name="UAM_GTAutoMailText" id="UAM_GTAutoMailText" rows="10" {$TAG_INPUT_ENABLED}>{$UAM_GTAUTOMAILTEXT}</textarea><br><br>
     480                          </li>
     481                        </ul>
     482                      </li>
     483                  {if $UAM_GTAUTODEL_TRUE}
     484                    </div>
     485                  {/if}
     486                </ul>
     487            {if $UAM_GTAUTO_FALSE}
     488              </div>
     489            {/if}
    415490          </ul>
    416    
     491
     492          <br><hr><br>
     493
    417494          <li><label class="cluetip" title="{'UAM_lastvisitTitle'|translate}|{'UAM_lastvisitTitle_d'|translate}">{'UAM_LastVisit'|@translate}</label><br><br>
    418495            <input type="radio" value="false" {$UAM_ADDLASTVISIT_FALSE} name="UAM_Add_LastVisit_Column">{'UAM_LastVisit_false'|@translate}<br>
  • extensions/NBC_UserAdvManager/trunk/admin/template/uam.css

    r7106 r8065  
    1010  text-decoration: underline;
    1111  font-weight:bold;
     12}
     13
     14div.uam_hide
     15{
     16  display: none;
    1217}
    1318
  • extensions/NBC_UserAdvManager/trunk/changelog.txt.php

    r7955 r8065  
    204204
    205205-- 2.15.9 : Bug 2010 fixed - No confirmation email when information email is not set
     206
     207-- 2.15.10 : Bug 2050 fixed - Compatibility with Captcha
     208
     209
     210***************************************
     211***** Plugin history (branch 2.16)*****
     212***************************************
     213-- 2.16.0 : Bug 1430 and 1840 fixed - Automated tasks are available to delete or downgrade ghost users with or without email notification
     214
    206215*/
    207216?>
  • extensions/NBC_UserAdvManager/trunk/include/functions.inc.php

    r7968 r8065  
    152152 * Additional controls on user registration check
    153153 */
    154 function UAM_RegistrationCheck($err, $user)
    155 {
    156   global $errors, $conf;
     154function UAM_RegistrationCheck($errors, $user)
     155{
     156  global $conf;
    157157
    158158  // Exclusion of Adult_Content users
    159159  if ($user['username'] != "16" and $user['username'] != "18")
    160160  {
    161 
    162 // ***********************************************************
    163 // We need to reset the standard Piwigo's register controls   
    164 // because the call of register_user_check trigger resets them
    165 // ***********************************************************
    166 
    167     // **********************************
    168     // Standard Piwigo's username control
    169     // **********************************
    170     if ($_POST['login'] == '')
    171     {
    172       return l10n('reg_err_login1');
    173     }
    174     if (preg_match('/^.* $/', $_POST['login']))
    175     {
    176       return l10n('reg_err_login2');
    177     }
    178     if (preg_match('/^ .*$/', $_POST['login']))
    179     {
    180       return l10n('reg_err_login3');
    181     }
    182     if (get_userid($_POST['login']))
    183     {
    184       return l10n('reg_err_login5');
    185     }
    186 
    187     if ($conf['insensitive_case_logon'] == true)
    188     {
    189       $login_error = validate_login_case($_POST['login']);
    190       if ($login_error != '')
    191       {
    192         return l10n($login_error);
    193       }
    194     }
    195 
    196     if (script_basename() == 'admin' and isset($_GET['page']) and $_GET['page'] == 'user_list') // not the same email variable if we are on users registration page or on admin's user registration page
    197     {
    198       // Email doblons check
    199       $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // before  arobase
    200       $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // domain name
    201       $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i';
    202  
    203       if (!preg_match($regex, $_POST['email']))
    204       {
    205         return l10n('reg_err_mail_address');
    206       }
    207    
    208       $query = '
    209 SELECT count(*)
    210 FROM '.USERS_TABLE.'
    211 WHERE upper('.$conf['user_fields']['email'].') = upper(\''.$_POST['email'].'\')
    212 ;';
    213       list($count) = pwg_db_fetch_row(pwg_query($query));
    214       if ($count != 0)
    215       {
    216         return l10n('reg_err_mail_address_dbl');
    217       }
    218     }
    219 
    220     if (script_basename() == 'register') // not the same email variable if we are on users registration page or on admin's user registration page
    221     {
    222       // Email doblons check
    223       $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // before  arobase
    224       $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // domain name
    225       $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i';
    226  
    227       if (!preg_match($regex, $_POST['mail_address']))
    228       {
    229         return l10n('reg_err_mail_address');
    230       }
    231    
    232       $query = '
    233 SELECT count(*)
    234 FROM '.USERS_TABLE.'
    235 WHERE upper('.$conf['user_fields']['email'].') = upper(\''.$_POST['mail_address'].'\')
    236 ;';
    237       list($count) = pwg_db_fetch_row(pwg_query($query));
    238       if ($count != 0)
    239       {
    240         return l10n('reg_err_mail_address_dbl');
    241       }
    242     }
    243 // ******************************************
    244 // End of Piwigo's standard register controls
    245 // ******************************************
    246 
    247 
    248 // ******************************************
    249 // Here begins the advanced register controls
    250 // ******************************************
     161    load_language('plugin.lang', UAM_PATH);
     162
    251163    $PasswordCheck = 0;
    252164
     
    263175        {
    264176          $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
    265           return($lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14]);
     177          $lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14];
     178          array_push($errors, $lang['reg_err_pass']);
    266179        }
    267180      }
     
    273186        {
    274187          $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
    275           return($lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14]);
     188          $lang['reg_err_pass'] = l10n_args($message).$conf_UAM[14];
     189          array_push($errors, $lang['reg_err_pass']);
    276190        }
    277191      }
     
    279193
    280194    // Username without forbidden keys
    281     if (isset($conf_UAM[6]) and $conf_UAM[6] == 'true' and !empty($_POST['login']) and ValidateUsername($_POST['login']) and !is_admin())
    282     {
    283       $_POST['login'] = '';
    284       return($lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_UAM[7]."'");
     195    if (isset($conf_UAM[6]) and $conf_UAM[6] == 'true' and !empty($user['username']) and ValidateUsername($user['username']) and !is_admin())
     196    {
     197      $lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_UAM[7]."'";
     198      array_push($errors, $lang['reg_err_login1']);
    285199    }
    286200
    287201    // Email without forbidden domains
    288     if (isset($conf_UAM[11]) and $conf_UAM[11] == 'true' and !empty($_POST['mail_address']) and ValidateEmailProvider($_POST['mail_address']) and !is_admin())
    289     {
    290       $_POST['mail_address'] = '';
    291       return($lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_UAM[12]."'");
    292     }
     202    if (isset($conf_UAM[11]) and $conf_UAM[11] == 'true' and !empty($user['email']) and ValidateEmailProvider($user['email']) and !is_admin())
     203    {
     204      $lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_UAM[12]."'";
     205      array_push($errors, $lang['reg_err_login1']);
     206    }
     207    return $errors;
    293208  }
    294209}
     
    306221  {
    307222    $user_idsOK = array();
    308     if (!check_consult($user['id'], $user_idsOK))
     223    if (!UAM_check_profile($user['id'], $user_idsOK))
    309224    {
    310225      $user_idsOK[] = $user['id'];
     
    397312 * Triggered on login_success
    398313 *
    399  * redirects a visitor (except for admins, webmasters and generic statuses) to his profile.php page
    400  *
    401  * Thx to LucMorizur
    402  */
    403 function UAM_RedirectToProfile()
     314 * Triggers scheduled tasks at login
     315 * Redirects a visitor (except for admins, webmasters and generic statuses) to his profile.php page (Thx to LucMorizur)
     316 *
     317 */
     318function UAM_LoginTasks()
    404319{
    405320  global $conf, $user;
     
    407322  $conf_UAM = unserialize($conf['UserAdvManager']);
    408323 
     324  // Performing scheduled tasks 
     325  if ((isset($conf_UAM[21]) and $conf_UAM[21] == 'true'))
     326  {
     327    if ((isset($conf_UAM[22]) and $conf_UAM[22] == 'true'))
     328    {
     329      UAM_ScheduledTasks();
     330    }
     331  }
     332
     333  // Performing redirection 
    409334  $query ='
    410335SELECT user_id, status
     
    413338;';
    414339  $data = pwg_db_fetch_assoc(pwg_query($query));
    415  
     340
    416341  if ($data['status'] <> "admin" and $data['status'] <> "webmaster" and $data['status'] <> "generic")
    417342  {
    418     if ((isset($conf_UAM[21]) and $conf_UAM[21] == 'true'))
    419     {
    420       $user_idsOK = array();
    421       if (!check_consult($user['id'], $user_idsOK))
    422         redirect(PHPWG_ROOT_PATH.'profile.php');
    423     }
    424   }
    425 }
    426 
    427 /**
    428  * Triggered on login_success
    429  *
    430  * Executes optional post-login tasks like GhostTracker auto tasks
    431  *
    432  */
    433 function UAM_Tasks()
    434 {
    435   global $conf, $user;
     343    $user_idsOK = array();
     344    if (!UAM_check_profile($user['id'], $user_idsOK))
     345      redirect(PHPWG_ROOT_PATH.'profile.php');
     346  }
     347}
     348
     349/**
     350 * Triggered on UAM_LoginTasks()
     351 *
     352 * Executes optional post-login tasks
     353 *
     354 */
     355function UAM_ScheduledTasks()
     356{
     357  global $conf, $user, $page;
    436358 
    437359  $conf_UAM = unserialize($conf['UserAdvManager']);
     360 
     361  $collection = array();
     362 
     363  $page['filtered_users'] = get_ghosts_autotasks();
    438364
    439365  // Ghost accounts auto deletion
    440366  if ((isset($conf_UAM[22]) and $conf_UAM[22] == 'true') and (isset($conf_UAM[23]) and $conf_UAM[23] == 'true'))
    441   {
    442    
     367  {       
     368                foreach($page['filtered_users'] as $listed_user)
     369    {
     370      array_push($collection, $listed_user['id']);
     371    }
     372
     373    if (count($collection) > 0)
     374        {
     375        if (in_array($user['id'], $collection))
     376        {
     377        invalidate_user_cache();
     378       
     379        foreach ($collection as $user_id)
     380        {
     381          //delete_user($user_id);
     382        }
     383        logout_user();
     384        redirect(UAM_PATH.'del_account.php');
     385        }
     386      else
     387      {
     388        foreach ($collection as $user_id)
     389        {
     390          //delete_user($user_id);
     391        }
     392      }
     393    }
    443394  }
    444395
    445396  // Ghost accounts auto group or status downgrade with or without information email sending
    446397  if ((isset($conf_UAM[22]) and $conf_UAM[22] == 'true') and (isset($conf_UAM[23]) and $conf_UAM[23] == 'false') and ((isset($conf_UAM[27]) and $conf_UAM[27] <> -1) or (isset($conf_UAM[28]) and $conf_UAM[28] <> -1)))
    447   {
    448    
     398  {
     399                foreach($page['filtered_users'] as $listed_user)
     400    {
     401      array_push($collection, $listed_user['id']);
     402    }
     403
     404    if (count($collection) > 0)
     405        {
     406        if (in_array($user['id'], $collection))
     407        {
     408        foreach ($collection as $user_id)
     409        {
     410          // Auto change group and / or status
     411          // Delete user from all groups
     412          $query = "
     413DELETE FROM ".USER_GROUP_TABLE."
     414WHERE user_id = '".$user_id."'
     415  AND (
     416    group_id = '".$conf_UAM[2]."'
     417  OR
     418    group_id = '".$conf_UAM[3]."'
     419  )
     420;";
     421
     422          pwg_query($query);
     423
     424          // Change user status
     425          if (!is_admin() and $conf_UAM[28] <> -1)
     426          {
     427            $query = "
     428UPDATE ".USER_INFOS_TABLE."
     429SET status = '".$conf_UAM[28]."'
     430WHERE user_id = '".$user_id."'
     431;";
     432            pwg_query($query);
     433          }
     434
     435          // Change user group
     436          if (!is_admin() and $conf_UAM[27] <> -1)
     437          {
     438            $query = "
     439INSERT INTO ".USER_GROUP_TABLE."
     440  (user_id, group_id)
     441VALUES
     442  ('".$user_id."', '".$conf_UAM[27]."')
     443;";
     444            pwg_query($query);
     445          }
     446         
     447          // Auto send email notification on group / status downgrade
     448          if ((isset($conf_UAM[24]) and $conf_UAM[24] == 'true'))
     449          {
     450            // Reset confirmed user status to unvalidated
     451                                                $query = '
     452UPDATE '.USER_CONFIRM_MAIL_TABLE.'
     453SET date_check = NULL
     454WHERE user_id = "'.$user_id.'"
     455;';
     456                                                pwg_query($query);
     457
     458            // Get users information for email notification
     459                                                $query = '
     460SELECT id, username, mail_address
     461FROM '.USERS_TABLE.'
     462WHERE id = '.$user_id.'
     463;';
     464                                                $data = pwg_db_fetch_assoc(pwg_query($query));
     465           
     466            demotion_mail($user_id, $data['username'], $data['mail_address']);
     467          }
     468        }
     469        invalidate_user_cache();
     470        log_user($user['id'], false);
     471        redirect(make_index_url());
     472        }
     473      else
     474      {
     475        foreach ($collection as $user_id)
     476        {
     477          // Auto change group and / or status
     478          // Delete user from all groups
     479          $query = "
     480DELETE FROM ".USER_GROUP_TABLE."
     481WHERE user_id = '".$user_id."'
     482  AND (
     483    group_id = '".$conf_UAM[2]."'
     484  OR
     485    group_id = '".$conf_UAM[3]."'
     486  )
     487;";
     488
     489          pwg_query($query);
     490
     491          // Change user status
     492          if (!is_admin() and $conf_UAM[28] <> -1)
     493          {
     494            $query = "
     495UPDATE ".USER_INFOS_TABLE."
     496SET status = '".$conf_UAM[28]."'
     497WHERE user_id = '".$user_id."'
     498;";
     499            pwg_query($query);
     500          }
     501
     502          // Change user group
     503          if (!is_admin() and $conf_UAM[27] <> -1)
     504          {
     505            $query = "
     506INSERT INTO ".USER_GROUP_TABLE."
     507  (user_id, group_id)
     508VALUES
     509  ('".$user_id."', '".$conf_UAM[27]."')
     510;";
     511            pwg_query($query);
     512          }
     513
     514          // Auto send email notification on group / status downgrade
     515          if ((isset($conf_UAM[24]) and $conf_UAM[24] == 'true'))
     516          {
     517            // Reset confirmed user status to unvalidated
     518                                                $query = '
     519UPDATE '.USER_CONFIRM_MAIL_TABLE.'
     520SET date_check = NULL
     521WHERE user_id = "'.$user_id.'"
     522;';
     523                                                pwg_query($query);
     524
     525            // Get users information for email notification
     526                                                $query = '
     527SELECT id, username, mail_address
     528FROM '.USERS_TABLE.'
     529WHERE id = '.$user_id.'
     530;';
     531                                                $data = pwg_db_fetch_assoc(pwg_query($query));
     532           
     533            demotion_mail($user_id, $data['username'], $data['mail_address']);
     534          }
     535        }
     536      }
     537    }
    449538  }
    450539}
     
    513602function SendMail2User($typemail, $id, $username, $password, $email, $confirm)
    514603{
    515   // Only available for next Piwigo release (bug in switch_lang function)
    516604  global $conf;
    517605
     
    659747function ResendMail2User($typemail, $user_id, $username, $email, $confirm)
    660748{
    661   // Only available for next Piwigo release (bug in switch_lang function)
    662749  global $conf;
    663750
     
    667754 
    668755        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
    669  
    670         $infos1_perso = "";
    671   $infos2_perso = "";
    672756 
    673757// We have to get the user's language in database
     
    765849function ghostreminder($user_id, $username, $email)
    766850{
    767   // Only available for next Piwigo release (bug in switch_lang function)
    768851  global $conf;
    769852
     
    824907
    825908/**
     909 * Function called from functions.inc.php to send notification email when user have been downgraded
     910 *
     911 * @param : user id, username, email address, confirmation
     912 *
     913 */
     914function demotion_mail($id, $username, $email)
     915{
     916  global $conf;
     917
     918  $conf_UAM = unserialize($conf['UserAdvManager']);
     919 
     920        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     921 
     922        $custom_txt = "";
     923
     924// We have to get the user's language in database
     925  $query ='
     926SELECT user_id, language
     927FROM '.USER_INFOS_TABLE.'
     928WHERE user_id = '.$id.'
     929;';
     930  $data = pwg_db_fetch_assoc(pwg_query($query));
     931
     932// Check if user is already registered (profile changing) - If not (new registration), language is set to current gallery language
     933  if (empty($data))
     934  {
     935// And switch gallery to this language before using personalized and multilangual contents
     936    $language = pwg_get_session_var( 'lang_switch', $user['language'] );
     937    switch_lang_to($language);
     938  }
     939  else
     940  {
     941// And switch gallery to this language before using personalized and multilangual contents
     942    $language = $data['language']; // Usefull for debugging
     943    switch_lang_to($data['language']);
     944    load_language('plugin.lang', UAM_PATH);
     945  }
     946
     947  $subject = '['.$conf['gallery_title'].'] '.l10n_args(get_l10n_args('Demotion of %s', stripslashes($username)));
     948     
     949  if (isset($conf_UAM[26]) and $conf_UAM[26] <> '')
     950  {
     951    if (function_exists('get_user_language_desc'))
     952    {
     953      $custom_txt = get_user_language_desc($conf_UAM[26])."\n\n";
     954    }
     955    else $custom_txt = l10n($conf_UAM[26])."\n\n";
     956  }
     957
     958  $infos1 = array(
     959    get_l10n_args('User: %s', stripslashes($username)),
     960    get_l10n_args('Email: %s', $email),
     961    get_l10n_args('', ''),
     962  );
     963
     964  $infos2 = array
     965  (
     966    get_l10n_args('Link: %s', ResetConfirmMail($id)),
     967    get_l10n_args('', ''),
     968  );
     969
     970
     971// Sending the email with subject and contents
     972  pwg_mail($email, array(
     973    'subject' => $subject,
     974    'content' => ($custom_txt.l10n_args($infos1)."\n\n".l10n_args($infos2)."\n\n").get_absolute_root_url(),
     975  ));
     976
     977// **********************
     978// Email sending debugger
     979// This is only to trace
     980// the send of emails for
     981// debugging             
     982// **********************
     983//$content = ($infos1."\n\n".$infos2."\n\n").get_absolute_root_url();   
     984//MailLog($email,$subject,$content,$language);
     985// **********************
     986
     987// Switching back to default language
     988switch_lang_back();
     989}
     990
     991/**
    826992 * Function called from functions AddConfirmMail and ResetConfirmMail for validation key generation
    827993 *
     
    8801046    pwg_query($query);
    8811047
     1048    // Delete user from all groups
    8821049    $query = "
    8831050DELETE FROM ".USER_GROUP_TABLE."
     
    8911058    pwg_query($query);
    8921059
     1060    // Set user unvalidated status
    8931061    if (!is_admin() and $conf_UAM[8] <> -1)
    8941062    {
     
    9011069    }
    9021070
    903     if ( $conf_UAM[2] <> -1 )
     1071    // Set user unvalidated group
     1072    if (!is_admin() and $conf_UAM[2] <> -1)
    9041073    {
    9051074      $query = "
     
    9501119  }
    9511120
    952   if ( $conf_UAM[2] <> -1 )
     1121  if (!is_admin() and $conf_UAM[2] <> -1)
    9531122  {
    9541123    $query = "
     
    11101279    $data = pwg_db_fetch_assoc(pwg_query($query));
    11111280       
    1112     if (!empty($data) and isset($data['user_id']) and !isset($data['date_check']))
     1281    //if (!empty($data) and isset($data['user_id']) and !isset($data['date_check']))
     1282    if (!empty($data) and isset($data['user_id']))
    11131283    {
    11141284      $query = "
     
    13871557        if (isset($email) and isset($conf_UAM[12]) and $conf_UAM[12] <> '')
    13881558        {
    1389                 //$ncsemail = strtolower($email);
    13901559                $conf_MailExclusion = preg_split("/[\s,]+/",$conf_UAM[12]);
    13911560                for ($i = 0 ; $i < count($conf_MailExclusion) ; $i++)
     
    15471716}
    15481717
     1718
     1719/**
     1720 * Function called from functions.inc.php - Get all ghost users to delete or downgrade automatically on any user login
     1721 *
     1722 * @return : List of users to delete or downgrade automatically
     1723 *
     1724 */
     1725function get_ghosts_autotasks()
     1726{
     1727        global $conf, $page;
     1728
     1729  $conf_UAM = unserialize($conf['UserAdvManager']);
     1730 
     1731  $users = array();
     1732 
     1733        // search users depending expiration date and reminder sent
     1734  $query = '
     1735SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
     1736                lv.lastvisit,
     1737                lv.reminder
     1738FROM '.USERS_TABLE.' AS u
     1739  INNER JOIN '.USER_LASTVISIT_TABLE.' AS lv
     1740    ON u.'.$conf['user_fields']['id'].' = lv.user_id
     1741WHERE (TO_DAYS(NOW()) - TO_DAYS(lv.lastvisit) >= "'.$conf_UAM[17].'")
     1742  AND lv.reminder = "true"
     1743ORDER BY lv.lastvisit ASC;';
     1744
     1745        $result = pwg_query($query);
     1746     
     1747  while ($row = pwg_db_fetch_assoc($result))
     1748  {
     1749        $user = $row;
     1750    $user['groups'] = array();
     1751
     1752    array_push($users, $user);
     1753        }
     1754
     1755        // add group lists
     1756  $user_ids = array();
     1757  foreach ($users as $i => $user)
     1758  {
     1759        $user_ids[$i] = $user['id'];
     1760        }
     1761 
     1762        return $users;
     1763}
     1764
     1765
    15491766/**
    15501767 * Function called from UAM_admin.php - Get all users to display the number of days since their last visit
     
    18232040
    18242041/**
    1825  * check_consult - Thx to LucMorizur
     2042 * UAM_check_profile - Thx to LucMorizur
    18262043 * checks if a user id is registered as having already
    18272044 * visited his profile.php page.
     
    18362053 *
    18372054 */
    1838 function check_consult($uid, &$user_idsOK)
     2055function UAM_check_profile($uid, &$user_idsOK)
    18392056{
    18402057  $t = array();
  • extensions/NBC_UserAdvManager/trunk/include/upgradedb.inc.php

    r7955 r8065  
    22/**
    33 * @author Eric@piwigo.org
    4  * @copyright 2010
    5  *
     4 * 
    65 * Upgrade processes for old plugin version
    76 * Called from maintain.inc.php on plugin activation
     
    9695function upgrade_212_213()
    9796{
    98 /* Create missing table */
     97  // Create missing table
    9998  $query = "
    10099ALTER TABLE ".USER_CONFIRM_MAIL_TABLE."
     
    104103  pwg_query($query);
    105104
    106 /* Upgrade plugin configuration */
     105  // Upgrade plugin configuration
    107106        global $conf;
    108107
     
    164163  global $conf;
    165164
    166 /* Changing parameter name */
     165  // Changing parameter name
    167166  $q = '
    168167UPDATE '.CONFIG_TABLE.'
     
    179178  pwg_query($q);
    180179
    181 /* Upgrading ConfirmMail options */
     180  // Upgrading ConfirmMail options
    182181  $query = '
    183182SELECT value
     
    214213  global $conf;
    215214
    216 /* Upgrading options */
     215  // Upgrading options
    217216  $query = '
    218217SELECT value
     
    268267}
    269268
    270 /* upgrade from 2.15.9 to 2.16.0 */
     269/* upgrade from 2.15.x to 2.16.0 */
    271270/* ***************************** */
    272 function upgrade_2159_2160()
     271function upgrade_215_2160()
    273272{
    274273  global $conf;
    275274
    276 /* Upgrading options */
     275  // Upgrading options
    277276  $query = '
    278277SELECT value
     
    291290  $Newconf_UAM[25] = 'Sorry, your account has been deleted due to a too long time passed since your last visit.';
    292291  $Newconf_UAM[26] = 'Sorry, your account has been deprecated due to a too long time passed since your last visit. Please, use the following link to revalidate your account.';
     292  $Newconf_UAM[27] = '-1';
     293  $Newconf_UAM[28] = '-1';
    293294 
    294295  $update_conf = serialize($Newconf_UAM);
     
    306307  $query = '
    307308INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
    308 VALUES ("UserAdvManager_Version","2.15.8","UAM version check")
     309VALUES ("UserAdvManager_Version","2.16.0","UAM version check")
    309310  ;';
    310311 
  • extensions/NBC_UserAdvManager/trunk/language/fr_FR/help/plugin.lang.php

    r7935 r8065  
    1313';
    1414$lang['UAM_miscTitle'] = 'Suivi des inscrits et fonctions diverses';
    15 $lang['UAM_miscTitle_d'] = '
    16 - Gestion des visiteurs fantômes<br>
    17 - Suivi des visiteurs inscrits<br>
    18 - Pseudo obligatoire sur commentaire pour les visiteurs<br>
    19 ...
    20 ';
    2115$lang['UAM_casenTitle'] = 'Noms d\'utilisateurs : Sensibilité à la casse';
    2216$lang['UAM_carexcTitle'] = 'Noms d\'utilisateurs : Exclusion de certains caractères';
     
    5650$lang['UAM_remailtxt2Title'] = 'Message de rappel sans regénération de clé';
    5751$lang['UAM_ghosttrackerTitle'] = 'Gestion des visiteurs fantômes (aussi appelée Ghost Tracker)';
    58 $lang['UAM_ghosttrackerTitle_d'] = 'L\'activation de cette fonction permet la gestion des visiteurs inscrits en fonction de la fréquence de leurs visites. Une fois atteint le délai entre 2 visites successives, le visiteur apparaît dans le tableau de l\'onglet &quot;Ghost Tracker&quot; d\'où il est possible de le relancer par email.<br><br>
    59 <b style=&quot;color: red;&quot;>IMPORTANT : A première activation de cette fonction, ou à sa réactivation après une longue période pendant laquelle de nouveaux visiteurs se sont inscrits, il convient d\'initialiser le Ghost Tracker (voir les instructions correspondantes sur l\'onglet &quot;Ghost Tracker&quot;).</b>';
    6052$lang['UAM_gttextTitle'] = 'Message de rappel Ghost Tracker';
    6153$lang['UAM_lastvisitTitle'] = 'Suivi des utilisateurs inscrits';
     
    134126<b>Fonction de tri du tableau</b>: Vous pouvez trier les données affichées en cliquant sur les entêtes de colonnes. L\'utilisation de la touche MAJ ou SHIFT permet de trier sur 1 à 4 colonnes simultanées maximum.';
    135127$lang['UAM_confirmmailTitle'] = 'Confirmation d\'inscription';
    136 $lang['UAM_confirmmailTitle_d'] = 'Cette option permet soit à un utilisateur de valider son inscription en cliquant sur un lien reçu dans un email envoyé dès son enregistrement sur la galerie soit à l\'administrateur d\'activer manuellement les inscriptions.<br><br>
     128$lang['UAM_confirmmailTitle_d'] = 'Cette option permet soit à un utilisateur de valider son inscription en cliquant sur un lien reçu dans un email envoyé dès son enregistrement sur la galerie, soit à l\'administrateur d\'activer manuellement les inscriptions.<br><br>
    137129Dans le premier cas, le message envoyé comprend une partie fixe, avec le lien d\'activation généré à partir d\'une clef aléatoire (cette clé peut éventuellement être régénérée via l\'onglet &quot;Suivi des validations&quot;), et une partie personnalisable par un texte d\'accueil.
    138130<br><br>
     
    154146
    155147
    156 // --------- Starting below: New or revised $lang ---- from version 2.15.7
    157 $lang['UAM_GTAutoTitle'] = 'Gestion automatique des utilisateurs fantomes';
    158 $lang['UAM_GTAutoTitle_d'] = 'Cette option permet d\'appliquer des règles de gestion automatisée des visiteurs fantômes. Lorsque ce mode est actif, on partira du principe qu\'un visiteur ayant atteind la limite maximale entre deux visites et ayant déjà été notifié par mail est considéré comme expiré.';
    159 $lang['UAM_GTAutoDelTitle'] = 'Suppression automatique des comptes expirés';
    160 $lang['UAM_GTAutoDelTitle_d'] = 'Supprime automatiquement le compte d\'un utilisateur lorsque celui-ci est expiré. La suppression survient lors de la connexion de l\'utilisateur qui est alors redirigé vers une page annonçant que sont compte a été détruit. Un texte personnalisé peut être saisi dans le champ ci-dessous.<br>
    161 Ce champ est compatible avec l\'extension FCK Editor et, pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif.<br><br>
    162 Note : Lorsque cette option est active, les autres règles automatiques ne sont pas accessibles.';
    163 $lang['UAM_GTAutoGpTitle'] = 'Changement automatique de groupe / statut';
    164 $lang['UAM_GTAutoGpTitle_d'] = 'Changement automatique de groupe / statut';
    165 $lang['UAM_GTAutoMailTitle'] = 'Emailing automatique des comptes expirés';
    166 $lang['UAM_GTAutoMailTitle_d'] = 'Emailing automatique des comptes expirés';
    167 // --------- End: New or revised $lang ---- from version 2.15.7
    168 
    169 
    170148// --------- Starting below: New or revised $lang ---- from version 2.16.0
     149$lang['UAM_ghosttrackerTitle_d'] = 'L\'activation de cette fonction permet la gestion des visiteurs inscrits en fonction de la fréquence de leurs visites. 2 fonctionnements sont possibles:<br><br>
     150- Gestion manuelle : Lorsque le délai entre 2 visites successives est atteint, le visiteur apparaît dans le tableau de l\'onglet &quot;Ghost Tracker&quot; d\'où il est possible de le relancer manuellement par email ou le supprimer.<br><br>
     151- Gestion automatisée : Lorsque le délai entre 2 visites successives est atteint, le visiteur est automatiquement soit supprimé, soit basculé dans un groupe et/ou statut d\'attente. Dans ce deuxième cas, un email d\'information peut lui être envoyé.<br><br><br>
     152<b style=&quot;color: red;&quot;>IMPORTANT : A première activation de cette fonction, ou à sa réactivation après une longue période pendant laquelle de nouveaux visiteurs se sont inscrits, il convient d\'initialiser le Ghost Tracker (voir les instructions correspondantes sur l\'onglet &quot;Ghost Tracker&quot;).</b>';
     153$lang['UAM_miscTitle_d'] = '
     154- Gestion automatique ou manuelle des visiteurs fantômes<br>
     155- Suivi des visiteurs inscrits<br>
     156- Pseudo obligatoire sur commentaire pour les visiteurs<br>
     157...
     158';
    171159$lang['UAM_mailexcTitle_d'] = 'Par défaut, Piwigo accepte toutes les adresses de messagerie au format xxx@yyy.zz. L\'activation de cette option permet d\'exclure certains domaines selon le format : @[nom_du_domaine].[extension_du_domaine].<br><br>
    172160Exemples :<br>
     
    191179$lang['UAM_gttextTitle_d'] = 'Saisissez ici le texte qui apparaîtra dans l\'email de rappel pour inciter l\'utilisateur à revenir visiter votre galerie (NB: Le texte pré-renseigné à l\'installation du plugin est donné à titre d\'exemple).<br><br>
    192180Pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif.';
     181$lang['UAM_GTAutoTitle'] = 'Gestion automatique des utilisateurs fantomes';
     182$lang['UAM_GTAutoTitle_d'] = 'Cette option permet d\'appliquer des règles de gestion automatisée des visiteurs fantômes.
     183<br><br>Principe de base : Un compte d\'utilisateur ayant atteind la limite maximale entre deux visites <b>et</b> ayant déjà été notifié par email est considéré comme expiré. On peut alors appliquer des règles de traitement automatisées telles que la suppression automatique des comptes expirés ou leur rétrogradation en restreignant l\'accès à la galerie (bascule automatique dans un groupe et/ou un statut à accès restreint).
     184<br><br>Le déclenchement de ces automatismes se réalise lors de la connexion des utilisateurs (n\'importe quel utilisateur !)à la galerie.';
     185$lang['UAM_GTAutoDelTitle'] = 'Suppression automatique des comptes expirés';
     186$lang['UAM_GTAutoDelTitle_d'] = 'Supprime automatiquement le compte d\'un utilisateur lorsque celui-ci est expiré.
     187<br><br>Fonction à utiliser avec précaution car la suppression des comptes est définitive et sans appel !<br><br>
     188La suppression survient lors de la connexion de l\'utilisateur qui est alors redirigé vers une page annonçant que son compte a été détruit. Un texte personnalisé peut être saisi dans le champ ci-dessous.<br>
     189Ce champ est compatible avec l\'extension FCK Editor et, pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif.<br><br>
     190Note : Lorsque cette option est active, les autres règles automatiques ne sont pas accessibles.';
     191$lang['UAM_GTAutoGpTitle'] = 'Changement automatique de groupe / statut';
     192$lang['UAM_GTAutoGpTitle_d'] = 'Le changement automatique de groupe ou de statut équivaut à une rétrogradation des comptes concernés et fonctionne sur le même principe que le groupe ou le statut de validation (voir &quot;Paramétrage des confirmations et validations d\'inscriptions&quot;). Il conviendra donc de définir un groupe et/ou un statut rétrogradant l\'accès à la galerie. Si cela a déjà été défini avec l\'utilisation de la fonction Confirmation d\'inscription, on peut utiliser ces mêmes groupe / statut.';
     193$lang['UAM_GTAutoMailTitle'] = 'Email automatique sur changement de groupe / statut';
     194$lang['UAM_GTAutoMailTitle_d'] = 'Lorsqu\'un compte est expiré (changement de groupe / statut rétrogradant le visiteur), un email d\'information peut être envoyé pour préciser les raisons de ce changement et le moyen de recouvrer l\'accès initial à la galerie.
     195<br>Pour ce faire, un lien de revalidation de l\'inscription est joint à l\'email (génération automatique d\'une nouvelle clé de validation).
     196<br><br>Saisissez aussi le texte personnalisé qui expliquera les raisons de la rétrogradation et qui accompagnera le lien de validation. Le texte personnalisé n\'est pas obligatoire mais vivement conseillé. En effet, vos visiteurs inscrits n\'apprécieront que moyennement de recevoir un email ne contenant qu\'un simple lien sans plus d\'explications. ;-)
     197<br><br>Pour une utilisation multi-langues, vous pouvez utiliser les balises [lang] du plugin Extended Description si celui-ci est actif.
     198<br><br><b style=&quot;color: red;&quot;>Attention : L\'emploi de cette fonction est intimement lié à l\'option de confirmation d\'inscription par l\'utilisateur (confirmation par mail) et ne peut pas être activée sans cette option.</b>';
    193199// --------- End: New or revised $lang ---- from version 2.16.0
    194200?>
  • extensions/NBC_UserAdvManager/trunk/language/fr_FR/plugin.lang.php

    r7935 r8065  
    271271
    272272// --------- Starting below: New or revised $lang ---- from version 2.16.0
     273$lang['UAM_Expired_Group'] = '<b>Groupe</b> pour les utilisateurs dont l\'inscription aura expirée<br>';
     274$lang['UAM_Expired_Status'] = '<b>Statut</b> pour les utilisateurs dont l\'inscription aura expirée<br>';
    273275$lang['UAM_GTAuto'] = 'Gestion automatique des utilisateurs fantomes';
    274276$lang['UAM_GTAuto_false'] = ' Désactiver (valeur par défaut)';
     
    278280$lang['UAM_GTAutoDel_false'] = ' Désactiver (valeur par défaut)';
    279281$lang['UAM_GTAutoDel_true'] = ' Activer';
    280 $lang['UAM_GTAutoMail'] = 'Emailing de rappel automatique';
     282$lang['UAM_GTAutoMail'] = 'Email automatique sur changement de groupe / statut';
    281283$lang['UAM_GTAutoMail_false'] = ' Désactiver (valeur par défaut)';
    282284$lang['UAM_GTAutoMail_true'] = ' Activer';
     285$lang['Deleted_Account_Redirection_Page'] = 'Accès refusé - Compte détruit !';
     286$lang['title_redir_page'] = 'Accès refusé pour cause de compte détruit !';
     287$lang['Error_GTAutoMail_cannot_be_set_without_ConfirmMail'] = 'Erreur de cohérence dans la configuration choisie :<br><br>
     288"Paramétrage des suivis des inscrits et autres options > Gestion des visiteurs fantômes (Ghost Tracker) > Gestion automatique des utilisateurs fantomes  > Email automatique sur changement de groupe / statut" ne peut pas être activé si "Paramétrage des confirmations et validations d\'inscriptions  > Confirmation d\'inscription - Validation par le visiteur" n\'est pas activé au préalable.<br><br>
     289Pour garantir la cohérence, l\'option "Email automatique sur changement de groupe / statut" a été automatiquement repositionnée en "désactivé".<br><br>';
     290$lang['Demotion of %s'] = 'Rétrogradation de %s';
    283291// --------- End: New or revised $lang ---- from version 2.16.0
    284292?>
  • extensions/NBC_UserAdvManager/trunk/main.inc.php

    r7955 r8065  
    22/*
    33Plugin Name: UserAdvManager
    4 Version: 2.16.0-alpha
     4Version: 2.16.0b
    55Description: Renforcer la gestion des utilisateurs - Enforce users management
    66Plugin URI: http://fr.piwigo.org/ext/extension_view.php?eid=216
     
    4747
    4848// Redirection to profile page
    49 add_event_handler('login_success', 'RedirectToProfile');
     49add_event_handler('login_success', 'UAM_LoginTasks');
     50
    5051
    5152// *** Important ! This is necessary to make email exclusion work in admin's users management panel ***
  • extensions/NBC_UserAdvManager/trunk/maintain.inc.php

    r7955 r8065  
    2626Best regards,
    2727
    28 The admin of the gallery.','false','false','false');
     28The admin of the gallery.','false','false','false','false','false','false','Sorry, your account has been deleted due to a too long time passed since your last visit.','Sorry, your account has been deprecated due to a too long time passed since your last visit. Please, use the following link to revalidate your account.',-1,-1);
    2929
    3030  $q = '
     
    180180  }
    181181
    182 
     182/* Check for upgrade from 2.15 to 2.16 */
     183/* *********************************** */
    183184        $query = '
    184185SELECT param
     
    190191  if ($count == 0)
    191192  {
    192     upgrade_2159_2160();
     193    /* upgrade from branch 2.15 to 2.16 */
     194    /* ******************************** */
     195    upgrade_215_2160();
    193196  }
    194197
Note: See TracChangeset for help on using the changeset viewer.