source: extensions/AntiAspi/admin.php @ 31953

Revision 31953, 5.3 KB checked in by plg, 13 months ago (diff)

Simpler user interface, display banned IP current status, regroup IP management

Line 
1<?php
2
3if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
4
5global $template, $conf, $user;
6
7include_once(PHPWG_ROOT_PATH . 'admin/include/tabsheet.class.php');
8
9load_language('plugin.lang', ANTIASPI_PATH);
10
11$my_base_url = PHPWG_ROOT_PATH.'admin.php?page=plugin-'; //get_admin_plugin_menu_link(__FILE__);
12
13// +-----------------------------------------------------------------------+
14// | Check Access and exit when user status is not ok                      |
15// +-----------------------------------------------------------------------+
16
17check_status(ACCESS_ADMINISTRATOR);
18
19//-------------------------------------------------------- sections definitions
20
21if (!isset($_GET['tab']))
22{
23  $page['tab'] = 'ipban';
24}
25else
26{
27  $page['tab'] = $_GET['tab'];
28}
29
30$template->func_combine_css(array('id'=>'dst','path'=>ANTIASPI_PATH.'antiaspi.css'));
31
32$tabsheet = new tabsheet();
33$tabsheet->add('ipban', '<i class="icon-network"></i> '.l10n('IP addresses'), ANTIASPI_ADMIN . '-ipban');
34$tabsheet->add('ipconfig', '<i class="icon-tools"></i> '.l10n('Configuration'), ANTIASPI_ADMIN . '-ipconfig ');
35$tabsheet->select($page['tab']);
36$tabsheet->assign();
37
38if ('ipban' == $page['tab'])
39{
40  $template->assign(
41    'ipbangest',
42    array(
43      'A' => 'a',
44    )
45  );
46
47  $query = '
48SELECT
49    *,
50    IF (date > SUBTIME(NOW(), "'.$conf['antiaspi']['banned during'].'"), "active", "deprecated") AS status
51  FROM '.ANTIASPI_TABLE.'
52  ORDER BY id DESC
53;';
54  $ipban = pwg_query($query);
55
56  $antiaspi = safe_unserialize($conf['antiaspi']);
57
58  $admin_base_url = ANTIASPI_ADMIN . '-ipban';
59  if (pwg_db_num_rows($ipban))
60  {
61    while ($ipban2 = pwg_db_fetch_assoc($ipban))
62    {
63      $items = array(
64        'ID' => $ipban2['id'],
65        'IP' => $ipban2['ip'],
66        'DATE' => $ipban2['date'],
67        'STATUS' => $ipban2['status'],
68        'U_DELETE' => $admin_base_url . '&amp;delete=' . $ipban2['id'],
69      );
70
71      $template->append('ipban2', $items);
72    }
73  }
74   
75  if (isset($_GET['delete']))
76  {
77    check_input_parameter('delete', $_GET, false, PATTERN_ID);
78
79    $query = 'DELETE FROM ' . ANTIASPI_TABLE . ' WHERE id = ' . $_GET['delete'] . ';';
80    pwg_query($query);
81
82    $_SESSION['page_infos'] = array(l10n('IP ban deleted'));
83    redirect($admin_base_url);
84  }
85 
86  if (isset($_POST['submitdeleteall']))
87  {
88    $query = 'DELETE FROM ' . ANTIASPI_TABLE . ';';
89    pwg_query($query);
90    redirect($admin_base_url);
91  }
92
93  if (isset($_POST['submitdeletedeprecated']))
94  {
95    $query = 'DELETE FROM ' . ANTIASPI_TABLE . ' WHERE date < ADDTIME(NOW(), "-' . $antiaspi['banned during'] . '");';
96    pwg_query($query);
97    redirect($admin_base_url);
98  }
99
100  $i = 0;
101  while ($i < count($antiaspi['allowed ip']))
102  {
103    $items = array(
104      'IP' => $antiaspi['allowed ip'][$i],
105      'U_DELETE' => $admin_base_url . '&amp;deleteallowed='.$i ,
106    );
107
108    $template->append('allowip', $items);
109    $i++;
110  }
111
112  if (isset($_POST['submitaddipallowed']))
113  {
114    $i = 0;
115    while ($i < count($antiaspi['allowed ip']))
116    {
117      if ($_POST['insipallowed']==$antiaspi['allowed ip'][$i])
118      {
119        $_SESSION['page_errors'] = array(l10n('IP already allowed'));
120        redirect($admin_base_url);
121      }
122      $i++;
123    }
124
125    $antiaspi['allowed ip'][] = $_POST['insipallowed'];
126    conf_update_param('antiaspi', $antiaspi, true);
127    redirect($admin_base_url);
128  }
129
130  if (isset($_GET['deleteallowed']))
131  {
132    check_input_parameter('deleteallowed', $_GET, false, PATTERN_ID);
133
134    unset($antiaspi['allowed ip'][ $_GET['deleteallowed'] ]);
135
136    $antiaspi['allowed ip'] = array_values($antiaspi['allowed ip']);
137    conf_update_param('antiaspi', $antiaspi);
138    redirect($admin_base_url);
139  }
140}
141
142if ('ipconfig' == $page['tab'])
143{
144  antiaspi_check_old_conf();
145
146  $admin_base_url = ANTIASPI_ADMIN . '-ipconfig';
147  $antiaspi = safe_unserialize($conf['antiaspi']); 
148
149  $diff = explode(" pages in ", $antiaspi['diff']);
150  $tempsdiff= explode(":", $diff[1]);
151  $tempsdiffsec=$tempsdiff[2]+($tempsdiff[1]*60)+($tempsdiff[0]*60*60);
152
153  $same = explode(" pages in ", $antiaspi['same']);
154  $tempssame= explode(":", $same[1]);
155  $tempssamesec=$tempssame[2]+($tempssame[1]*60)+($tempssame[0]*60*60);
156
157  $onlyguest = array(l10n('Yes'), l10n('No'));
158  $onlyguestv = array(true, false);
159  $onlypicture = array(l10n('Yes'), l10n('No'));
160  $onlypicturev = array(true,false); 
161
162  $template->assign(
163    'ipconfiggest',
164    array(
165      'DIFFA' => $diff[0],
166      'DIFFB' => $tempsdiffsec,
167      'SAMEA' => $same[0],
168      'SAMEB' => $tempssamesec,
169      'ONLYGUEST' => $onlyguest,
170      'ONLYGUESTV' => $onlyguestv,
171      'ONLYGUESTSELECT' => $antiaspi['only guest'],
172      'ONLYPICTURE' => $onlypicture,
173      'ONLYPICTUREV' => $onlypicturev,
174      'ONLYPICTURESELECT' => $antiaspi['only picture'],
175    )
176  );
177
178  if (isset($_POST['submitconfban']))
179  {
180    /*$time = date('h:i:s', $_POST['insdiffb']);  revoir fonction date HS ?*/
181    $antiaspi['diff'] = $_POST['insdiffa'].' pages in '.date('00:i:s', ($_POST['insdiffb']));
182    $antiaspi['same'] = $_POST['inssamea'].' pages in '.date('00:i:s', ($_POST['inssameb']));
183    $antiaspi['only guest'] = $_POST['insonlyguest'];
184    $antiaspi['only picture'] = $_POST['insonlypicturet'];
185
186    conf_update_param('antiaspi', $antiaspi);
187    redirect($admin_base_url);
188  }
189}
190 
191
192$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/admin.tpl'));
193$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
194?>
Note: See TracBrowser for help on using the repository browser.