Ignore:
Timestamp:
Sep 12, 2009, 6:57:18 PM (11 years ago)
Author:
Eric
Message:
  • Adding management of unvalidated users according time limit
  • Adding actions : Resend validation email with new key generation (reset of time limit), send reminder mail for validation (no new key generation), delete expired unvalidated users.

Note : There is still a problem with the display of a new validation link when using function "Resend validation email with new key generation"

Location:
extensions/NBC_UserAdvManager/trunk/admin
Files:
2 edited

Legend:

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

    r3836 r3841  
    2222// +-----------------------------------------------------------------------+
    2323if (!isset($_GET['tab']))
    24   $page['tab'] = 'global';
     24        $page['tab'] = 'global';
    2525else
    2626  $page['tab'] = $_GET['tab'];
     
    3333               l10n('Tab_ConfirmMail'),
    3434               $my_base_url.'&tab=confirmmail');
     35/* For futur options */
    3536//$tabsheet->add('Misc_Options',
    3637//               l10n('Tab_Misc_Options'),
     
    5354  case 'global':
    5455       
    55   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']) )
     56        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']) )
    5657  {
    57     $_POST['UserAdvManager_MailInfo_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_MailInfo_Text']));
    58         $_POST['UserAdvManager_ConfirmMail_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_Text']));
    59                
    60         $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'];
    61                
    62         $conf['nbc_UserAdvManager'] = $newconf_nbc_UserAdvManager;
    63                
    64         $query = '
    65           UPDATE '.CONFIG_TABLE.'
    66           SET value="'.$newconf_nbc_UserAdvManager.'"
    67           WHERE param="nbc_UserAdvManager"
    68           LIMIT 1
    69           ;';
    70                
    71         pwg_query($query);
    72                
    73         array_push($page['infos'], l10n('UserAdvManager_save_config'));
     58                $_POST['UserAdvManager_MailInfo_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_MailInfo_Text']));
     59                $_POST['UserAdvManager_ConfirmMail_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_Text']));
     60               
     61                $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'];
     62               
     63                $conf['nbc_UserAdvManager'] = $newconf_nbc_UserAdvManager;
     64               
     65                $query = '
     66                UPDATE '.CONFIG_TABLE.'
     67                SET value="'.$newconf_nbc_UserAdvManager.'"
     68                WHERE param="nbc_UserAdvManager"
     69                LIMIT 1
     70                ;';
     71               
     72                pwg_query($query);
     73               
     74                array_push($page['infos'], l10n('UserAdvManager_save_config'));
    7475  }
    7576       
     
    8485  $query = '
    8586    SELECT id, name
    86         FROM '.GROUPS_TABLE.'
    87         ORDER BY name ASC
    88         ;';
     87                FROM '.GROUPS_TABLE.'
     88                ORDER BY name ASC
     89                ;';
    8990       
    9091  $result = pwg_query($query);
     
    9697    if (isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] == $row['id'])
    9798    {
    98           $No_Valid = $row['id'];
    99         }
     99                $No_Valid = $row['id'];
     100                }
    100101/* configuration value for validated users */
    101102    if (isset($conf_nbc_UserAdvManager[4]) and $conf_nbc_UserAdvManager[4] == $row['id'])
    102         {
    103           $Valid = $row['id'];
    104         }
     103                {
     104                $Valid = $row['id'];
     105                }
    105106  }
    106107       
     
    108109  $template->assign(
    109110    'No_Confirm_Group',
    110     array(
    111           'group_options'=> $groups,
    112           'group_selected' => $No_Valid
    113         )
    114   );
     111        array(
     112                'group_options'=> $groups,
     113                'group_selected' => $No_Valid
     114                        )
     115                );
    115116/* Template initialization for validated users group */
    116117  $template->assign(
    117118    'Validated_Group',
    118         array(
     119                array(
    119120      'group_options'=> $groups,
    120121      'group_selected' => $Valid
    121         )
    122   );
     122                        )
     123        );
    123124       
    124125/* Status setting for unvalidated and validated users */
     
    129130/* Get status values */
    130131  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
    131     {
     132  {
    132133          $status_options[$status] = l10n('user_status_'.$status);
    133134          if (isset($conf_nbc_UserAdvManager[9]) and $conf_nbc_UserAdvManager[9] == $status)
     
    139140        'No_Confirm_Status',
    140141        array(
    141                   'Status_options' => $status_options,
    142                   'Status_selected' => $No_Valid_Status
    143                 )
    144           );
    145     }
     142                                        'Status_options' => $status_options,
     143                                'Status_selected' => $No_Valid_Status
     144                                        )
     145                        );
     146  }
    146147/* Get status values */
    147148  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
    148     {
     149  {
    149150          $status_options[$status] = l10n('user_status_'.$status);
    150151          if (isset($conf_nbc_UserAdvManager[5]) and $conf_nbc_UserAdvManager[5] == $status)
    151             {
     152                {
    152153                  $Valid_Status = $status;
    153154                }
     
    156157            'Confirm_Status',
    157158            array(
    158                   'Status_options' => $status_options,
    159                   'Status_selected' => $Valid_Status
    160                 )
    161           );
    162     }
     159                    'Status_options' => $status_options,
     160                    'Status_selected' => $Valid_Status
     161                    )
     162            );
     163        }
    163164       
    164165  $template->assign(
     
    189190
    190191  if ( isset($_POST['audit']) or isset($_POST['submit']) )
    191     {
    192           $msg_error1 = '';
     192  {
     193                $msg_error1 = '';
    193194               
    194195/* username insensible a la casse */
    195       if (isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] == 'true')
    196             {
    197                   $query = "
    198                     SELECT ".$conf['user_fields']['username']."
    199                         FROM ".USERS_TABLE." p1
    200                         WHERE EXISTS(
    201                         SELECT ".$conf['user_fields']['username']."
    202                         FROM ".USERS_TABLE." p2
    203                         WHERE p1.".$conf['user_fields']['id']." <> p2.".$conf['user_fields']['id']."
    204                         AND LOWER(p1.".$conf['user_fields']['username'].") = LOWER(p2.".$conf['user_fields']['username'].")
    205                         )
     196    if (isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] == 'true')
     197          {
     198                        $query = "
     199                        SELECT ".$conf['user_fields']['username']."
     200                                FROM ".USERS_TABLE." p1
     201                                WHERE EXISTS(
     202                                SELECT ".$conf['user_fields']['username']."
     203                                FROM ".USERS_TABLE." p2
     204                                WHERE p1.".$conf['user_fields']['id']." <> p2.".$conf['user_fields']['id']."
     205                                AND LOWER(p1.".$conf['user_fields']['username'].") = LOWER(p2.".$conf['user_fields']['username'].")
     206                                )
    206207                        ;";
    207208                         
     
    209210                       
    210211                  while($row = mysql_fetch_array($result))
    211                     {
    212                           $msg_error1 .= (($msg_error1 <> '') ? '<br/>' : '') . l10n('Err_audit_no_casse').$row['username'];
     212                {
     213                                $msg_error1 .= (($msg_error1 <> '') ? '<br/>' : '') . l10n('Err_audit_no_casse').$row['username'];
    213214                        }
    214215                }
    215216
    216       $msg_error2 = '';
     217                $msg_error2 = '';
    217218               
    218219/* Username without forbidden keys */
    219220      if ( isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' )
    220221            {
    221                   $query = "
    222                     SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
    223                         FROM ".USERS_TABLE."
    224                         ;";
     222                        $query = "
     223                        SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
     224                                        FROM ".USERS_TABLE."
     225                                ;";
    225226                         
    226                   $result = pwg_query($query);
     227                          $result = pwg_query($query);
    227228                       
    228                   while($row = mysql_fetch_array($result))
    229                     {
    230                           if ( !ValidateUsername($row['username']) )
    231                             $msg_error2 .= (($msg_error2 <> '') ? '<br/>' : '') . l10n('Err_audit_username_char').$row['username'];
     229                          while($row = mysql_fetch_array($result))
     230                          {
     231                                        if (!ValidateUsername($row['username']))
     232                                    $msg_error2 .= (($msg_error2 <> '') ? '<br/>' : '') . l10n('Err_audit_username_char').$row['username'];
     233                                }
    232234                        }
    233                 }
    234 
    235       $msg_error3 = '';
     235
     236                $msg_error3 = '';
    236237               
    237238/* Email without forbidden domain */
    238239      if ( isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' )
    239240            {
    240                   $query = "
    241                     SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
    242                         FROM ".USERS_TABLE."
    243                         ;";
     241                        $query = "
     242                        SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
     243                                        FROM ".USERS_TABLE."
     244                                ;";
    244245                         
    245                   $result = pwg_query($query);
     246                        $result = pwg_query($query);
    246247                       
    247                   while($row = mysql_fetch_array($result))
     248                        while($row = mysql_fetch_array($result))
    248249                    {
    249                           $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
    250                           $conf_nbc_MailExclusion = preg_split('/,/',$conf_nbc_UserAdvManager[13]);
    251                           for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
     250                                $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
     251                                $conf_nbc_MailExclusion = preg_split('/,/',$conf_nbc_UserAdvManager[13]);
     252                                for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
    252253                            {
    253                           $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
    254                                   if (preg_match($pattern, $row['mail_address']))
     254                                                $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
     255                                        if (preg_match($pattern, $row['mail_address']))
    255256                                    {
    256                                           $msg_error3 .=  (($msg_error3 <> '') ? '<br/>' : '') . l10n('Err_audit_email_forbidden').$row['username'].' ('.$row['mail_address'].')';
     257                                                $msg_error3 .=  (($msg_error3 <> '') ? '<br/>' : '') . l10n('Err_audit_email_forbidden').$row['username'].' ('.$row['mail_address'].')';
     258                                                }
    257259                                        }
    258260                                }
    259261                        }
    260                 }
    261262               
    262263      if ($msg_error1 <> '')
    263             $errors[] = $msg_error1.'<br/><br/>';
     264                    $errors[] = $msg_error1.'<br/><br/>';
    264265               
    265266      if ($msg_error2 <> '')
    266             $errors[] = $msg_error2.'<br/><br/>';
    267                
    268           if ($msg_error3 <> '')
    269             $errors[] = $msg_error3.'<br/><br/>';
    270                
    271           if ($msg_error1 <> '' or $msg_error2 <> '' or $msg_error3 <> '')
    272             array_push($page['errors'], l10n('Err_audit_advise'));
    273           else
     267                    $errors[] = $msg_error2.'<br/><br/>';
     268               
     269                if ($msg_error3 <> '')
     270                $errors[] = $msg_error3.'<br/><br/>';
     271               
     272                if ($msg_error1 <> '' or $msg_error2 <> '' or $msg_error3 <> '')
     273                array_push($page['errors'], l10n('Err_audit_advise'));
     274                else
    274275        array_push($page['infos'], l10n('UserAdvManager_audit_ok'));
    275     }
     276        }
    276277
    277278
     
    280281// +-----------------------------------------------------------------------+
    281282  if ( isset ($errors) and count($errors) != 0)
    282     {
     283  {
    283284          $template->assign('errors',array());
    284285          foreach ($errors as $error)
    285             {
     286          {
    286287                  array_push($page['errors'], $error);
    287288                }
     
    304305       
    305306  if (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2]=='true' )
    306     {
    307       if ( isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_ConfirmMail_TimeOut']) )
    308             {           
    309                   $newconf_nbc_UserAdvManager_ConfirmMail = $_POST['UserAdvManager_ConfirmMail_TimeOut'].';'.$_POST['UserAdvManager_ConfirmMail_Delay'];
    310         //NODO:Adding new option [Auto deletion : True | False] - No access to cron functionnalities
    311         //TODO:Adding new option [Resend_new_validation_key : True | False]
    312                   $conf['nbc_UserAdvManager_ConfirmMail'] = $newconf_nbc_UserAdvManager_ConfirmMail;
    313                
    314                   $query = '
    315                     UPDATE '.CONFIG_TABLE.'
    316                         SET value="'.$newconf_nbc_UserAdvManager_ConfirmMail.'"
    317                         WHERE param="nbc_UserAdvManager_ConfirmMail"
    318                         LIMIT 1
    319                         ;';
    320                
    321                   pwg_query($query);
    322                
    323                   array_push($page['infos'], l10n('UserAdvManager_save_config'));
    324                 }
    325        
    326       $conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
    327 
    328       function get_unvalid_user_list()
    329         {
    330           global $conf, $page;
     307  {
     308    if ( isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_ConfirmMail_TimeOut']) )
     309                {
     310                $_POST['UserAdvManager_ConfirmMail_ReMail_Txt'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_ReMail_Txt']));
     311                 
     312                $newconf_nbc_UserAdvManager_ConfirmMail = $_POST['UserAdvManager_ConfirmMail_TimeOut'].';'.$_POST['UserAdvManager_ConfirmMail_Delay'].';'.$_POST['UserAdvManager_ConfirmMail_ReMail_Txt'];
     313                 
     314//NODO:Adding new option [Auto deletion : True | False] - No access to cron functionnalities
     315
     316                $conf['nbc_UserAdvManager_ConfirmMail'] = $newconf_nbc_UserAdvManager_ConfirmMail;
     317               
     318                $query = '
     319                UPDATE '.CONFIG_TABLE.'
     320                                SET value="'.$newconf_nbc_UserAdvManager_ConfirmMail.'"
     321                                WHERE param="nbc_UserAdvManager_ConfirmMail"
     322                                LIMIT 1
     323                        ;';
     324               
     325                        pwg_query($query);
     326               
     327                        array_push($page['infos'], l10n('UserAdvManager_save_config'));
     328                }
     329       
     330                $conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
     331
     332// +-----------------------------------------------------------------------+
     333// |                           initialization                              |
     334// +-----------------------------------------------------------------------+
     335
     336        if (!defined('PHPWG_ROOT_PATH'))
     337    {
     338        die('Hacking attempt!');
     339    }
    331340         
    332                 /* Get ConfirmMail configuration */
    333           $conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
     341    include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
     342
     343// +-----------------------------------------------------------------------+
     344// | Check Access and exit when user status is not ok                      |
     345// +-----------------------------------------------------------------------+
     346        check_status(ACCESS_ADMINISTRATOR);
     347
     348    $page['order_by_items'] = array(
     349      'id' => l10n('registration_date'),
     350      'username' => l10n('Username'),
     351      'level' => l10n('Privacy level'),
     352      'language' => l10n('language'),
     353    );
     354
     355// +-----------------------------------------------------------------------+
     356// |                               user list                               |
     357// +-----------------------------------------------------------------------+
     358
     359        $page['filtered_users'] = get_unvalid_user_list();
     360
     361// +-----------------------------------------------------------------------+
     362// |                            selected users                             |
     363// +-----------------------------------------------------------------------+
     364        if (isset($_POST['Del_Selected']))
     365        {
     366        $collection = array();
     367
     368                switch ($_POST['target'])
     369    {
     370        case 'all' :
     371      {
     372        foreach($page['filtered_users'] as $local_user)
     373        {
     374                array_push($collection, $local_user['id']);
     375        }
     376        break;
     377                        }
     378      case 'selection' :
     379      {
     380        if (isset($_POST['selection']))
     381        {
     382                $collection = $_POST['selection'];
     383        }
     384        break;
     385      }
     386                }
     387
     388    if (count($collection) == 0)
     389    {
     390        array_push($page['errors'], l10n('Select at least one user'));
     391    }
     392        }
     393
     394// +-----------------------------------------------------------------------+
     395// |                             delete users                              |
     396// +-----------------------------------------------------------------------+
     397        if (isset($_POST['Del_Selected']) and count($collection) > 0)
     398    {
     399      if (in_array($conf['guest_id'], $collection))
     400          {
     401        array_push($page['errors'], l10n('Guest cannot be deleted'));
     402      }
     403      if (($conf['guest_id'] != $conf['default_user_id']) and
     404        in_array($conf['default_user_id'], $collection))
     405      {
     406        array_push($page['errors'], l10n('Default user cannot be deleted'));
     407      }
     408      if (in_array($conf['webmaster_id'], $collection))
     409      {
     410        array_push($page['errors'], l10n('Webmaster cannot be deleted'));
     411      }
     412      if (in_array($user['id'], $collection))
     413      {
     414        array_push($page['errors'], l10n('You cannot delete your account'));
     415      }
     416
     417      if (count($page['errors']) == 0)
     418      {
     419        foreach ($collection as $user_id)
     420        {
     421          delete_user($user_id);
     422        }
     423        array_push(
     424          $page['infos'],
     425          l10n_dec(
     426          '%d user deleted', '%d users deleted',
     427          count($collection)
     428          )
     429        );
     430
     431        foreach ($page['filtered_users'] as $filter_key => $filter_user)
     432        {
     433          if (in_array($filter_user['id'], $collection))
     434          {
     435            unset($page['filtered_users'][$filter_key]);
     436          }
     437        }
     438      }
     439        }
     440
     441// +-----------------------------------------------------------------------+
     442// |                            selected users                             |
     443// +-----------------------------------------------------------------------+
     444        if (isset($_POST['Mail_With_Key']))
     445        {
     446        $collection = array();
     447
     448                switch ($_POST['target'])
     449    {
     450        case 'all' :
     451      {
     452        foreach($page['filtered_users'] as $local_user)
     453        {
     454                array_push($collection, $local_user['id']);
     455        }
     456        break;
     457                        }
     458      case 'selection' :
     459      {
     460        if (isset($_POST['selection']))
     461        {
     462                $collection = $_POST['selection'];
     463        }
     464        break;
     465      }
     466                }
     467
     468    if (count($collection) == 0)
     469    {
     470        array_push($page['errors'], l10n('Select at least one user'));
     471    }
     472        }
     473// +-----------------------------------------------------------------------+
     474// |                 Resend new validation key to users                    |
     475// +-----------------------------------------------------------------------+
     476        if (isset($_POST['Mail_With_Key']) and count($collection) > 0)
     477        {
     478                if (in_array($conf['guest_id'], $collection))
     479        {
     480        array_push($page['errors'], l10n('No_validation_for_Guest'));
     481    }
     482    if (($conf['guest_id'] != $conf['default_user_id']) and
     483        in_array($conf['default_user_id'], $collection))
     484    {
     485        array_push($page['errors'], l10n('No_validation_for_default_user'));
     486    }
     487        if (in_array($conf['webmaster_id'], $collection))
     488    {
     489        array_push($page['errors'], l10n('No_validation_for_Webmaster'));
     490    }
     491    if (in_array($user['id'], $collection))
     492    {
     493        array_push($page['errors'], l10n('No_validation_for_your_account'));
     494    }
     495
     496    if (count($page['errors']) == 0)
     497    {
     498        foreach ($collection as $user_id)
     499      {         
     500        $typemail = 1;
     501                                    $query = "
     502                                                        SELECT id, username, mail_address
     503                                                        FROM ".USERS_TABLE."
     504                                                        WHERE id = '".$user_id."'
     505                                                ;";
     506                                $data = mysql_fetch_array(pwg_query($query));
     507                               
     508        ResendMail2User($typemail,$user_id,$data['username'],$data['mail_address'],true);
     509      }
     510      array_push(
     511        $page['infos'],
     512        l10n_dec(
     513        '%d_Mail_With_Key', '%d_Mails_With_Key',
     514        count($collection)
     515        )
     516      );
     517
     518      foreach ($page['filtered_users'] as $filter_key => $filter_user)
     519      {
     520        if (in_array($filter_user['id'], $collection))
     521        {
     522                unset($page['filtered_users'][$filter_key]);
     523        }
     524                        }
     525                }
     526        }
     527
     528// +-----------------------------------------------------------------------+
     529// |                            selected users                             |
     530// +-----------------------------------------------------------------------+
     531        if (isset($_POST['Mail_Without_Key']))
     532        {
     533        $collection = array();
     534
     535                switch ($_POST['target'])
     536    {
     537        case 'all' :
     538      {
     539        foreach($page['filtered_users'] as $local_user)
     540        {
     541                array_push($collection, $local_user['id']);
     542        }
     543        break;
     544                        }
     545      case 'selection' :
     546      {
     547        if (isset($_POST['selection']))
     548        {
     549                $collection = $_POST['selection'];
     550        }
     551        break;
     552      }
     553                }
     554
     555    if (count($collection) == 0)
     556    {
     557        array_push($page['errors'], l10n('Select at least one user'));
     558    }
     559        }
     560// +-----------------------------------------------------------------------+
     561// |             Send reminder without new key to users                    |
     562// +-----------------------------------------------------------------------+
     563        if (isset($_POST['Mail_Without_Key']) and count($collection) > 0)
     564        {
     565                if (in_array($conf['guest_id'], $collection))
     566        {
     567        array_push($page['errors'], l10n('No_validation_for_Guest'));
     568    }
     569    if (($conf['guest_id'] != $conf['default_user_id']) and
     570        in_array($conf['default_user_id'], $collection))
     571    {
     572        array_push($page['errors'], l10n('No_validation_for_default_user'));
     573    }
     574        if (in_array($conf['webmaster_id'], $collection))
     575    {
     576        array_push($page['errors'], l10n('No_validation_for_Webmaster'));
     577    }
     578    if (in_array($user['id'], $collection))
     579    {
     580        array_push($page['errors'], l10n('No_validation_for_your_account'));
     581    }
     582
     583    if (count($page['errors']) == 0)
     584    {
     585        foreach ($collection as $user_id)
     586      {
     587        $typemail = 2;
     588                                    $query = "
     589                                                        SELECT id, username, mail_address
     590                                                        FROM ".USERS_TABLE."
     591                                                        WHERE id = '".$user_id."'
     592                                                ;";
     593                                $data = mysql_fetch_array(pwg_query($query));
     594                               
     595        ResendMail2User($typemail,$user_id,$data['username'],$data['mail_address'],false);                             
     596      }
     597      array_push(
     598        $page['infos'],
     599        l10n_dec(
     600        '%d_Reminder_Sent', '%d_Reminders_Sent',
     601        count($collection)
     602        )
     603      );
     604
     605      foreach ($page['filtered_users'] as $filter_key => $filter_user)
     606      {
     607        if (in_array($filter_user['id'], $collection))
     608        {
     609                unset($page['filtered_users'][$filter_key]);
     610        }
     611                        }
     612                }
     613        }
     614
     615// +-----------------------------------------------------------------------+
     616// |                              groups list                              |
     617// +-----------------------------------------------------------------------+
     618
     619        $groups[-1] = '------------';
     620
     621    $query = '
     622      SELECT id, name
     623      FROM '.GROUPS_TABLE.'
     624      ORDER BY name ASC
     625      ;';
     626
     627        $result = pwg_query($query);
    334628         
    335                 /* Get UserAdvManager configuration */
    336                   $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array(); 
    337  
    338           $users = array();
    339    
    340 /* search users depending expiration date */
    341           $query = '
    342             SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
    343                             u.'.$conf['user_fields']['username'].' AS username,
    344                             u.'.$conf['user_fields']['email'].' AS email,
    345                             ui.status,
    346                             ui.adviser,
    347                             ui.enabled_high,
    348                             ui.level,
    349                             ui.registration_date,
    350                             ug.group_id
    351             FROM '.USERS_TABLE.' AS u
    352                 INNER JOIN '.USER_INFOS_TABLE.' AS ui
    353                         ON u.'.$conf['user_fields']['id'].' = ui.user_id
    354                 INNER JOIN '.USER_GROUP_TABLE.' AS ug
    355                         ON u.'.$conf['user_fields']['id'].' = ug.user_id
    356                 WHERE u.'.$conf['user_fields']['id'].' >= 0
    357                                 AND ug.group_id = "'.$conf_nbc_UserAdvManager[3].'"
    358                         AND TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) >= "'.$conf_nbc_UserAdvManager_ConfirmMail[1].'"
    359                         ORDER BY id ASC
    360           ;';
    361 
    362           $result = pwg_query($query);
    363      
    364           while ($row = mysql_fetch_array($result))
    365             {
    366               $user = $row;
    367               $user['groups'] = array();
    368 
    369               array_push($users, $user);
    370             }
    371 
    372 /* add group lists */
    373           $user_ids = array();
    374           foreach ($users as $i => $user)
    375             {
    376               $user_ids[$i] = $user['id'];
    377             }
    378           $user_nums = array_flip($user_ids);
    379 
    380           if (count($user_ids) > 0)
    381             {
    382               $query = '
    383                 SELECT user_id, group_id
    384                 FROM '.USER_GROUP_TABLE.'
    385                 WHERE user_id IN ('.implode(',', $user_ids).')
    386               ;';
    387        
    388               $result = pwg_query($query);
    389        
    390                   while ($row = mysql_fetch_array($result))
    391                 {
    392                   array_push(
    393                     $users[$user_nums[$row['user_id']]]['groups'],
    394                     $row['group_id']
    395                   );
    396                 }
    397               }
    398 
    399           return $users;
    400         }
    401 
    402 // +-----------------------------------------------------------------------+
    403 // |                           initialization                              |
    404 // +-----------------------------------------------------------------------+
    405 
    406         if (!defined('PHPWG_ROOT_PATH'))
    407           {
    408             die('Hacking attempt!');
    409           }
    410          
    411         include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
    412 
    413 // +-----------------------------------------------------------------------+
    414 // | Check Access and exit when user status is not ok                      |
    415 // +-----------------------------------------------------------------------+
    416         check_status(ACCESS_ADMINISTRATOR);
    417 
    418         $page['order_by_items'] = array(
    419           'id' => l10n('registration_date'),
    420           'username' => l10n('Username'),
    421           'level' => l10n('Privacy level'),
    422           'language' => l10n('language'),
     629    while ($row = mysql_fetch_array($result))
     630    {
     631      $groups[$row['id']] = $row['name'];
     632    }
     633
     634// +-----------------------------------------------------------------------+
     635// |                           Template Init                               |
     636// +-----------------------------------------------------------------------+
     637        $base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
     638
     639    if (isset($_GET['start']) and is_numeric($_GET['start']))
     640    {
     641      $start = $_GET['start'];
     642    }
     643    else
     644    {
     645      $start = 0;
     646    }
     647
     648    $template->assign(
     649      array(
     650        'F_ADD_ACTION' => $base_url,
     651        'F_USERNAME' => @htmlentities($_GET['username']),
     652        'F_FILTER_ACTION' => get_root_url().'admin.php'
     653        )
     654          );
     655
     656/* Hide radio-button if not allow to assign adviser */
     657        if ($conf['allow_adviser'])
     658    {
     659      $template->assign('adviser', true);
     660    }
     661       
     662// +-----------------------------------------------------------------------+
     663// |                               user list                               |
     664// +-----------------------------------------------------------------------+
     665
     666        $profile_url = get_root_url().'admin.php?page=profile&amp;user_id=';
     667    $perm_url = get_root_url().'admin.php?page=user_perm&amp;user_id=';
     668
     669    $visible_user_list = array();
     670    foreach ($page['filtered_users'] as $num => $local_user)
     671    {
     672/* simulate LIMIT $start, $conf['users_page'] */
     673      if ($num < $start)
     674      {
     675        continue;
     676      }
     677      if ($num >= $start + $conf['users_page'])
     678      {
     679        break;
     680      }
     681
     682      $visible_user_list[] = $local_user;
     683        }
     684
     685        foreach ($visible_user_list as $local_user)
     686    {
     687      $groups_string = preg_replace(
     688        '/(\d+)/e',
     689        "\$groups['$1']",
     690        implode(
     691                ', ',
     692            $local_user['groups']
     693         )
    423694        );
    424695
    425 // +-----------------------------------------------------------------------+
    426 // |                               user list                               |
    427 // +-----------------------------------------------------------------------+
    428 
    429             $page['filtered_users'] = get_unvalid_user_list();
    430 
    431 // +-----------------------------------------------------------------------+
    432 // |                            selected users                             |
    433 // +-----------------------------------------------------------------------+
    434 //TODO:Link deletion to all users selected or single user
    435         if (isset($_POST['delete']))
    436           {
    437             $collection = array();
    438  
    439             switch ($_POST['target'])
    440               {
    441                 case 'all' :
    442                   {
    443                     foreach($page['filtered_users'] as $local_user)
    444                       {
    445                         array_push($collection, $local_user['id']);
    446                       }
    447                     break;
    448                   }
    449                 case 'selection' :
    450                   {
    451                     if (isset($_POST['selection']))
    452                       {
    453                         $collection = $_POST['selection'];
    454                       }
    455                     break;
    456                   }
    457               }
    458 
    459             if (count($collection) == 0)
    460               {
    461                 array_push($page['errors'], l10n('Select at least one user'));
    462               }
    463           }
    464 
    465 // +-----------------------------------------------------------------------+
    466 // |                             delete users                              |
    467 // +-----------------------------------------------------------------------+
    468         if (isset($_POST['delete']) and count($collection) > 0)
    469           {
    470             if (in_array($conf['guest_id'], $collection))
    471               {
    472                 array_push($page['errors'], l10n('Guest cannot be deleted'));
    473               }
    474             if (($conf['guest_id'] != $conf['default_user_id']) and
    475             in_array($conf['default_user_id'], $collection))
    476               {
    477                 array_push($page['errors'], l10n('Default user cannot be deleted'));
    478               }
    479             if (in_array($conf['webmaster_id'], $collection))
    480               {
    481                 array_push($page['errors'], l10n('Webmaster cannot be deleted'));
    482               }
    483             if (in_array($user['id'], $collection))
    484               {
    485                 array_push($page['errors'], l10n('You cannot delete your account'));
    486               }
    487 
    488             if (count($page['errors']) == 0)
    489               {
    490                 if (isset($_POST['confirm_deletion']) and 1 == $_POST['confirm_deletion'])
    491                   {
    492                     foreach ($collection as $user_id)
    493                       {
    494                         delete_user($user_id);
    495                       }
    496                     array_push(
    497                     $page['infos'],
    498                     l10n_dec(
    499                       '%d user deleted', '%d users deleted',
    500                       count($collection)
    501                       )
    502                     );
    503 
    504                     foreach ($page['filtered_users'] as $filter_key => $filter_user)
    505                       {
    506                         if (in_array($filter_user['id'], $collection))
    507                           {
    508                             unset($page['filtered_users'][$filter_key]);
    509                           }
    510                       }
    511                   }
    512                 else
    513                   {
    514                     array_push($page['errors'], l10n('You need to confirm deletion'));
    515                   }
    516                }
    517           }
    518 // +-----------------------------------------------------------------------+
    519 // |                 Resend new validation key to users                    |
    520 // +-----------------------------------------------------------------------+
    521 
    522 //TODO:Function to send a new validation key to all | single | selected users
    523 
    524 // +-----------------------------------------------------------------------+
    525 // |                              groups list                              |
    526 // +-----------------------------------------------------------------------+
    527 
    528           $groups[-1] = '------------';
    529 
    530           $query = '
    531             SELECT id, name
    532             FROM '.GROUPS_TABLE.'
    533             ORDER BY name ASC
    534             ;';
    535 
    536           $result = pwg_query($query);
    537          
    538           while ($row = mysql_fetch_array($result))
    539             {
    540               $groups[$row['id']] = $row['name'];
    541             }
    542 
    543 // +-----------------------------------------------------------------------+
    544 // |                           Template Init                               |
    545 // +-----------------------------------------------------------------------+
    546         $base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
    547 
    548         if (isset($_GET['start']) and is_numeric($_GET['start']))
    549           {
    550             $start = $_GET['start'];
    551           }
    552         else
    553           {
    554             $start = 0;
    555           }
    556 
    557         $template->assign(
    558           array(
    559             'F_ADD_ACTION' => $base_url,
    560             'F_USERNAME' => @htmlentities($_GET['username']),
    561             'F_FILTER_ACTION' => get_root_url().'admin.php'
    562             )
    563           );
    564 
    565 /* Hide radio-button if not allow to assign adviser */
    566         if ($conf['allow_adviser'])
    567           {
    568             $template->assign('adviser', true);
    569           }
    570        
    571 // +-----------------------------------------------------------------------+
    572 // |                               user list                               |
    573 // +-----------------------------------------------------------------------+
    574 
    575         $profile_url = get_root_url().'admin.php?page=profile&amp;user_id=';
    576         $perm_url = get_root_url().'admin.php?page=user_perm&amp;user_id=';
    577 
    578         $visible_user_list = array();
    579         foreach ($page['filtered_users'] as $num => $local_user)
    580           {
    581 /* simulate LIMIT $start, $conf['users_page'] */
    582             if ($num < $start)
    583               {
    584                 continue;
    585               }
    586             if ($num >= $start + $conf['users_page'])
    587               {
    588                 break;
    589               }
    590 
    591             $visible_user_list[] = $local_user;
    592           }
    593 
    594         foreach ($visible_user_list as $local_user)
    595           {
    596             $groups_string = preg_replace(
    597               '/(\d+)/e',
    598               "\$groups['$1']",
    599               implode(
    600                 ', ',
    601                 $local_user['groups']
    602               )
    603             );
    604 
    605             if (isset($_POST['pref_submit'])
    606               and isset($_POST['selection'])
    607               and in_array($local_user['id'], $_POST['selection']))
    608               {
    609                 $checked = 'checked="checked"';
    610               }
    611             else
    612               {
    613                 $checked = '';
    614               }
    615 
    616             $properties = array();
    617             if ( $local_user['level'] != 0 )
    618               {
    619                 $properties[] = l10n( sprintf('Level %d', $local_user['level']) );
    620               }
    621             $properties[] =
    622             (isset($local_user['enabled_high']) and ($local_user['enabled_high'] == 'true'))
    623               ? l10n('is_high_enabled') : l10n('is_high_disabled');
     696          if (isset($_POST['pref_submit'])
     697        and isset($_POST['selection'])
     698        and in_array($local_user['id'], $_POST['selection']))
     699          {
     700        $checked = 'checked="checked"';
     701          }
     702      else
     703      {
     704        $checked = '';
     705      }
     706
     707      $properties = array();
     708      if ( $local_user['level'] != 0 )
     709      {
     710        $properties[] = l10n( sprintf('Level %d', $local_user['level']) );
     711      }
     712      $properties[] =
     713        (isset($local_user['enabled_high']) and ($local_user['enabled_high'] == 'true'))
     714          ? l10n('is_high_enabled') : l10n('is_high_disabled');
    624715             
    625             if (isset($conf_nbc_UserAdvManager_ConfirmMail[1]) and $conf_nbc_UserAdvManager_ConfirmMail[0]=='true' )
    626               {
    627                 $template->append(
    628                   'users',
    629                   array(
    630                     'ID' => $local_user['id'],
    631                     'CHECKED' => $checked,
    632                     'U_PROFILE' => $profile_url.$local_user['id'],
    633                     'U_PERM' => $perm_url.$local_user['id'],
    634                     'USERNAME' => $local_user['username']
    635                       .($local_user['id'] == $conf['guest_id']
    636                         ? '<BR />['.l10n('is_the_guest').']' : '')
    637                       .($local_user['id'] == $conf['default_user_id']
    638                         ? '<BR />['.l10n('is_the_default').']' : ''),
    639                     'STATUS' => l10n('user_status_'.
    640                       $local_user['status']).(($local_user['adviser'] == 'true')
    641                       ? '<BR />['.l10n('adviser').']' : ''),
    642                     'EMAIL' => get_email_address_as_display_text($local_user['email']),
    643                     'GROUPS' => $groups_string,
    644                     //TODO:Changing ACTION from $properties to Single_Deletion
    645                     //TODO:Addin new ACTION to Resend new validation key
    646                     'ACTION' => implode( ', ', $properties),
    647                   )
    648                 );
    649               }
    650           }             
    651 
    652           $template->assign(
    653             array(
    654                   'UserAdvManager_CONFIRMMAIL_TIMEOUT_TRUE'             => $conf_nbc_UserAdvManager_ConfirmMail[0]=='true' ?  'checked="checked"' : '' ,
    655                   'UserAdvManager_CONFIRMMAIL_TIMEOUT_FALSE'    => $conf_nbc_UserAdvManager_ConfirmMail[0]=='false' ?  'checked="checked"' : '' ,
    656                   'UserAdvManager_CONFIRMMAIL_DELAY'                    => $conf_nbc_UserAdvManager_ConfirmMail[1],
    657                   //TODO:Adding new option [Resend_new_validation_key : True | False]
    658             )
    659           );           
     716      if (isset($conf_nbc_UserAdvManager_ConfirmMail[1]) and $conf_nbc_UserAdvManager_ConfirmMail[0]=='true' )
     717      {
     718        $template->append(
     719                'users',
     720              array(
     721                'ID' => $local_user['id'],
     722                'CHECKED' => $checked,
     723                'U_PROFILE' => $profile_url.$local_user['id'],
     724                'U_PERM' => $perm_url.$local_user['id'],
     725                'USERNAME' => $local_user['username']
     726                  .($local_user['id'] == $conf['guest_id']
     727                    ? '<BR />['.l10n('is_the_guest').']' : '')
     728                  .($local_user['id'] == $conf['default_user_id']
     729                    ? '<BR />['.l10n('is_the_default').']' : ''),
     730                'STATUS' => l10n('user_status_'.
     731                  $local_user['status']).(($local_user['adviser'] == 'true')
     732                    ? '<BR />['.l10n('adviser').']' : ''),
     733                'EMAIL' => get_email_address_as_display_text($local_user['email']),
     734                'GROUPS' => $groups_string,
     735                'REGISTRATION' => $local_user['registration_date'],
     736                )
     737              );
     738        }
     739          }             
     740
     741          $template->assign(
     742          array(
     743                'UserAdvManager_CONFIRMMAIL_TIMEOUT_TRUE'               => $conf_nbc_UserAdvManager_ConfirmMail[0]=='true' ?  'checked="checked"' : '' ,
     744                'UserAdvManager_CONFIRMMAIL_TIMEOUT_FALSE'      => $conf_nbc_UserAdvManager_ConfirmMail[0]=='false' ?  'checked="checked"' : '' ,
     745                'UserAdvManager_CONFIRMMAIL_DELAY'                                      => $conf_nbc_UserAdvManager_ConfirmMail[1],
     746    'UserAdvManager_CONFIRMMAIL_REMAIL_TXT'                     => $conf_nbc_UserAdvManager_ConfirmMail[2],
     747        )
     748          );           
    660749
    661750// +-----------------------------------------------------------------------+
    662751// |                             errors display                            |
    663752// +-----------------------------------------------------------------------+
    664           if ( isset ($errors) and count($errors) != 0)
    665             {
    666               $template->assign('errors',array());
    667               foreach ($errors as $error)
    668                         {
    669                           array_push($page['errors'], $error);
    670                         }
    671                
     753        if ( isset ($errors) and count($errors) != 0)
     754        {
     755          $template->assign('errors',array());
     756      foreach ($errors as $error)
     757          {
     758                array_push($page['errors'], $error);
     759          }
     760       
    672761
    673762// +-----------------------------------------------------------------------+
    674763// |                           templates display                           |
    675764// +-----------------------------------------------------------------------+
    676       $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/confirmmail.tpl');
    677       $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');               
    678     }
     765        $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/confirmmail.tpl');
     766    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');         
     767  }
    679768  else
    680     {
    681           array_push($page['infos'], l10n('Err_ConfirmMail_Settings'));
    682     }
     769  {
     770        array_push($page['infos'], l10n('Err_ConfirmMail_Settings'));
     771  }
    683772  break;
    684773}
  • extensions/NBC_UserAdvManager/trunk/admin/confirmmail.tpl

    r3836 r3841  
    4040                        <td>{'Email address'|@translate}</td>
    4141                        <td>{'Groups'|@translate}</td>
    42                         <!--<td>{'UserAdvManager_Indiv_Suppr'|@translate}</td>-->
     42                        <td>{'Registration'|@translate}</td>
    4343                        </tr>
    4444                        </thead>
     
    5454                        {foreach from=$user.plugin_columns item=data}
    5555                        <td>{$data}</td>
    56                 {/foreach}
    57                         <!--Todo - Display registration date -->
    58                                 <!--Unaffected column - Can be used in the future -->
    59                         <!--<td style="text-align:center;">-->
    60                         <!--<a href="{$user.U_ACTION}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/edit_s.png" class="button" style="border:none" alt="{'Profile'|@translate}" title="{'Profile'|@translate}" /></a>-->
    61                         <!--</td>-->
     56                        {/foreach}
     57                        <td style="text-align:center;">{$user.REGISTRATION}</td>
    6258                        </tr>
    6359                {/foreach}
Note: See TracChangeset for help on using the changeset viewer.