diff --git a/e107_admin/fla.php b/e107_admin/fla.php index 6eee15f50..73b37fd6f 100644 --- a/e107_admin/fla.php +++ b/e107_admin/fla.php @@ -15,381 +15,3 @@ exit; // -- No Longer used - see banlist.php - -require_once('../class2.php'); -if (!getperms('4')) -{ - e107::redirect('admin'); - exit; -} - -include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE); - - -/* -'generic' table: - gen_id - unique identifier - gen_type - 'auto_banned' is of interest here - gen_datestamp - date/time of ban - gen_user_id - set to zero - gen_ip - IP address of ban - gen_intdata - user ID (where known) - gen_chardata - ban detail as known - -*/ - - -class failed_login_admin extends e_admin_dispatcher -{ - protected $modes = array( - - 'main' => array( - 'controller' => 'generic_ui', - 'path' => null, - 'ui' => 'generic_form_ui', - 'uipath' => null - ), - - ); - - protected $adminMenu = array( - 'main/list' => array('caption'=> LAN_MANAGE, 'perm' => 'P'), - ); - - protected $adminMenuAliases = array( - 'main/edit' => 'main/list' - ); - - protected $menuTitle = ADLAN_146; -} - - - - - -class generic_ui extends e_admin_ui -{ - - protected $pluginTitle = ADLAN_146; - protected $pluginName = 'failed_login'; - protected $table = 'generic'; - protected $pid = 'gen_id'; - protected $perPage = 10; - protected $listQry = "SELECT * FROM `#generic` WHERE gen_type='failed_login' ORDER BY gen_datestamp DESC"; - - protected $fields = array ( 'checkboxes' => array ( 'title' => '', 'type' => null, 'data' => null, 'width' => '5%', 'thclass' => 'center', 'forced' => '1', 'class' => 'center', 'toggle' => 'e-multiselect', ), - 'gen_id' => array ( 'title' => LAN_ID, 'nolist'=>true, 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), - // 'gen_type' => array ( 'title' => LAN_BAN, 'type' => 'method', 'data' => 'str', 'width' => 'auto', 'batch' => true, 'filter' => true, 'inline' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), - 'gen_datestamp' => array ( 'title' => LAN_DATESTAMP, 'type' => 'datestamp', 'data' => 'int', 'width' => 'auto', 'filter' => true, 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), - 'gen_chardata' => array ( 'title' => 'Chardata', 'type' => 'method', 'data' => 'str', 'width' => '40%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), - - // 'gen_user_id' => array ( 'title' => LAN_BAN, 'type' => 'method', 'batch'=>true, 'data' => 'int', 'width' => '5%', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), - 'gen_ip' => array ( 'title' => LAN_IP, 'type' => 'ip', 'data' => 'str', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'left', 'thclass' => 'left', ), - // 'gen_intdata' => array ( 'title' => LAN_BAN, 'type' => 'method', 'batch'=>true, 'data' => 'int', 'width' => 'auto', 'help' => '', 'readParms' => '', 'writeParms' => '', 'class' => 'center', 'thclass' => 'center', ), - 'options' => array ( 'title' => LAN_OPTIONS, 'type' => null, 'data' => null, 'width' => '10%', 'thclass' => 'center last', 'class' => 'center last', 'forced' => '1', 'readParms'=>'edit=0' ), - ); - - protected $fieldpref = array('gen_datestamp', 'gen_ip', 'gen_chardata'); - - - // optional - public function init() - { - if($_POST['etrigger_batch'] == 'gen_intdata__1' && count($_POST['e-multiselect'])) // Do we need BAN here? - { - $dels = implode(',',$_POST['e-multiselect']); - //$e107::getDb()->insert('banlist', - } - } - - public function afterDelete($data) - { - // $sql2->db_Delete('banlist', "banlist_ip='{$banIP}'"); - } - -} - - - -class generic_form_ui extends e_admin_form_ui -{ - - - // Custom Method/Function - function gen_intdata($curVal,$mode) - { - $frm = e107::getForm(); - - switch($mode) - { - case 'read': // List Page - return $curVal; - break; - - case 'write': // Edit Page - return $frm->text('gen_type',$curVal); - break; - - case 'filter': - case 'batch': - return array(1=>LAN_BAN); - break; - } - } - - - // Custom Method/Function - function gen_chardata($curVal,$mode) - { - $frm = e107::getForm(); - - switch($mode) - { - case 'read': // List Page - return str_replace(":::","<br />",$curVal); - break; - - case 'write': // Edit Page - return $frm->text('gen_chardata',$curVal); - break; - - case 'filter': - case 'batch': - // return $array; - break; - } - } - -} - - -new failed_login_admin(); - -require_once(e_ADMIN."auth.php"); -e107::getAdminUI()->runPage(); - -require_once(e_ADMIN."footer.php"); -exit; - - - - - -// ---------- OLD STUFF BELOW - For Review --- // - - - - - - -$e_sub_cat = 'failed_login'; -//require_once('auth.php'); - -$frm = e107::getForm(); -$mes = e107::getMessage(); - -$tmp = (e_QUERY) ? explode('.', e_QUERY) : ''; -$from = intval(varset($tmp[0], 0)); -$amount = intval(varset($tmp[1], 50)); - - - - - -function deleteBan($banID, $banIP = '') -{ - $sql2 = e107::getDb('sql2'); - $banID = intval($banID); - if ($banIP == '') - { - if($sql2->db_Select('generic', 'gen_ip', 'gen_id='.$banID)) - { - $at = $sql2->db_Fetch(); - $banIP = $at['gen_ip']; - } - } - $sql2->db_Delete('generic', 'gen_id='.$banID); // Delete from generic table - if ($banIP == '') return FALSE; - $sql2->db_Delete('banlist', "banlist_ip='{$banIP}'"); // Delete from main banlist - // @todo Admin log messages - return TRUE; -} - -/* - * FIXME - refine messages (strange messages on delete all & reload) - */ -if(isset($_POST['delbanSubmit'])) -{ - $message = ''; - $delcount = 0; - $spacer = ''; - foreach($_POST['fladelete'] as $delete) - { - $delcount++; - $sql->db_Delete("generic", "gen_id='{$delete}' "); - } - if ($delcount) - { - $mes->addSuccess(FLALAN_3.": ".$delcount); - } - - $bancount = 0; - foreach($_POST['flaban'] as $ban) - { - if($sql->db_Select("generic", "*", "gen_id={$ban}")) - { - $at = $sql->db_Fetch(); - //if (!$e107->add_ban(4, FLALAN_4, $at['gen_ip'], ADMINID)) - if (!e107::getIPHandler()->add_ban(4, FLALAN_4, $at['gen_ip'], ADMINID)) - { // IP on whitelist (although possibly we shouldn't get to this stage, but check anyway - $mes->addWarning(str_replace(FLALAN_18,'--IP--',$at['gen_ip'])); - } - else $bancount++; - $banlist_ip = $at['gen_ip']; - //XXX - why inserting it twice? - //$sql->db_Insert("banlist", "'$banlist_ip', '".ADMINID."', '".FLALAN_4."' "); - $sql->db_Delete("generic", "gen_id='{$ban}' "); - } - } - $mes->add(FLALAN_5.": ".$bancount, $bancount ? E_MESSAGE_SUCCESS : E_MESSAGE_INFO); // FIXME -} - - -if(e_QUERY == 'dabl') -{ - $sql->db_Select("generic", 'gen_ip,gen_id',"gen_type='auto_banned' "); - while ($row = $sql->db_Fetch()) - { - if (deleteBan($row['gen_id'],$row['gen_ip'])) - { - $delcount++; - } - } - //XXX - add delcount to the message - $mes->addSuccess(FLALAN_17); -} - - -// Now display any outstanding auto-banned IP addresses -if($sql->db_Select('generic', "*", "gen_type='auto_banned' ORDER BY gen_datestamp DESC ")) -{ - $abArray = $sql->db_getList(); - $message = FLALAN_15; - foreach($abArray as $ab) - { - $message .= " - ".$ab['gen_ip']; - } - - $message .= "<div class='right'>(<a href='".e_SELF."?dabl'>".FLALAN_16."</a>)</div>"; - $mes->addInfo($message); - -} - -$gen = new convert; -$fla_total = $sql->db_Count('generic', '(*)', "WHERE gen_type='failed_login'"); -if(!$sql->db_Select('generic', '*', "gen_type='failed_login' ORDER BY gen_datestamp DESC LIMIT {$from},{$amount}")) -{ - $mes->addInfo(FLALAN_2); -} -else -{ - - $faArray = $sql->db_getList('ALL', FALSE, FALSE); - - $text = " - <form method='post' action='".e_SELF."' id='flaform' > - <fieldset id='core-fla'> - <legend class='e-hideme'>".ADLAN_146."</legend> - <table class='table adminlist'> - <colgroup> - <col style='width: 20%' /> - <col style='width: 40%' /> - <col style='width: 20%' /> - <col style='width: 10%' /> - <col style='width: 10%' /> - </colgroup> - <thead> - <tr> - <th>".LAN_DATE."</th> - <th>".FLALAN_7."</th> - <th>".FLALAN_8."</th> - <th class='center last'> - ".LAN_DELETE."<br/> - ".$frm->checkbox('check_all_del', 'jstarget:fladelete', false, array('id'=>false,'class'=>'checkbox toggle-all'))." - </th> - <th class='center last'> - ".LAN_BAN."<br/> - ".$frm->checkbox_toggle('check-all-ban', 'flaban')." - </th> - </tr> - </thead> - <tbody> - "; - - foreach($faArray as $fa) - { - extract($fa);//FIXME kill extract() - - $gen_chardata = str_replace(":::", "<br />", $tp->toHTML($gen_chardata)); - $host = e107::getIPHandler()->get_host_name(getenv($gen_ip)); - $text .= " - <tr> - <td>".$gen->convert_date($gen_datestamp, "forum")."</td> - <td>".$gen_chardata."</td> - <td>".e107::getIPHandler()->ipDecode($fa['gen_ip'])."<br />{$host}</td> - <td class='center middle autocheck e-pointer'> - ".$frm->checkbox('fladelete[]', $gen_id)." - </td> - <td class='center middle autocheck e-pointer'> - ".$frm->checkbox('flaban[]', $gen_id)." - </td> - </tr> - "; - } - - $text .= " - </tbody> - </table> - <div class='buttons-bar center'> - ".$frm->admin_button('delbanSubmit', FLALAN_10, 'delete', FLALAN_10, 'title=')." - </div> - </fieldset> - </form> - "; - - $parms = $fla_total.",".$amount.",".$from.",".e_SELF.'?'."[FROM].".$amount; - $nextprev = $tp->parseTemplate("{NEXTPREV={$parms}}"); - if ($nextprev) - $text .= "<div class='nextprev-bar'>".$nextprev."</div>"; - - -} - -$ns->tablerender(ADLAN_146, $mes->render().$text); - -require_once("footer.php"); -/** - * Handle page DOM within the page header - * - * @return string JS source - */ -function headerjs() -{ - require_once(e_HANDLER.'js_helper.php'); - $ret = " - <script type='text/javascript'> - if(typeof e107Admin == 'undefined') var e107Admin = {} - - /** - * OnLoad Init Control - */ - e107Admin.initRules = { - 'Helper': true, - 'AdminMenu': false - } - </script> - <script type='text/javascript' src='".e_JS."core/admin.js'></script> - "; - - return $ret; -} diff --git a/e107_themes/bootstrap3/admin_style.css b/e107_themes/bootstrap3/admin_style.css index 57be30c1b..40a88eb1f 100644 --- a/e107_themes/bootstrap3/admin_style.css +++ b/e107_themes/bootstrap3/admin_style.css @@ -397,6 +397,7 @@ i.s-message-debug { background-position: -1480px 0; width: 32px; height: 32px; .s-message-body { padding-left: 42px; } .s-message-item {} +.s-message-item a.btn { margin-top: 15px; } .e-footer-info { text-align: center }