0) { if (in_array($conf['guest_id'], $collection)) { array_push($page['errors'], l10n('PP_Guest cannot be pwdreset')); $template->append('errors', l10n('PP_Guest cannot be pwdreset')); } if (($conf['guest_id'] != $conf['default_user_id']) and in_array($conf['default_user_id'], $collection)) { array_push($page['errors'], l10n('PP_Default user cannot be pwdreset')); $template->append('errors', l10n('PP_Default user cannot be pwdreset')); } if (in_array($conf['webmaster_id'], $collection)) { array_push($page['errors'], l10n('PP_Webmaster cannot be pwdreset')); $template->append('errors', l10n('PP_Webmaster cannot be pwdreset')); } if (in_array($user['id'], $collection)) { array_push($page['errors'], l10n('PP_You cannot pwdreset your account')); $template->append('errors', l10n('PP_You cannot pwdreset your account')); } // Generic accounts exclusion (including Adult_Content generic users) // ------------------------------------------------------------------ $query =' SELECT u.id FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.id = ui.user_id WHERE ui.status = "generic" ;'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { if (in_array($row['id'], $collection)) { array_push($page['errors'], l10n('PP_Generic cannot be pwdreset')); $errors = l10n('PP_Generic cannot be pwdreset'); } } // Admins accounts exclusion // -------------------------- $query =' SELECT u.id FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.id = ui.user_id WHERE ui.status = "admin" ;'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { if (in_array($row['id'], $collection)) { array_push($page['errors'], l10n('PP_Admins cannot be pwdreset')); $errors = l10n('PP_Admins cannot be pwdreset'); } } $template->append('errors', $errors); if (count($page['errors']) == 0) { if (isset($_POST['confirm_pwdreset']) and 1 == $_POST['confirm_pwdreset']) { foreach ($collection as $user_id) { PP_Set_PwdReset($user_id); } array_push( $page['infos'], l10n_dec( 'PP %d user pwdreseted', 'PP %d users pwdreseted', count($collection) ) ); $template->append('infos', l10n_dec( 'PP %d user pwdreseted', 'PP %d users pwdreseted', count($collection))); foreach ($page['filtered_users'] as $filter_key => $filter_user) { if (in_array($filter_user['id'], $collection)) { unset($page['filtered_users'][$filter_key]); } } } else { array_push($page['errors'], l10n('PP_You need to confirm pwdreset')); $template->append('errors', l10n('PP_You need to confirm pwdreset')); } } } $template->set_prefilter('user_list', 'PP_PwdReset_Prefilter'); } /** * PP_PwdReset_Prefilter * Adds action field for password reset in user_list.tpl */ function PP_PwdReset_Prefilter($content, &$smarty) { $search = '
{\'Deletions\'|@translate}
'; $addon = '
{\'PP_PwdReset\'|@translate}
'; $replacement = $addon.$search; return str_replace($search, $replacement, $content); } } // Add new feature in user_list - Show locked accounts and give unlock function // ---------------------------------------------------------------------------- if (isset($conf_PP['LOGFAILBLOCK']) and $conf_PP['LOGFAILBLOCK']=='true') { // Add new column on user_list // --------------------------- add_event_handler('loc_visible_user_list', 'PP_user_list_locked'); // Add prefilter on user_list // -------------------------- add_event_handler('loc_begin_admin', 'PP_Unlock_Action',60); /** * PP_Unlock_Action - Triggered on PP_Unlock_Action * Handle unlocking action in user_list.php */ function PP_Unlock_Action() { global $conf, $user, $template, $lang, $errors; $page['errors'] = array(); $page['infos'] = array(); $page['filtered_users'] = array(); load_language('plugin.lang', PP_PATH); if (isset($_POST['unlock'])) { $collection = array(); switch ($_POST['target']) { case 'all' : { foreach($page['filtered_users'] as $local_user) { array_push($collection, $local_user['id']); } break; } case 'selection' : { if (isset($_POST['selection'])) { $collection = $_POST['selection']; } break; } } if (count($collection) == 0) { array_push($page['errors'], l10n('Select at least one user')); } } if (isset($_POST['unlock']) and count($collection) > 0) { if (in_array($conf['guest_id'], $collection)) { array_push($page['errors'], l10n('PP_Guest is not unlockable')); $template->append('errors', l10n('PP_Guest is not unlockable')); } if (($conf['guest_id'] != $conf['default_user_id']) and in_array($conf['default_user_id'], $collection)) { array_push($page['errors'], l10n('PP_Default user is not unlockable')); $template->append('errors', l10n('PP_Default user is not unlockable')); } if (in_array($conf['webmaster_id'], $collection)) { array_push($page['errors'], l10n('PP_Webmaster is not unlockable')); $template->append('errors', l10n('PP_Webmaster is not unlockable')); } if (in_array($user['id'], $collection)) { array_push($page['errors'], l10n('PP_You cannot unlock your account')); $template->append('errors', l10n('PP_You cannot unlock your account')); } // Generic accounts exclusion (including Adult_Content generic users) // ------------------------------------------------------------------ $query =' SELECT u.id FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.id = ui.user_id WHERE ui.status = "generic" ;'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { if (in_array($row['id'], $collection)) { array_push($page['errors'], l10n('PP_Generic is not unlockable')); $errors = l10n('PP_Generic is not unlockable'); } } // Admins accounts exclusion // -------------------------- $query =' SELECT u.id FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.id = ui.user_id WHERE ui.status = "admin" ;'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { if (in_array($row['id'], $collection)) { array_push($page['errors'], l10n('PP_Admins is not unlockable')); $errors = l10n('PP_Admins is not unlockable'); } } $template->append('errors', $errors); if (count($page['errors']) == 0) { if (isset($_POST['confirm_unlock']) and 1 == $_POST['confirm_unlock']) { foreach ($collection as $user_id) { PP_unlock_user($user_id); } array_push( $page['infos'], l10n_dec( 'PP %d user unlocked', 'PP %d users unlocked', count($collection) ) ); $template->append('infos', l10n_dec( 'PP %d user unlocked', 'PP %d users unlocked', count($collection))); foreach ($page['filtered_users'] as $filter_key => $filter_user) { if (in_array($filter_user['id'], $collection)) { unset($page['filtered_users'][$filter_key]); } } } else { array_push($page['errors'], l10n('PP_You need to confirm unlock')); $template->append('errors', l10n('PP_You need to confirm unlock')); } } } $template->set_prefilter('user_list', 'PP_Unlocking_Prefilter'); } /** * PP_Unlocking_Prefilter * Adds action field for user unlocking in user_list.tpl */ function PP_Unlocking_Prefilter($content, &$smarty) { $search = '
{\'Deletions\'|@translate}
'; $addon = '
{\'PP_Unlock\'|@translate}
'; $replacement = $addon.$search; return str_replace($search, $replacement, $content); } } ?>