Changeset 31370


Ignore:
Timestamp:
02/26/16 11:26:37 (4 years ago)
Author:
ddtddt
Message:

[extensions] - AntiAspi - update admin config page

Location:
extensions/AntiAspi
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • extensions/AntiAspi/admin.php

    r31367 r31370  
    1818else 
    1919    $page['tab'] = $_GET['tab']; 
    20  
     20        $template->func_combine_css(array('id'=>'dst','path'=>ANTIASPI_PATH.'antiaspi.css')); 
    2121 
    2222 
    2323    $tabsheet = new tabsheet(); 
    2424    $tabsheet->add('ipban', l10n('IP ban'), ANTIASPI_ADMIN . '-ipban'); 
     25        $tabsheet->add('ipconfig', l10n('Configuration '), ANTIASPI_ADMIN . '-ipconfig '); 
    2526    $tabsheet->select($page['tab']); 
    2627    $tabsheet->assign(); 
    2728 
    28 // Tab gest 
    2929switch ($page['tab']) { 
    3030    case 'ipban': 
     31          $template->assign( 
     32       'ipbangest', array( 
     33       'A' => 'a' 
     34    )); 
    3135        $ipban = pwg_query("SELECT * FROM " . ANTIASPI_TABLE . ";"); 
    3236         
     
    99103         
    100104        break; 
     105        case 'ipconfig': 
     106  global $conf, $template; 
     107  $admin_base_url = ANTIASPI_ADMIN . '-ipconfig'; 
     108  $antiaspi = safe_unserialize($conf['antiaspi']);       
     109/* 
     110$conf['antiaspi'] = array( 
     111  'diff' => '20 pages in 00:00:10' , // IP banned if 20 different pages viewed in 10 seconds 
     112  'same' => '15 pages in 00:00:30' , // IP banned if same 15 pages viewed in 30 seconds 
     113  'banned during' => '23:59:59' ,    // IP banned during hh:mm:ss 
     114  'only guest' => true ,             // If true, don't ban registered users 
     115  'only picture' => false ,          // If true, apply antiaspi only on picture page 
     116  'allowed ip' => array()            // Autorized IP (robots for example) 
     117); 
     118*/ 
     119$diff = explode(" pages in ", $antiaspi['diff']); 
     120$tempsdiff= explode(":", $diff[1]); 
     121$tempsdiffsec=$tempsdiff[2]+($tempsdiff[1]*60)+($tempsdiff[0]*60*60); 
     122 
     123$same = explode(" pages in ", $antiaspi['same']); 
     124$tempssame= explode(":", $same[1]); 
     125$tempssamesec=$tempssame[2]+($tempssame[1]*60)+($tempssame[0]*60*60); 
     126 
     127$onlyguest = array( 
     128l10n('yes'), 
     129l10n('no'), 
     130); 
     131$onlyguestv = array( 
     132true, 
     133false, 
     134); 
     135$onlypicture = array( 
     136l10n('yes'), 
     137l10n('no'), 
     138); 
     139$onlypicturev = array( 
     140true, 
     141false, 
     142);  
     143  $template->assign( 
     144   'ipconfiggest', array( 
     145          'DIFFA' => $diff[0], 
     146          'DIFFB' => $tempsdiffsec, 
     147          'SAMEA' => $same[0], 
     148          'SAMEB' => $tempssamesec, 
     149          'ONLYGUEST' => $onlyguest, 
     150          'ONLYGUESTV' => $onlyguestv, 
     151          'ONLYGUESTSELECT' => $antiaspi['only guest'], 
     152          'ONLYPICTURE' => $onlypicture, 
     153          'ONLYPICTUREV' => $onlypicturev, 
     154          'ONLYPICTURESELECT' => $antiaspi['only picture'], 
     155  )); 
     156  $i = 0; 
     157  while ($i < count($antiaspi['allowed ip'])) { 
     158 
     159        $items = array( 
     160                'IP' => $antiaspi['allowed ip'][$i], 
     161                'U_DELETE' => $admin_base_url . '&amp;delete='.$i , 
     162        ); 
     163 
     164        $template->append('allowip', $items); 
     165        $i++; 
     166  } 
     167   
     168   
     169        /*$time = '7000'; 
     170echo date('h:i:s', $time); 
     171*/ 
     172 
     173if (isset($_POST['submitconfban'])) { 
     174        /*$time = date('h:i:s', $_POST['insdiffb']);  revoir fonction date HS ?*/ 
     175        $antiaspi['diff']=$_POST['insdiffa'].' pages in '.date('00:i:s', ($_POST['insdiffb'])); 
     176        $antiaspi['same']=$_POST['inssamea'].' pages in '.date('00:i:s', ($_POST['inssameb'])); 
     177        $antiaspi['only guest']=$_POST['insonlyguest']; 
     178        $antiaspi['only picture']=$_POST['insonlypicturet']; 
     179         
     180        conf_update_param('antiaspi', $antiaspi); 
     181        redirect($admin_base_url); 
     182} 
     183 
     184if (isset($_POST['submitaddipallowed'])) { 
     185         $i = 0; 
     186        while ($i < count($antiaspi['allowed ip'])) { 
     187                if($_POST['insipallowed']==$antiaspi['allowed ip'][$i]) 
     188                { 
     189                        $_SESSION['page_errors'] = array(l10n('IP already allowed')); 
     190                        redirect($admin_base_url); 
     191                } 
     192                $i++; 
     193        }; 
     194 
     195        $antiaspi['allowed ip'][]=$_POST['insipallowed']; 
     196        conf_update_param('antiaspi', $antiaspi); 
     197        redirect($admin_base_url); 
     198} 
     199 
     200  if (isset($_GET['delete'])) { 
     201    check_input_parameter('delete', $_GET, false, PATTERN_ID); 
     202        unset($antiaspi['allowed ip'][($_GET['delete'])]); 
     203        $antiaspi['allowed ip'] = array_values($antiaspi['allowed ip']); 
     204    conf_update_param('antiaspi', $antiaspi); 
     205        redirect($admin_base_url); 
     206  } 
     207 
     208 
     209        break; 
    101210} 
    102211         
  • extensions/AntiAspi/admin.tpl

    r31367 r31370  
    11{include file='include/datepicker.inc.tpl'} 
    2  
     2{combine_script id='jquery.ui.slider' require='jquery.ui' load='footer' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} 
     3{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} 
    34{footer_script} 
    45 
     
    5556                $(this).val(d); 
    5657        }); 
     58// slide 
     59    $('.range').each(function(){ 
     60        var cls=$(this).attr('class'); 
     61        var elem=$(this).parent(); 
     62        var input=elem.find('input'); 
     63        var options={}; 
     64        elem.append('<div class="uirange"></div>'); 
     65        options.slide=function(event,ui){ 
     66            elem.find('label span').empty().append(ui.value); 
     67            input.val(ui.value); 
     68        } 
     69        options.value=input.val(); 
     70        options.range='min'; 
     71        options.min=$(this).data('min'); 
     72        options.max=$(this).data('max'); 
     73        elem.find('.uirange').slider(options); 
     74        elem.find('label span').empty().append(input.val()); 
     75        input.hide(); 
     76    }); 
    5777}); 
    5878 
    5979{/footer_script} 
     80 
     81{html_style} 
     82.uirange{ 
     83    margin:10px; 
     84    margin-left: 40px; 
     85} 
     86{/html_style} 
    6087 
    6188<div class="titrePage"> 
    6289  <h2>{'AntiAspi'|@translate}</h2> 
    6390</div> 
     91{if isset ($ipbangest)} 
    6492<form method="post" > 
    6593        <fieldset> 
     
    6795        </fieldset> 
    6896</form> 
     97{/if} 
    6998{if isset ($ipban_add)} 
    7099        <form method="post"> 
     
    81110        </form> 
    82111{/if} 
     112{if isset ($ipbangest)} 
    83113<form method="post" > 
    84114        <fieldset> 
    85115          <legend>{'List IP banned'|@translate}</legend> 
     116           <table class="lban"> 
    86117                {foreach from=$ipban2 item=ipban} 
    87                         <!-- {$ipban.ID} -->   {$ipban.IP}   {$ipban.DATE} 
     118                  <tr> 
     119                        <td><!-- {$ipban.ID} --> {$ipban.IP}</td> 
     120                        <td>{$ipban.DATE}</td> 
     121                        <td> 
    88122                        <a href="{$ipban.U_EDIT}"> 
    89123                                <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/edit_s.png" alt="{'edit'|@translate}" title="{'edit'|@translate}" /> 
     
    92126                                <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/delete.png" id="btn_delete" alt="{'delete'|@translate}" title="{'Delete'|@translate}" /> 
    93127                        </a> 
    94                   <br> 
     128                        </td> 
     129                  </tr> 
    95130                {/foreach} 
     131         </table> 
    96132        </fieldset> 
    97133</form> 
     134{/if} 
    98135{if isset ($ipban_edit)} 
    99136        <form method="post" > 
     
    111148        </form> 
    112149{/if} 
     150 
     151{if isset ($ipconfiggest)} 
     152<form method="post"> 
     153 <fieldset> 
     154  <legend>{'Configuration'|translate}</legend> 
     155         <fieldset> 
     156                <p class="input" style="width: 700px;"> 
     157                  <label for="insdiffa"><strong>{'IP banned if '|@translate}<span></span></strong></label> 
     158                  <input type="text" name="insdiffa" data-min="10" data-max="500" class="range" value="{$ipconfiggest.DIFFA}"/>   
     159                </p>     
     160                <p class="input" style="width: 700px;"> 
     161                        <label for="insdiffb"><strong>{' different pages viewed in <span></span> seconds'|@translate} </strong></label> 
     162                        <input type="text" name="insdiffb" data-min="5" data-max="3599" class="range" value="{$ipconfiggest.DIFFB}"/> 
     163                </p> 
     164        </fieldset> 
     165        <fieldset> 
     166                <p class="input" style="width: 700px;"> 
     167                  <label for="inssamea"><strong>{'IP banned if same '|@translate}<span></span></strong></label> 
     168                  <input type="text" name="inssamea" data-min="10" data-max="500" class="range" value="{$ipconfiggest.SAMEA}"/>   
     169                </p>     
     170                <p class="input" style="width: 700px;"> 
     171                        <label for="inssameb"><strong>{' different pages viewed in <span></span> seconds'|@translate} </strong></label> 
     172                        <input type="text" name="inssameb" data-min="5" data-max="3599" class="range" value="{$ipconfiggest.SAMEB}"/> 
     173                </p> 
     174        </fieldset> 
     175        <p> 
     176        <strong>{'only guest'|@translate}</strong> 
     177        {html_radios separator="  " name="insonlyguest" values=$ipconfiggest.ONLYGUESTV output=$ipconfiggest.ONLYGUEST selected="{$ipconfiggest.ONLYGUESTSELECT}"} 
     178                ({'If yes, don\'t ban registered users'|@translate}) 
     179    </p> 
     180        <p> 
     181        <strong>{'only picture'|@translate}</strong> 
     182        {html_radios separator="  " name="insonlypicturet" values=$ipconfiggest.ONLYPICTUREV output=$ipconfiggest.ONLYPICTURE selected="{$ipconfiggest.ONLYPICTURESELECT}"} 
     183                ({'If yes, apply antiaspi only on picture page'|@translate}) 
     184    </p> 
     185         <fieldset> 
     186      <legend>{'allowed ip'|translate}</legend> 
     187                <table class="lban"> 
     188                        {foreach from=$allowip item=allowip2} 
     189                          <tr> 
     190                                <td>{$allowip2.IP}</td> 
     191                                <td> 
     192                                <a href="{$allowip2.U_DELETE}" onclick="return confirm( document.getElementById('btn_delete').title + '\n\n' + '{'Are you sure?'|@translate|@escape:'javascript'}');"> 
     193                                        <img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/delete.png" id="btn_delete" alt="{'delete'|@translate}" title="{'Delete'|@translate}" /> 
     194                                </a> 
     195                                </td> 
     196                          </tr> 
     197                        {/foreach} 
     198                 </table> 
     199         </fieldset> 
     200    <p> 
     201        <input class="submit" type="submit" name="submitconfban" value="{'Submit'|@translate}"> 
     202    </p> 
     203 </fieldset> 
     204</form> 
     205  {if isset ($ipconfiggest)} 
     206        <form method="post"> 
     207                <fieldset> 
     208                        <legend>{'Add IP allowed'|@translate}</legend> 
     209                        {'IP'|@translate} <input " type="text" name="insipallowed" data-ip placeholder="123.123.123.123" value="" size="50" maxlenght="50" required pattern="^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"> 
     210                        <br> 
     211                        <br> 
     212                                <div style="text-align:center;"> 
     213                                <input class="submit" name="submitaddipallowed" type="submit" value="{'Submit'|@translate}" /> 
     214                                </div> 
     215                </fieldset> 
     216        </form> 
     217{/if} 
     218{/if} 
  • extensions/AntiAspi/antiaspi.css

    r31367 r31370  
    1414  background-image:none; 
    1515} 
     16table.lban td{ 
     17  padding-right:20px; 
     18} 
     19 
     20.lignebis { 
     21  background-color:green; 
     22} 
  • extensions/AntiAspi/main.inc.php

    r31362 r31370  
    2929  global $user, $conf, $page; 
    3030   
    31   $antiaspi = array( 
     31  /*$antiaspi = array( 
    3232    'diff' => '20 pages in 00:00:10' , // IP bannie si 20 pages différentes vues en 10 secondes 
    3333    'same' => '15 pages in 00:00:30' , // IP bannie si 15 pages identiques vues en 30 secondes 
     
    3939   
    4040  if (isset($conf['antiaspi'])) 
    41   { 
    42     $antiaspi = array_merge($antiaspi, $conf['antiaspi']); 
    43   } 
     41  {*/ 
     42    $antiaspi = safe_unserialize($conf['antiaspi']); 
     43 // } 
    4444 
    4545  if (is_admin() or ($antiaspi['only guest'] and !is_a_guest())) return; 
  • extensions/AntiAspi/maintain.class.php

    r29307 r31370  
    4343  function update($old_version, $new_version, &$errors=array()) 
    4444  { 
     45        global $conf;   
     46           
     47        if (!isset($conf['antiaspi'])) 
     48      { 
     49                $conf['antiaspi'] = array( 
     50                  'diff' => '20 pages in 00:00:10' , 
     51                  'same' => '15 pages in 00:00:30' , 
     52                  'banned during' => '23:59:59' , 
     53                  'only guest' => true , 
     54                  'only picture' => false , 
     55                  'allowed ip' => array('123.123.123.123','122.122.122.122'), 
     56                ); 
     57                conf_update_param('antiaspi', $conf['antiaspi']); 
     58      }   
     59           
    4560    $this->install($new_version, $errors); 
    4661  } 
Note: See TracChangeset for help on using the changeset viewer.