source: extensions/NBC_UserAdvManager/trunk/main.inc.php @ 4380

Last change on this file since 4380 was 4380, checked in by Eric, 14 years ago

[NBC_UserAdvManager] Pre 2.13

  • Evolution 1239 - New option to add a new tab that shows the number of days since their last visit for each registered user.
  • Evolution 1273 - Adding of reminder field in advanced user management tab. This allows to see if a reminder have already been send.
  • Evolution 1292 - Adding of navigation bar in tabs where users are listed (when more than 1 page is needed to display users).
  • Some code and translations refactory.
  • Property svn:eol-style set to LF
File size: 22.0 KB
Line 
1<?php
2/*
3Plugin Name: NBC UserAdvManager
4Version: 2.13.0
5Description: Renforcer les possibilités de gestion des utilisateurs - Enforce users management
6Plugin URI: http://fr.piwigo.org/ext/extension_view.php?eid=216
7Author: Nicco, Eric
8Author URI: http://gallery-nicco.no-ip.org, http://www.infernoweb.net
9*/
10
11/*
12 ***** Plugin history (branch 2.10)*****
13
14-- 2.10.0-beta : Initial beta release for Piwigo compatibility
15-- 2.10.1-beta : Small correction on generated path
16-- 2.10.2-beta : Bug resolved on register validation page
17
18-- 2.10.3 : Final and fully functional release
19                                                Bug resolved on plugin activation
20
21-- 2.10.4 : Bug fixed on profiles update
22
23-- 2.10.5 : Improved code on profiles update
24
25-- 2.10.6 : Old language packs (iso) deleted (forget from PWG 1.7.x version)
26
27-- 2.10.7 : Bug fixed on user's validation email sending
28
29-- 2.10.8 : ConfirmMail page looks better (Sylvia theme only)
30                                                Improved code for checking author on guest comments
31
32-- 2.10.9 : Bug fixed - Missing english translation
33                                                Bug fixed - Notice on forbidden characters function use
34                                                Bug fixed - Audit on forbidden characters in username didn't work
35                                                Adding of email provider exclusion (like *@hotmail.com) - Warning ! -> Known bug : This feature doesn't work on user profile page. So, already registered users can change their email address to a forbiden one.
36
37-- 2.10.9a : Email provider exclusion is no longer case sensitive
38
39-- 2.10.9b : Bug fixed - Home icon wasn't linked to gallery url in ConfirmMail page. If GALLERY_URL is not set, Home icon gets the pwg root path.
40
41-- 2.10.9c : Bug fixed - If Email provider exclusion is set off, new registered user will have a PHP notice on "Undefined variable: ncsemail"
42
43-- 2.10.9d : Code simplification - need no more ""template"" sub-directory in plugin directory for enhance "back link" icon in ConfirMail.tpl
44
45-- 2.10.9e : Compatibility improvement with PHP 5.3 - Some old functions will be deprecated like :
46                                                        ereg replaced by preg_match
47                                                        eregi replace by preg_match with "i" moderator
48                                                        split replace by preg_split
49                               
50-- 2.10.9f : Compatibility bug fixed when used with DynamicRecentPeriod plugin
51
52
53 ***** Plugin history (branch 2.11)*****
54
55-- 2.11.0 : New tabsheet menu to manage ConfirMail functions (setting a timeout without validation, Cleanup expired user's accounts, Force confirmation, Renew validation key, list unvalidated users,...)
56                                                Beautify plugin's main admin panel
57                                               
58-- 2.11.1 : Bug fixed with install and upgrade functions
59                                                Language files correction
60
61-- 2.11.2 : Bug fixed on bad query for unvalidated users display in unvalidated users list
62                                                Bug fixed : Sql syntax error on plugin activation
63
64-- 2.11.3 : On Patricia's request (french forum and bug 1173), the unvalidated users management tab shows users according with the settings of unvalidated group and / or unvalidated status.
65                                                Feature 1172 added : Email providers exclusion list can be set with CR/LF between each entry. The comma seperator (,) is still mandatory.
66                                                Bug 1175 fixed : Bad translation tag in french language file.
67                                                Improvement of unvalidated users management tab (feature 1174)- Expired users are displayed in red color text.
68
69-- 2.11.4 : Bug 1177 fixed : Width of excluded email providers list reset to ancient value (80 col)
70                                                Bug 1179 fixed : Adding a notice in plugin inline documentation for use of validation groups and status. A default group must be set in Piwigo's groups settings and the "Guest" (or another user) must be set as default for status values.
71                                                Bug 1182 fixed : Language tag missing in confirmation email generation
72
73-- 2.11.5 : Bug 1195 fixed : Registration displays the good title
74
75
76 ***** Plugin history (branch 2.12)*****
77
78-- 2.12.0 : Bug 1206 fixed : All plugin functionnalities work in user's profile page
79            Plugin's core code and admin panel refactoring
80            Password control and enforcement : A complexity score is computed on user registration. If this score is less than the goal set by admin, the password choosen is rejected.
81            Feature 1194 "Ghost Tracker" added : New plugin tab displays users who don't comes back to the gallery since x days. Ability to send email reminders and to delete reminded but "dead" users. It's the reason why this feature is called "Ghost Tracker".
82
83-- 2.12.1 : Rollback on admin panel improvement (it was a bad idea)
84
85-- 2.12.2 : Bug 1221 fixed - Adding of a new funtion to populate the lastvisit table on Ghost Tracker activation
86            Bug 1224 fixed - Error in database after plugin activation
87            Bug 1225 fixed - "Reminder" status don't change from "false" to "true" after the sent of a reminder email
88            Some code beautify (SQL requests and HTML 4 strict for tpl)
89
90-- 2.12.3 : Bug 1226 fixed - "duplicate key error" when lastvisit table is not empty and on using Ghost Tracker init function
91
92-- 2.12.4 : Adding a password field control for SendMail2User - Neighborhood plugin compatibility improvement
93            Bug 1229 fixed - Email was no longer mandatory when plugin was active, even if Piwigo's email madatory option was set.
94
95-- 2.12.5 : Bug 1233 fixed -  "duplicate key error" when a user wants to register with an existing username. In fact, all standard Piwigo's register controls didn't work when plugin was activated. That fixes this too.
96            Adding DE, ES and IT languages. All translations are not finalized and could be improved.
97            Adding of description.txt file in language directories.
98
99-- 2.12.6 : Bug 1236 fixed -  Admins was unable to add a new user in the user_list page.
100            Beginning of IT translations
101           
102-- 2.12.7 : Bug 1238 fixed - Simple custom email text wasn't send when Extended Description plugin wasn't set
103            Bug 1245 fixed - Semicolons (;) are no longer allowed in text areas (mail info text, ConfirmMail text, reminder text,...). They'll be replaced by dots (.).
104            Bug 1248 fixed - Php notice on user registration with a forbidden email domain
105            Bug 1250 fixed - Email provider didn't work after the third exclusion in list
106            Escaping all special characters typed in login name and recover them
107
108
109 ***** Plugin history (branch 2.13)*****
110 
111-- 2.13.0 : Bug 1246
112            Evolution 1239 - New option to add a new tab that shows the number of days since their last visit for each registered user.
113            Bug 1257 fixed - If email exclusion list begins with a CR-LF, an informative warning message is displayed (I was unable to delete automatically this CR-LF).
114            Bug 1259 fixed - PHP notice on user addition by admin in user_list page.
115            Bug 1260
116            Evolution 1273 - Adding of reminder field in advanced user management tab. This allows to see if a reminder have already been send.
117            Evolution 1292 - Adding of navigation bar in tabs where users are listed (when more than 1 page is needed to display users).
118            Some code and translations refactory.
119*/
120
121/*
122
123 ***** TODO List *****
124++ Adding ASC and DESC ordering for user's lists tables (Ghost Tracker, UserList and Unvalidated)
125
126++ No validation needed for admins users comments (new trigger needed in comments.php ?)
127
128++ No single email check for admins (new trigger needed in functions_user.inc.php ?)
129
130++ Password control and enforcement
131  ?? Can not be the same as username -> Could password score control be sufficient ?
132 
133++ Security : Blocking brut-force attacks !
134              -> Way to do that : Count the number of failed attempts to connect and lock the targetted account after x attempts. Where x will be settable by admin.
135              To unlock the locked account :
136               -> A new table in admin's plugin panel which would display the locked accounts.
137               -> Sending an email to account owner to inform him his account is blocked due to multiple failed connexions attempts. This email could have a link with a security key to unlock the account.
138               -> Both of above solutions ?
139
140++ Opportunity to copy a registered user for new user creation
141  ++ new copied user will (or not) belong to the same groups
142  ++ new copied user will (or not) get the same status (visitor, admin, webmaster, guest (??))
143  ++ new copied user will (or not) get the same properties
144  ++ new copied user will (or not) get the same language
145  ... and so on
146 
147*/
148
149
150if (!defined('PHPWG_ROOT_PATH'))
151{
152  die('Hacking attempt!');
153}
154
155define('NBC_UserAdvManager_DIR' , basename(dirname(__FILE__)));
156define('NBC_UserAdvManager_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
157
158include_once (NBC_UserAdvManager_PATH.'include/constants.php');
159include_once (NBC_UserAdvManager_PATH.'include/functions_UserAdvManager.inc.php');
160
161load_language('plugin.lang', NBC_UserAdvManager_PATH);
162
163
164/* Plugin admin */
165add_event_handler('get_admin_plugin_menu_links', 'nbc_UserAdvManager_admin_menu');
166
167function nbc_UserAdvManager_admin_menu($menu)
168{
169  array_push($menu,
170    array(
171      'NAME' => 'UserAdvManager',
172      'URL'  => get_admin_plugin_menu_link(NBC_UserAdvManager_PATH.'/admin/UserAdvManager_admin.php')
173    )
174  );
175
176  return $menu;
177}
178
179
180add_event_handler('loc_begin_index', 'UserAdvManager_GhostTracker');
181
182function UserAdvManager_GhostTracker()
183{
184  global $conf, $user;
185 
186  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
187
188  if (isset($conf_nbc_UserAdvManager[17]) and $conf_nbc_UserAdvManager[17] == 'true' and !is_admin() and !is_a_guest())
189  {
190
191    $userid = get_userid($user['username']);
192         
193    /* Looking for existing entry in last visit table */
194    $query = '
195SELECT *
196  FROM '.USER_LASTVISIT_TABLE.'
197WHERE user_id = '.$userid.'
198;';
199       
200    $count = mysql_num_rows(pwg_query($query));
201         
202    if ($count == 0)
203    {
204      /* If not, data are inserted in table */
205      $query = '
206INSERT INTO '.USER_LASTVISIT_TABLE.' (user_id, lastvisit, reminder)
207VALUES ('.$userid.', now(), "false")
208;';
209      pwg_query($query);
210    }
211    else if ($count > 0)
212    {
213      /* If yes, data are updated in table */
214      $query = '
215UPDATE '.USER_LASTVISIT_TABLE.'
216SET lastvisit = now(), reminder = "false"
217WHERE user_id = '.$userid.'
218LIMIT 1
219;';
220      pwg_query($query);
221    }
222  }
223}
224
225
226/* User creation */
227add_event_handler('register_user', 'UserAdvManager_Adduser');
228
229function UserAdvManager_Adduser($register_user)
230{
231  global $conf;
232 
233  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
234 
235  /* Sending registration confirmation by email */
236  if ((isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
237  {
238    $passwd = (isset($_POST['password'])) ? $_POST['password'] : '';
239    SendMail2User(1, $register_user['id'], $register_user['username'], $passwd, $register_user['email'], true);
240  }
241}
242
243
244
245/* User deletion */
246add_event_handler('delete_user', 'UserAdvManager_Deluser');
247
248function UserAdvManager_Deluser($user_id)
249{
250  /* Cleanup for ConfirmMail table */
251  DeleteConfirmMail($user_id);
252  /* Cleanup for LastVisit table */
253  DeleteLastVisit($user_id);
254}
255
256
257/* Check users registration */
258add_event_handler('register_user_check', 'UserAdvManager_RegistrationCheck', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
259
260function UserAdvManager_RegistrationCheck($err, $user)
261{
262  global $errors, $conf;
263
264/* *********************************************************** */
265/* We need to reset the standard Piwigo's register controls    */
266/* because the call of register_user_check trigger resets them */
267/* *********************************************************** */
268  /* ********************************** */
269  /* Standard Piwigo's username control */
270  /* ********************************** */
271  if ($_POST['login'] == '')
272  {
273    return l10n('reg_err_login1');
274  }
275  if (preg_match('/^.* $/', $_POST['login']))
276  {
277    return l10n('reg_err_login2');
278  }
279  if (preg_match('/^ .*$/', $_POST['login']))
280  {
281    return l10n('reg_err_login3');
282  }
283  if (get_userid($_POST['login']))
284  {
285    return l10n('reg_err_login5');
286  }
287/* ****************************************** */
288/* End of Piwigo's standard register controls */
289/* ****************************************** */
290
291
292/* ****************************************** */
293/* Here begins the advanced register controls */
294/* ****************************************** */
295  $PasswordCheck = 0;
296 
297  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
298
299  /* Password enforcement control */
300  if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
301  {
302    if (!empty($user['password']) and !is_admin())
303    {
304      $PasswordCheck = testpassword($user['password']);
305 
306      if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
307      {
308        $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
309        return($lang['reg_err_pass'] = l10n_args($message).$conf_nbc_UserAdvManager[15]);
310      }
311    }
312    else if (!empty($user['password']) and is_admin() and isset($conf_nbc_UserAdvManager[16]) and $conf_nbc_UserAdvManager[16] == 'true')
313    { 
314      $PasswordCheck = testpassword($user['password']);
315 
316      if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
317      {
318        $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
319        return($lang['reg_err_pass'] = l10n_args($message).$conf_nbc_UserAdvManager[15]);
320      }
321    }
322  }
323
324  /* Username non case sensitive */
325  if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true')
326  {
327    $new_username =  NotSensibleSearchUsername($_POST['login']);
328    $_POST['login'] = $new_username == '' ? $_POST['login'] : $new_username;
329  }
330
331  /* Username without forbidden keys */
332  if (isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' and !empty($_POST['login']) and !ValidateUsername($_POST['login']))
333  {
334    $_POST['login'] = '';
335    return($lang['reg_err_login1'] = l10n('reg_err_login6')."'".$conf_nbc_UserAdvManager[8]."'");
336  }
337
338  /* Email without forbidden domains */
339  /* This doesn't work */
340//  if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']) and !ValidateEmailProvider($_POST['mail_address']))
341//  {
342//    $_POST['mail_address'] = '';
343//    return($lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
344//  }
345  /* This work with a code copy of ValidateEmailProvider() function */
346  if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']))
347  {
348    $ncsemail = strtolower($_POST['mail_address']);
349    $conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
350    for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
351    {
352      $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
353      if (preg_match($pattern, $ncsemail))
354      {
355        $_POST['mail_address'] = '';                             
356        return($lang['reg_err_login1'] = l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
357      }
358    }
359        } 
360}
361
362
363if (script_basename() == 'profile')
364{
365  add_event_handler('loc_begin_profile', 'UserAdvManager_Profile_Init');
366
367  function UserAdvManager_Profile_Init()
368  {
369    global $conf, $user, $template;
370
371    $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
372
373    if (isset($_POST['validate']))
374    {
375      /* Email without forbidden domains */
376      /* This doesn't work */
377//      if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']))
378//      {
379//        if (!ValidateEmailProvider($_POST['mail_address']))
380//        {
381//          $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
382//          unset($_POST['validate']);
383//        }
384//      }
385        /* This work with a code copy of ValidateEmailProvider() function */
386        if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['mail_address']))
387        {
388          $ncsemail = strtolower($_POST['mail_address']);
389          $conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
390          for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
391          {
392            $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
393            if (preg_match($pattern, $ncsemail))
394            {                           
395              $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
396              unset($_POST['validate']);
397            }
398          }
399        }
400
401      $typemail = 3;
402     
403      if (!empty($_POST['use_new_pwd']))
404      {
405        $typemail = 2;
406       
407        /* Password enforcement control */
408        if (isset($conf_nbc_UserAdvManager[14]) and $conf_nbc_UserAdvManager[14] == 'true' and !empty($conf_nbc_UserAdvManager[15]))
409        {
410          $PasswordCheck = testpassword($_POST['use_new_pwd']);
411         
412          if ($PasswordCheck < $conf_nbc_UserAdvManager[15])
413          {
414            $message = get_l10n_args('reg_err_login4_%s', $PasswordCheck);
415            $template->append('errors', l10n_args($message).$conf_nbc_UserAdvManager[15]);
416            unset($_POST['use_new_pwd']);
417            unset($_POST['validate']);
418          }
419        }
420      }
421     
422      /* Sending registration confirmation by email */
423      if ((isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or (isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
424      {
425        $confirm_mail_need = false;
426             
427        if (!empty($_POST['mail_address']))
428        {
429          $query = '
430SELECT '.$conf['user_fields']['email'].' AS email
431FROM '.USERS_TABLE.'
432WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
433;';
434         
435          list($current_email) = mysql_fetch_row(pwg_query($query));
436     
437          if ($_POST['mail_address'] != $current_email and ( isset($conf_nbc_UserAdvManager[2]) and $conf_nbc_UserAdvManager[2] == 'true'))
438       
439            $confirm_mail_need = true;
440        }
441       
442        if ((!empty($_POST['use_new_pwd']) and (isset($conf_nbc_UserAdvManager[0]) and $conf_nbc_UserAdvManager[0] == 'true') or $confirm_mail_need))
443        {
444          $query = '
445SELECT '.$conf['user_fields']['username'].'
446FROM '.USERS_TABLE.'
447WHERE '.$conf['user_fields']['id'].' = \''.$user['id'].'\'
448;';
449       
450          list($username) = mysql_fetch_row(pwg_query($query));
451
452          SendMail2User($typemail, $user['id'], $username, $_POST['use_new_pwd'], $_POST['mail_address'], $confirm_mail_need);
453        }
454      }
455    }
456  }
457}
458
459
460add_event_handler('init', 'UserAdvManager_InitPage');
461 
462function UserAdvManager_InitPage()
463{
464  load_language('plugin.lang', NBC_UserAdvManager_PATH);
465  global $conf, $template, $page, $lang, $errors;
466
467  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
468 
469  /* Username non case sensitive */
470  if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true')
471  {
472    $lang['reg_err_login5'] = l10n('reg_err_login5');
473  }
474 
475
476 
477/* User identification */
478  if (script_basename() == 'identification')
479  {
480    if (isset($_POST['login']))
481    {
482      /* User non case sensitive */
483      if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true' )
484      {
485        $new_username =  NotSensibleSearchUsername($_POST['username']);
486        $_POST['username'] = $new_username == '' ? $_POST['username'] : $new_username;
487      }
488    }
489  }
490
491
492/* Admin user management */
493  if (script_basename() == 'admin' and isset($_GET['page']) and $_GET['page'] == 'user_list')
494  {
495    if (isset($_POST['submit_add']))
496    {
497      /* User non case sensitive */
498      if (isset($conf_nbc_UserAdvManager[1]) and $conf_nbc_UserAdvManager[1] == 'true' )
499      {
500        $new_username =  NotSensibleSearchUsername($_POST['login']);
501        $_POST['login'] = $new_username == '' ? $_POST['login'] : $new_username;
502      }
503
504      /* Username without forbidden keys */
505      if (isset($conf_nbc_UserAdvManager[7]) and $conf_nbc_UserAdvManager[7] == 'true' and !empty($_POST['login']) and !ValidateUsername($_POST['login']))
506      {
507        $template->append('errors', l10n('reg_err_login6')."'".$conf_nbc_UserAdvManager[8]."'");
508        unset($_POST['submit_add']);
509      }
510
511      /* Email without forbidden domains */
512      /* This doesn't work */
513//      if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['email']) and !ValidateEmailProvider($_POST['email']))
514//      {
515//        $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
516//        unset($_POST['submit_add']);
517//      }
518      /* This work with a code copy of ValidateEmailProvider() function */
519      if (isset($conf_nbc_UserAdvManager[12]) and $conf_nbc_UserAdvManager[12] == 'true' and !empty($_POST['email']))
520      {
521        $ncsemail = strtolower($_POST['email']);
522        $conf_nbc_MailExclusion = preg_split("/[\s,]+/",$conf_nbc_UserAdvManager[13]);
523        for ($i = 0 ; $i < count($conf_nbc_MailExclusion) ; $i++)
524        {
525          $pattern = '/'.$conf_nbc_MailExclusion[$i].'/';
526          if (preg_match($pattern, $ncsemail))
527          {                     
528            $template->append('errors', l10n('reg_err_login7')."'".$conf_nbc_UserAdvManager[13]."'");
529            unset($_POST['submit_add']);
530          }
531        }
532      }
533    }
534  }
535}
536
537
538add_event_handler('user_comment_check', 'UserAdvManager_CheckEmptyCommentAuthor', 50, 2);
539
540function UserAdvManager_CheckEmptyCommentAuthor($comment_action, $comm)
541{
542  load_language('plugin.lang', NBC_UserAdvManager_PATH);
543  global $infos, $conf, $template;
544
545  $conf_nbc_UserAdvManager = isset($conf['nbc_UserAdvManager']) ? explode(";" , $conf['nbc_UserAdvManager']) : array();
546
547/* User creation OR update */
548  if (isset($conf_nbc_UserAdvManager[6]) and $conf_nbc_UserAdvManager[6] == 'true' and $conf['comments_forall'] == 'true' and $comm['author'] == 'guest')
549  {
550    $comment_action = 'reject';
551
552    array_push($infos, l10n('UserAdvManager_Empty Author'));
553  }
554
555  return $comment_action;
556}
557?>
Note: See TracBrowser for help on using the repository browser.