source: extensions/NBC_UserAdvManager/trunk/admin/UserAdvManager_admin.php @ 4061

Last change on this file since 4061 was 4061, checked in by Eric, 11 years ago

[NBC_UserAdvManager]

  • Bug 1195 fixed : Registration page displays now the good title
  • Some code cleaning
  • Property svn:eol-style set to LF
File size: 32.4 KB
Line 
1<?php
2
3global $user, $lang, $conf, $errors;
4
5if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
6// +-----------------------------------------------------------------------+
7// | Check Access and exit when user status is not ok                      |
8// +-----------------------------------------------------------------------+
9check_status(ACCESS_ADMINISTRATOR);
10
11//ini_set('error_reporting', E_ALL);
12//ini_set('display_errors', true);
13
14include_once (PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
15include_once (PHPWG_ROOT_PATH.'/include/constants.php');
16$my_base_url = get_admin_plugin_menu_link(__FILE__);
17
18load_language('plugin.lang', NBC_UserAdvManager_PATH);
19
20// +-----------------------------------------------------------------------+
21// |                            Tabssheet                                  |
22// +-----------------------------------------------------------------------+
23if (!isset($_GET['tab']))
24        $page['tab'] = 'global';
25else
26  $page['tab'] = $_GET['tab'];
27
28$tabsheet = new tabsheet();
29$tabsheet->add('global',
30               l10n('Tab_Global'),
31               $my_base_url.'&amp;tab=global');
32$tabsheet->add('confirmmail',
33               l10n('Tab_ConfirmMail'),
34               $my_base_url.'&amp;tab=confirmmail');
35$tabsheet->add('usermanager',
36               l10n('Tab_UserManager'),
37               $my_base_url.'&amp;tab=usermanager');
38$tabsheet->select($page['tab']);
39$tabsheet->assign();
40
41$page['global'] = array();
42$error = array();
43$UserAdvManager_Password_Test_Score = 0;
44
45// +-----------------------------------------------------------------------+
46// |                            Tabssheet select                           |
47// +-----------------------------------------------------------------------+
48
49switch ($page['tab'])
50{
51// *************************************************************************
52// +-----------------------------------------------------------------------+
53// |                           Global Config                               |
54// +-----------------------------------------------------------------------+
55// *************************************************************************
56  case 'global':
57       
58        if (isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_Mail_Info']) and isset($_POST['UserAdvManager_No_Casse']) and isset($_POST['UserAdvManager_Username_Char']) and isset($_POST['UserAdvManager_Confirm_Mail']) and isset($_POST['UserAdvManager_No_Comment_Anonymous']) and isset($_POST['UserAdvManager_Password_Enforced']))
59  {
60                $_POST['UserAdvManager_MailInfo_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_MailInfo_Text']));
61                $_POST['UserAdvManager_ConfirmMail_Text'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_Text']));
62               
63                $newconf_nbc_UserAdvManager = $_POST['UserAdvManager_Mail_Info'].';'.$_POST['UserAdvManager_No_Casse'].';'.$_POST['UserAdvManager_Confirm_Mail'].';'.(isset($_POST['UserAdvManager_No_Confirm_Group'])?$_POST['UserAdvManager_No_Confirm_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Group'])?$_POST['UserAdvManager_Validated_Group']:'').';'.(isset($_POST['UserAdvManager_Validated_Status'])?$_POST['UserAdvManager_Validated_Status']:'').';'.$_POST['UserAdvManager_No_Comment_Anonymous'].';'.$_POST['UserAdvManager_Username_Char'].';'.$_POST['UserAdvManager_Username_List'].';'.(isset($_POST['UserAdvManager_No_Confirm_Status'])?$_POST['UserAdvManager_No_Confirm_Status']:'').';'.$_POST['UserAdvManager_MailInfo_Text'].';'.$_POST['UserAdvManager_ConfirmMail_Text'].';'.$_POST['UserAdvManager_MailExclusion'].';'.$_POST['UserAdvManager_MailExclusion_List'].';'.$_POST['UserAdvManager_Password_Enforced'].';'.$_POST['UserAdvManager_Password_Score'];
64               
65                $conf['nbc_UserAdvManager'] = $newconf_nbc_UserAdvManager;
66               
67                $query = '
68                UPDATE '.CONFIG_TABLE.'
69                SET value="'.$newconf_nbc_UserAdvManager.'"
70                WHERE param="nbc_UserAdvManager"
71                LIMIT 1
72                ;';
73               
74                pwg_query($query);
75               
76                array_push($page['infos'], l10n('UserAdvManager_save_config'));
77  }
78
79  if (isset($_POST['PasswordTest']) and !is_adviser() and isset($_POST['UserAdvManager_Password_Test']) and !empty($_POST['UserAdvManager_Password_Test']))
80  {
81    $UserAdvManager_Password_Test_Score = testpassword($_POST['UserAdvManager_Password_Test']);
82  }
83  else if (isset($_POST['PasswordTest']) and !is_adviser() and empty($_POST['UserAdvManager_Password_Test']))
84  {
85    array_push($page['errors'], l10n('reg_err_login3'));
86  }
87       
88  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
89       
90/* Group setting for unvalidated and validated users */
91  $groups[-1] = '---------';
92  $No_Valid = -1;
93  $Valid = -1;
94       
95/* Check groups list in database  */
96  $query = '
97    SELECT id, name
98                FROM '.GROUPS_TABLE.'
99                ORDER BY name ASC
100                ;';
101       
102  $result = pwg_query($query);
103       
104  while ($row = mysql_fetch_array($result))
105  {
106    $groups[$row['id']] = $row['name'];
107/* configuration value for unvalidated users */
108    if (isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] == $row['id'])
109    {
110                $No_Valid = $row['id'];
111                }
112/* configuration value for validated users */
113    if (isset($conf_nbc_UserAdvManager[4]) and $conf_nbc_UserAdvManager[4] == $row['id'])
114                {
115                $Valid = $row['id'];
116                }
117  }
118       
119/* Template initialization for unvalidated users group */
120  $template->assign(
121    'No_Confirm_Group',
122        array(
123                'group_options'=> $groups,
124                'group_selected' => $No_Valid
125                        )
126                );
127/* Template initialization for validated users group */
128  $template->assign(
129    'Validated_Group',
130                array(
131      'group_options'=> $groups,
132      'group_selected' => $Valid
133                        )
134        );
135       
136/* Status setting for unvalidated and validated users */
137  $status_options[-1] = '------------';
138  $No_Valid_Status = -1;
139  $Valid_Status = -1;
140       
141/* Get status values */
142  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
143  {
144          $status_options[$status] = l10n('user_status_'.$status);
145          if (isset($conf_nbc_UserAdvManager[9]) and $conf_nbc_UserAdvManager[9] == $status)
146          {
147            $No_Valid_Status = $status;
148          }
149         
150/* Template initialization for unvalidated users group */
151      $template->assign(
152        'No_Confirm_Status',
153        array(
154                                        'Status_options' => $status_options,
155                                'Status_selected' => $No_Valid_Status
156                                        )
157                        );
158  }
159 
160/* Get status values */
161  foreach (get_enums(USER_INFOS_TABLE, 'status') as $status)
162  {
163          $status_options[$status] = l10n('user_status_'.$status);
164          if (isset($conf_nbc_UserAdvManager[5]) and $conf_nbc_UserAdvManager[5] == $status)
165                {
166                  $Valid_Status = $status;
167                }
168               
169/* Template initialization for unvalidated users group */
170      $template->assign(
171            'Confirm_Status',
172            array(
173                    'Status_options' => $status_options,
174                    'Status_selected' => $Valid_Status
175                    )
176            );
177        }
178       
179  $template->assign(
180    array(
181                'UserAdvManager_MAIL_INFO_TRUE'       => $conf_nbc_UserAdvManager[0]=='true' ?  'checked="checked"' : '' ,
182                'UserAdvManager_MAIL_INFO_FALSE'      => $conf_nbc_UserAdvManager[0]=='false' ?  'checked="checked"' : '' ,
183                'UserAdvManager_MAILINFO_TEXT'        => $conf_nbc_UserAdvManager[10],
184                'UserAdvManager_NO_CASSE_TRUE'        => $conf_nbc_UserAdvManager[1]=='true' ?  'checked="checked"' : '' ,
185                'UserAdvManager_NO_CASSE_FALSE'       => $conf_nbc_UserAdvManager[1]=='false' ?  'checked="checked"' : '' ,
186                'UserAdvManager_USERNAME_CHAR_TRUE'   => $conf_nbc_UserAdvManager[7]=='true' ?  'checked="checked"' : '' ,
187                'UserAdvManager_USERNAME_CHAR_FALSE'  => $conf_nbc_UserAdvManager[7]=='false' ?  'checked="checked"' : '' ,
188                'UserAdvManager_USERNAME_CHAR_LIST'   => $conf_nbc_UserAdvManager[8],
189                'UserAdvManager_CONFIRM_MAIL_TRUE'    => $conf_nbc_UserAdvManager[2]=='true' ?  'checked="checked"' : '' ,
190                'UserAdvManager_CONFIRM_MAIL_FALSE'   => $conf_nbc_UserAdvManager[2]=='false' ?  'checked="checked"' : '' ,
191                'UserAdvManager_CONFIRMMAIL_TEXT'     => $conf_nbc_UserAdvManager[11],
192                'UserAdvManager_No_Confirm_Group'     => $conf_nbc_UserAdvManager[3],
193                'UserAdvManager_Validated_Group'      => $conf_nbc_UserAdvManager[4],
194                'UserAdvManager_No_Confirm_Status'    => $conf_nbc_UserAdvManager[9],
195                'UserAdvManager_Validated_Status'     => $conf_nbc_UserAdvManager[5],
196                'UserAdvManager_NO_COMMENT_ANO_TRUE'  => $conf_nbc_UserAdvManager[6]=='true' ?  'checked="checked"' : '' ,
197                'UserAdvManager_NO_COMMENT_ANO_FALSE' => $conf_nbc_UserAdvManager[6]=='false' ?  'checked="checked"' : '' ,
198                'UserAdvManager_MAILEXCLUSION_TRUE'   => $conf_nbc_UserAdvManager[12]=='true' ?  'checked="checked"' : '' ,
199                'UserAdvManager_MAILEXCLUSION_FALSE'  => $conf_nbc_UserAdvManager[12]=='false' ?  'checked="checked"' : '' ,
200                'UserAdvManager_MAILEXCLUSION_LIST'   => $conf_nbc_UserAdvManager[13],
201                'UserAdvManager_PASSWORDENF_TRUE'     => $conf_nbc_UserAdvManager[14]=='true' ?  'checked="checked"' : '' ,
202                'UserAdvManager_PASSWORDENF_FALSE'    => $conf_nbc_UserAdvManager[14]=='false' ?  'checked="checked"' : '' ,
203                'UserAdvManager_PASSWORD_SCORE'       => $conf_nbc_UserAdvManager[15],
204                'UserAdvManager_PASSWORD_TEST_SCORE'  => $UserAdvManager_Password_Test_Score,
205    )
206  );
207       
208
209  if ( isset($_POST['audit']) or isset($_POST['submit']) )
210        {
211                $msg_error1 = '';
212               
213/* username insensible a la casse */
214    if (isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] == 'true')
215          {
216                        $query = "
217                        SELECT ".$conf['user_fields']['username']."
218                                FROM ".USERS_TABLE." p1
219                                WHERE EXISTS(
220                                SELECT ".$conf['user_fields']['username']."
221                                FROM ".USERS_TABLE." p2
222                                WHERE p1.".$conf['user_fields']['id']." <> p2.".$conf['user_fields']['id']."
223                                AND LOWER(p1.".$conf['user_fields']['username'].") = LOWER(p2.".$conf['user_fields']['username'].")
224                                )
225                        ;";
226                         
227                  $result = pwg_query($query);
228                       
229                  while($row = mysql_fetch_array($result))
230                {
231                                $msg_error1 .= (($msg_error1 <> '') ? '<br/>' : '') . l10n('Err_audit_no_casse').$row['username'];
232                        }
233                }
234
235                $msg_error2 = '';
236               
237/* Username without forbidden keys */
238    if ( isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' )
239          {
240                        $query = "
241                        SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
242                                FROM ".USERS_TABLE."
243                        ;";
244                         
245                        $result = pwg_query($query);
246                       
247                        while($row = mysql_fetch_array($result))
248                        {
249                                if (!ValidateUsername($row['username']))
250                                        $msg_error2 .= (($msg_error2 <> '') ? '<br/>' : '') . l10n('Err_audit_username_char').$row['username'];
251                        }
252                }
253
254                $msg_error3 = '';
255               
256/* Email without forbidden domain */
257    if ( isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' )
258          {
259                        $query = "
260                        SELECT ".$conf['user_fields']['username'].", ".$conf['user_fields']['email']."
261                                FROM ".USERS_TABLE."
262                        ;";
263                         
264                  $result = pwg_query($query);
265                       
266                  while($row = mysql_fetch_array($result))
267                  {
268                                $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
269                          $conf_nbc_MailExclusion = preg_split('/,/',$conf_nbc_UserAdvManager[13]);
270                          for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
271                          {
272                                        $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
273                                  if (preg_match($pattern, $row['mail_address']))
274                                  {
275                                                $msg_error3 .=  (($msg_error3 <> '') ? '<br/>' : '') . l10n('Err_audit_email_forbidden').$row['username'].' ('.$row['mail_address'].')';
276                                        }
277                                }
278                        }
279                }
280               
281    if ($msg_error1 <> '')
282                        $errors[] = $msg_error1.'<br/><br/>';
283               
284                if ($msg_error2 <> '')
285                        $errors[] = $msg_error2.'<br/><br/>';
286               
287                if ($msg_error3 <> '')
288                $errors[] = $msg_error3.'<br/><br/>';
289               
290                if ($msg_error1 <> '' or $msg_error2 <> '' or $msg_error3 <> '')
291                array_push($page['errors'], l10n('Err_audit_advise'));
292                else
293        array_push($page['infos'], l10n('UserAdvManager_audit_ok'));
294        }
295
296
297// +-----------------------------------------------------------------------+
298// |                             errors display                            |
299// +-----------------------------------------------------------------------+
300  if ( isset ($errors) and count($errors) != 0)
301  {
302          $template->assign('errors',array());
303          foreach ($errors as $error)
304          {
305                  array_push($page['errors'], $error);
306                }
307        } 
308
309// +-----------------------------------------------------------------------+
310// |                           templates display                           |
311// +-----------------------------------------------------------------------+
312  $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/global.tpl');
313  $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
314
315  break;
316
317// *************************************************************************
318// +-----------------------------------------------------------------------+
319// |                           ConfirmMail Config                          |
320// +-----------------------------------------------------------------------+
321// *************************************************************************
322  case 'confirmmail':
323       
324  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
325       
326  if (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2]=='true')
327  {
328    if ( isset($_POST['submit']) and !is_adviser() and isset($_POST['UserAdvManager_ConfirmMail_TimeOut']) )
329                {
330                $_POST['UserAdvManager_ConfirmMail_ReMail_Txt1'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_ReMail_Txt1']));
331                $_POST['UserAdvManager_ConfirmMail_ReMail_Txt2'] = str_replace("\'", "'", str_replace("\\\\", "\\", $_POST['UserAdvManager_ConfirmMail_ReMail_Txt2']));
332                 
333                $newconf_nbc_UserAdvManager_ConfirmMail = $_POST['UserAdvManager_ConfirmMail_TimeOut'].';'.$_POST['UserAdvManager_ConfirmMail_Delay'].';'.$_POST['UserAdvManager_ConfirmMail_ReMail_Txt1'].';'.$_POST['UserAdvManager_ConfirmMail_Remail'].';'.$_POST['UserAdvManager_ConfirmMail_ReMail_Txt2'];
334                 
335//NODO:Adding new option [Auto deletion : True | False] - No access to cron functionnalities
336
337                $conf['nbc_UserAdvManager_ConfirmMail'] = $newconf_nbc_UserAdvManager_ConfirmMail;
338               
339                $query = '
340                UPDATE '.CONFIG_TABLE.'
341                                SET value="'.$newconf_nbc_UserAdvManager_ConfirmMail.'"
342                                WHERE param="nbc_UserAdvManager_ConfirmMail"
343                                LIMIT 1
344                        ;';
345               
346                        pwg_query($query);
347               
348                        array_push($page['infos'], l10n('UserAdvManager_save_config'));
349                }
350       
351                $conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();               
352
353          $template->assign(
354          array(
355                'UserAdvManager_CONFIRMMAIL_TIMEOUT_TRUE'               => $conf_nbc_UserAdvManager_ConfirmMail[0]=='true' ?  'checked="checked"' : '' ,
356                'UserAdvManager_CONFIRMMAIL_TIMEOUT_FALSE'      => $conf_nbc_UserAdvManager_ConfirmMail[0]=='false' ?  'checked="checked"' : '' ,
357                'UserAdvManager_CONFIRMMAIL_DELAY'                                      => $conf_nbc_UserAdvManager_ConfirmMail[1],
358    'UserAdvManager_CONFIRMMAIL_REMAIL_TRUE'            => $conf_nbc_UserAdvManager_ConfirmMail[3]=='true' ? 'checked="checked"' : '',
359    'UserAdvManager_CONFIRMMAIL_REMAIL_FALSE'           => $conf_nbc_UserAdvManager_ConfirmMail[3]=='false' ? 'checked="checked"' : '',
360    'UserAdvManager_CONFIRMMAIL_REMAIL_TXT1'            => $conf_nbc_UserAdvManager_ConfirmMail[2],
361    'UserAdvManager_CONFIRMMAIL_REMAIL_TXT2'            => $conf_nbc_UserAdvManager_ConfirmMail[4],
362        )
363          );           
364
365// +-----------------------------------------------------------------------+
366// |                             errors display                            |
367// +-----------------------------------------------------------------------+
368                if ( isset ($errors) and count($errors) != 0)
369                {
370                $template->assign('errors',array());
371                        foreach ($errors as $error)
372                {
373                                array_push($page['errors'], $error);
374                }
375                } 
376
377// +-----------------------------------------------------------------------+
378// |                           templates display                           |
379// +-----------------------------------------------------------------------+
380                $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/confirmmail.tpl');
381    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');         
382  }
383  else
384  {
385                array_push($page['infos'], l10n('Err_ConfirmMail_Settings'));
386  }
387  break;
388
389
390// *************************************************************************
391// +-----------------------------------------------------------------------+
392// |                           Users manager page                          |
393// +-----------------------------------------------------------------------+
394// *************************************************************************
395  case 'usermanager':
396 
397  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
398  $conf_nbc_UserAdvManager_ConfirmMail = isset($conf['nbc_UserAdvManager_ConfirmMail']) ? explode(";" , $conf['nbc_UserAdvManager_ConfirmMail']) : array();
399       
400  if (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2]=='true' and ((isset($conf_nbc_UserAdvManager[3]) and $conf_nbc_UserAdvManager[3] <> '-1') or (isset($conf_nbc_UserAdvManager[9]) and $conf_nbc_UserAdvManager[9] <> '-1')) and isset($conf_nbc_UserAdvManager_ConfirmMail[0]) and $conf_nbc_UserAdvManager_ConfirmMail[0]=='true')
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'),
423    );
424
425// +-----------------------------------------------------------------------+
426// |                               user list                               |
427// +-----------------------------------------------------------------------+
428
429                $page['filtered_users'] = get_unvalid_user_list();
430
431// +-----------------------------------------------------------------------+
432// |                            selected users                             |
433// +-----------------------------------------------------------------------+
434                if (isset($_POST['Del_Selected']))
435                {
436                $collection = array();
437
438                        switch ($_POST['target'])
439        {
440                case 'all' :
441        {
442                foreach($page['filtered_users'] as $local_user)
443                {
444                        array_push($collection, $local_user['id']);
445                }
446                                        break;
447                                }
448        case 'selection' :
449        {
450                if (isset($_POST['selection']))
451                {
452                        $collection = $_POST['selection'];
453                }
454                break;
455        }
456                        }
457
458                        if (count($collection) == 0)
459        {
460                array_push($page['errors'], l10n('Select at least one user'));
461                }
462                }
463
464// +-----------------------------------------------------------------------+
465// |                             delete users                              |
466// +-----------------------------------------------------------------------+
467                if (isset($_POST['Del_Selected']) and count($collection) > 0)
468        {
469                if (in_array($conf['guest_id'], $collection))
470                {
471                array_push($page['errors'], l10n('Guest cannot be deleted'));
472        }
473        if (($conf['guest_id'] != $conf['default_user_id']) and
474                in_array($conf['default_user_id'], $collection))
475        {
476                array_push($page['errors'], l10n('Default user cannot be deleted'));
477        }
478        if (in_array($conf['webmaster_id'], $collection))
479        {
480                array_push($page['errors'], l10n('Webmaster cannot be deleted'));
481        }
482        if (in_array($user['id'], $collection))
483        {
484                array_push($page['errors'], l10n('You cannot delete your account'));
485        }
486
487                        if (count($page['errors']) == 0)
488        {
489                foreach ($collection as $user_id)
490        {
491                delete_user($user_id);
492        }
493                array_push(
494                $page['infos'],
495                l10n_dec(
496                '%d user deleted', '%d users deleted',
497                count($collection)
498                )
499        );
500
501        foreach ($page['filtered_users'] as $filter_key => $filter_user)
502        {
503                if (in_array($filter_user['id'], $collection))
504                {
505                        unset($page['filtered_users'][$filter_key]);
506                }
507                }
508                        }
509                }
510
511// +-----------------------------------------------------------------------+
512// |                 Resend new validation key to users                    |
513// +-----------------------------------------------------------------------+
514// +-----------------------------------------------------------------------+
515// |                            selected users                             |
516// +-----------------------------------------------------------------------+
517                if (isset($_POST['Mail_With_Key']))
518                {
519                $collection = array();
520
521                        switch ($_POST['target'])
522        {
523                case 'all' :
524        {
525                foreach($page['filtered_users'] as $local_user)
526                {
527                        array_push($collection, $local_user['id']);
528                }
529                break;
530                                }
531        case 'selection' :
532        {
533                if (isset($_POST['selection']))
534                {
535                        $collection = $_POST['selection'];
536                }
537                break;
538        }
539                        }
540
541        if (count($collection) == 0)
542        {
543                array_push($page['errors'], l10n('Select at least one user'));
544        }
545                }
546// +-----------------------------------------------------------------------+
547// |                 Resend new validation key to users                    |
548// +-----------------------------------------------------------------------+
549                if (isset($_POST['Mail_With_Key']) and count($collection) > 0)
550                {
551                        if (in_array($conf['guest_id'], $collection))
552                {
553                array_push($page['errors'], l10n('No_validation_for_Guest'));
554        }
555        if (($conf['guest_id'] != $conf['default_user_id']) and
556                in_array($conf['default_user_id'], $collection))
557        {
558                array_push($page['errors'], l10n('No_validation_for_default_user'));
559        }
560                if (in_array($conf['webmaster_id'], $collection))
561        {
562                array_push($page['errors'], l10n('No_validation_for_Webmaster'));
563        }
564        if (in_array($user['id'], $collection))
565        {
566                array_push($page['errors'], l10n('No_validation_for_your_account'));
567        }
568
569        if (count($page['errors']) == 0)
570        {
571                foreach ($collection as $user_id)
572        {       
573                $typemail = 1;
574                                  $query = "
575                                                SELECT id, username, mail_address
576                                                FROM ".USERS_TABLE."
577                                                WHERE id = '".$user_id."'
578                                                ;";
579                                        $data = mysql_fetch_array(pwg_query($query));
580                               
581                ResendMail2User($typemail,$user_id,$data['username'],$data['mail_address'],true);
582        }
583        array_push(
584                $page['infos'],
585                l10n_dec(
586                        '%d_Mail_With_Key', '%d_Mails_With_Key',
587                count($collection)
588                )
589        );
590       
591                                $page['filtered_users'] = get_unvalid_user_list();
592                        }
593                }
594
595// +-----------------------------------------------------------------------+
596// |             Send reminder without new key to users                    |
597// +-----------------------------------------------------------------------+
598// +-----------------------------------------------------------------------+
599// |                            selected users                             |
600// +-----------------------------------------------------------------------+
601                if (isset($_POST['Mail_Without_Key']))
602                {
603                $collection = array();
604
605                        switch ($_POST['target'])
606        {
607                case 'all' :
608        {
609                foreach($page['filtered_users'] as $local_user)
610                {
611                        array_push($collection, $local_user['id']);
612                }
613                break;
614                                }
615        case 'selection' :
616        {
617                if (isset($_POST['selection']))
618                {
619                        $collection = $_POST['selection'];
620                }
621                break;
622        }
623                        }
624
625        if (count($collection) == 0)
626        {
627                array_push($page['errors'], l10n('Select at least one user'));
628        }
629                }
630// +-----------------------------------------------------------------------+
631// |             Send reminder without new key to users                    |
632// +-----------------------------------------------------------------------+
633                if (isset($_POST['Mail_Without_Key']) and count($collection) > 0)
634                {
635                        if (in_array($conf['guest_id'], $collection))
636                {
637                array_push($page['errors'], l10n('No_validation_for_Guest'));
638        }
639        if (($conf['guest_id'] != $conf['default_user_id']) and
640                in_array($conf['default_user_id'], $collection))
641        {
642                array_push($page['errors'], l10n('No_validation_for_default_user'));
643        }
644                if (in_array($conf['webmaster_id'], $collection))
645        {
646                array_push($page['errors'], l10n('No_validation_for_Webmaster'));
647        }
648        if (in_array($user['id'], $collection))
649        {
650                array_push($page['errors'], l10n('No_validation_for_your_account'));
651        }
652
653        if (count($page['errors']) == 0)
654        {
655                foreach ($collection as $user_id)
656        {
657                $typemail = 2;
658                                  $query = "
659                                                SELECT id, username, mail_address
660                                                FROM ".USERS_TABLE."
661                                                WHERE id = '".$user_id."'
662                                        ;";
663                                       
664                                        $data = mysql_fetch_array(pwg_query($query));
665                               
666                ResendMail2User($typemail,$user_id,$data['username'],$data['mail_address'],false);                             
667        }
668        array_push(
669                $page['infos'],
670                l10n_dec(
671                        '%d_Reminder_Sent', '%d_Reminders_Sent',
672                count($collection)
673                )
674        );
675       
676                                $page['filtered_users'] = get_unvalid_user_list();
677                        }
678                }
679
680// +-----------------------------------------------------------------------+
681// |                                                                            Force validation                                                         |
682// +-----------------------------------------------------------------------+
683// +-----------------------------------------------------------------------+
684// |                            selected users                             |
685// +-----------------------------------------------------------------------+
686                if (isset($_POST['Force_Validation']))
687                {
688                $collection = array();
689
690                        switch ($_POST['target'])
691        {
692                case 'all' :
693        {
694                foreach($page['filtered_users'] as $local_user)
695                {
696                        array_push($collection, $local_user['id']);
697                }
698                break;
699                                }
700        case 'selection' :
701        {
702                if (isset($_POST['selection']))
703                {
704                        $collection = $_POST['selection'];
705                }
706                break;
707        }
708                        }
709
710        if (count($collection) == 0)
711        {
712                array_push($page['errors'], l10n('Select at least one user'));
713        }
714                }
715// +-----------------------------------------------------------------------+
716// |                                                                            Force validation                                                         |
717// +-----------------------------------------------------------------------+
718                if (isset($_POST['Force_Validation']) and count($collection) > 0)
719                {
720                        if (in_array($conf['guest_id'], $collection))
721                {
722                array_push($page['errors'], l10n('No_validation_for_Guest'));
723        }
724        if (($conf['guest_id'] != $conf['default_user_id']) and
725                in_array($conf['default_user_id'], $collection))
726        {
727                array_push($page['errors'], l10n('No_validation_for_default_user'));
728        }
729                if (in_array($conf['webmaster_id'], $collection))
730        {
731                array_push($page['errors'], l10n('No_validation_for_Webmaster'));
732        }
733        if (in_array($user['id'], $collection))
734        {
735                array_push($page['errors'], l10n('No_validation_for_your_account'));
736        }
737
738        if (count($page['errors']) == 0)
739        {
740                foreach ($collection as $user_id)
741        {
742                                  $query = "
743                                                SELECT id, username, mail_address
744                                                FROM ".USERS_TABLE."
745                                                WHERE id = '".$user_id."'
746                                        ;";
747                                       
748                                        $data = mysql_fetch_array(pwg_query($query));
749                               
750                ForceValidation($data['id']);                           
751        }
752        array_push(
753                $page['infos'],
754                l10n_dec(
755                        '%d_Validated_User', '%d_Validated_Users',
756                count($collection)
757                )
758        );
759
760                                $page['filtered_users'] = get_unvalid_user_list();
761                        }
762                }
763               
764
765// +-----------------------------------------------------------------------+
766// |                              groups list                              |
767// +-----------------------------------------------------------------------+
768
769                $groups[-1] = '------------';
770
771    $query = '
772      SELECT id, name
773      FROM '.GROUPS_TABLE.'
774      ORDER BY name ASC
775      ;';
776
777                $result = pwg_query($query);
778         
779    while ($row = mysql_fetch_array($result))
780    {
781      $groups[$row['id']] = $row['name'];
782    }
783
784// +-----------------------------------------------------------------------+
785// |                           Template Init                               |
786// +-----------------------------------------------------------------------+
787                $base_url = PHPWG_ROOT_PATH.'admin.php?page=user_list';
788
789    if (isset($_GET['start']) and is_numeric($_GET['start']))
790    {
791      $start = $_GET['start'];
792    }
793    else
794    {
795      $start = 0;
796    }
797
798    $template->assign(
799      array(
800        'F_ADD_ACTION' => $base_url,
801        'F_USERNAME' => @htmlentities($_GET['username']),
802        'F_FILTER_ACTION' => get_root_url().'admin.php'
803        )
804          );
805
806/* Hide radio-button if not allow to assign adviser */
807                if ($conf['allow_adviser'])
808        {
809        $template->assign('adviser', true);
810        }
811       
812// +-----------------------------------------------------------------------+
813// |                               user list                               |
814// +-----------------------------------------------------------------------+
815
816                $profile_url = get_root_url().'admin.php?page=profile&amp;user_id=';
817                $perm_url = get_root_url().'admin.php?page=user_perm&amp;user_id=';
818
819    $visible_user_list = array();
820    foreach ($page['filtered_users'] as $num => $local_user)
821    {
822/* simulate LIMIT $start, $conf['users_page'] */
823                        if ($num < $start)
824      {
825        continue;
826      }
827      if ($num >= $start + $conf['users_page'])
828      {
829        break;
830      }
831
832      $visible_user_list[] = $local_user;
833                }
834
835                foreach ($visible_user_list as $local_user)
836    {
837      $groups_string = preg_replace(
838        '/(\d+)/e',
839        "\$groups['$1']",
840        implode(
841                ', ',
842            $local_user['groups']
843         )
844                        );
845
846                if (isset($_POST['pref_submit'])
847                and isset($_POST['selection'])
848        and in_array($local_user['id'], $_POST['selection']))
849                {
850                                $checked = 'checked="checked"';
851                }
852                        else
853        {
854                $checked = '';
855        }
856
857        $properties = array();
858        if ( $local_user['level'] != 0 )
859                        {
860                $properties[] = l10n( sprintf('Level %d', $local_user['level']) );
861                        }
862        $properties[] =
863                (isset($local_user['enabled_high']) and ($local_user['enabled_high'] == 'true'))
864                ? l10n('is_high_enabled') : l10n('is_high_disabled');
865
866                        $expiration = expiration($local_user['id']);
867             
868                $template->append(
869                'users',
870        array(
871                'ID' => $local_user['id'],
872                'CHECKED' => $checked,
873                'U_PROFILE' => $profile_url.$local_user['id'],
874                'U_PERM' => $perm_url.$local_user['id'],
875                'USERNAME' => $local_user['username']
876                                                .($local_user['id'] == $conf['guest_id']
877                                                ? '<BR />['.l10n('is_the_guest').']' : '')
878                .($local_user['id'] == $conf['default_user_id']
879                ? '<BR />['.l10n('is_the_default').']' : ''),
880                                        'STATUS' => l10n('user_status_'.
881                                                $local_user['status']).(($local_user['adviser'] == 'true')
882                ? '<BR />['.l10n('adviser').']' : ''),
883                                        'EMAIL' => get_email_address_as_display_text($local_user['email']),
884                'GROUPS' => $groups_string,
885                'REGISTRATION' => $local_user['registration_date'],
886                'EXPIRATION' => $expiration,
887                                )
888                        );
889                }
890
891// +-----------------------------------------------------------------------+
892// |                             errors display                            |
893// +-----------------------------------------------------------------------+
894                if ( isset ($errors) and count($errors) != 0)
895                {
896                $template->assign('errors',array());
897                        foreach ($errors as $error)
898                {
899                                array_push($page['errors'], $error);
900                }
901                } 
902
903// +-----------------------------------------------------------------------+
904// |                           templates display                           |
905// +-----------------------------------------------------------------------+
906                $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/usermanager.tpl');
907    $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');         
908        }
909  else
910  {
911                array_push($page['infos'], l10n('Err_UserManager_Settings'));
912  }
913  break; 
914}
915?>
Note: See TracBrowser for help on using the repository browser.