source: extensions/BanIP/admin.php @ 31375

Last change on this file since 31375 was 31375, checked in by ddtddt, 8 years ago

[extensions] - BanIP - add delete all

File size: 7.6 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Ban IP plugin for piwigo                                              |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2016 ddtddt                            http://temmii.com |
6// +-----------------------------------------------------------------------+
7// | This program is free software; you can redistribute it and/or modify  |
8// | it under the terms of the GNU General Public License as published by  |
9// | the Free Software Foundation                                          |
10// |                                                                       |
11// | This program is distributed in the hope that it will be useful, but   |
12// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
13// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
14// | General Public License for more details.                              |
15// |                                                                       |
16// | You should have received a copy of the GNU General Public License     |
17// | along with this program; if not, write to the Free Software           |
18// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
19// | USA.                                                                  |
20// +-----------------------------------------------------------------------+
21
22if (!defined('PHPWG_ROOT_PATH'))
23    die('Hacking attempt!');
24global $template, $conf, $user;
25include_once(PHPWG_ROOT_PATH . 'admin/include/tabsheet.class.php');
26load_language('plugin.lang', BANIP_PATH);
27$my_base_url = PHPWG_ROOT_PATH.'admin.php?page=plugin-';
28
29// +-----------------------------------------------------------------------+
30// | Check Access and exit when user status is not ok                      |
31// +-----------------------------------------------------------------------+
32check_status(ACCESS_ADMINISTRATOR);
33
34//-------------------------------------------------------- sections definitions
35if (!isset($_GET['tab']))
36    $page['tab'] = 'banip';
37else
38    $page['tab'] = $_GET['tab'];
39
40
41
42    $tabsheet = new tabsheet();
43    $tabsheet->add('banip', l10n('IP ban'), BANIP_ADMIN . '-banip');
44    $tabsheet->select($page['tab']);
45    $tabsheet->assign();
46
47switch ($page['tab']) {
48    case 'banip':
49          $template->assign(
50       'ipbangest', array(
51       'A' => 'a'
52    ));
53        $ipban = pwg_query("SELECT * FROM " . BANIP_TABLE . ";");
54       
55        $template->func_combine_css(array('id'=>'dst','path'=>BANIP_PATH.'banip.css'));
56       
57    $admin_base_url = BANIP_ADMIN . '-banip';
58        if (pwg_db_num_rows($ipban)) {
59            while ($ipban2 = pwg_db_fetch_assoc($ipban)) {
60                               
61                $items = array(
62                    'ID' => $ipban2['id'],
63                    'IP' => $ipban2['ip'],
64                    'U_DELETE' => $admin_base_url . '&amp;delete=' . $ipban2['id'],
65                    'U_EDIT' => $admin_base_url . '&amp;edit=' . $ipban2['id'],
66                );
67
68                $template->append('ipban2', $items);
69            }
70        }
71               
72  if (isset($_GET['delete'])) {
73
74    check_input_parameter('delete', $_GET, false, PATTERN_ID);
75    $query = 'DELETE FROM ' . BANIP_TABLE . ' WHERE id = ' . $_GET['delete'] . ';';
76    pwg_query($query);
77
78    $_SESSION['page_infos'] = array(l10n('IP ban deleted'));
79    redirect($admin_base_url);
80  }
81
82if (isset($_GET['edit'])) {
83    check_input_parameter('edit', $_GET, false, PATTERN_ID);
84    $query = 'SELECT * FROM ' . BANIP_TABLE . ' WHERE id = \'' . $_GET['edit'] . '\';';
85                $result = pwg_query($query);
86                $row = pwg_db_fetch_assoc($result);
87                $template->assign(
88                        'ipban_edit', array(
89                        'ID' => $row['id'],
90                        'IP' => $row['ip'],
91                ));
92} 
93
94if (isset($_POST['submitdeleteall'])) {
95        $query = 'DELETE FROM ' . BANIP_TABLE . ';';
96    pwg_query($query);
97        redirect($admin_base_url);
98}
99
100//add ban
101if (isset($_POST['submitipban'])) {
102        $template->assign(
103                'ipban_add', array(
104                'nada' => l10n('nada'),
105        ));
106        $template->clear_assign(
107                'ipban_edit', array(
108        ));
109}
110
111if (isset($_POST['submitaddipban'])) {
112  $plage= explode(".", $_POST['inserip']);
113  if(count($plage)!=4)
114        {
115          $_SESSION['page_errors'] = array(l10n('This Isn\'t an IP'));
116          redirect($admin_base_url);
117        }
118  if($plage[3]=='*')
119        {
120          $query = 'SELECT COUNT(*) AS verif_exist FROM ' . BANIP_TABLE . ' WHERE ip = \'' . $_POST['inserip'] . '\';';
121          $result = pwg_query($query);
122      $exist=pwg_db_fetch_array($result);
123          if($exist['verif_exist']>0)
124                {
125                  $_SESSION['page_errors'] = array(l10n('Range IP already banned'));
126                  redirect($admin_base_url);
127                }
128        }
129  $ipaddinrange=$plage[0].".".$plage[1].".".$plage[2].".*";
130  $query = 'SELECT COUNT(*) AS verif_exist FROM ' . BANIP_TABLE . ' WHERE ip = \'' . $ipaddinrange . '\';';
131  $result = pwg_query($query);
132  $exist=pwg_db_fetch_array($result);
133  if($exist['verif_exist']>0)
134        {
135          $_SESSION['page_errors'] = array(l10n('IP is in a range banned'));
136          redirect($admin_base_url);
137        }
138  $query = 'SELECT COUNT(*) AS verif_exist FROM ' . BANIP_TABLE . ' WHERE ip = \'' . $_POST['inserip'] . '\';';
139  $result = pwg_query($query);
140  $exist=pwg_db_fetch_array($result);
141  if($exist['verif_exist']>0)
142        {
143          $_SESSION['page_errors'] = array(l10n('IP already banned'));
144          redirect($admin_base_url);
145        }
146  if($plage[3]=='*')
147    {
148          $oldip=$plage[0].".".$plage[1].".".$plage[2].".";
149          $query = 'DELETE FROM ' . BANIP_TABLE . ' WHERE ip LIKE "' . $oldip . '%";';
150    pwg_query($query);
151          $_SESSION['page_infos'] = array(l10n('Range Ip ban insert'));
152        }
153  else
154    {
155          $_SESSION['page_infos'] = array(l10n('Ip ban insert'));
156        }
157  $query = 'INSERT INTO ' . BANIP_TABLE .'(ip) VALUES ("' . $_POST['inserip'] . '");';
158  $result = pwg_query($query);
159  redirect($admin_base_url);
160}
161
162if (isset($_POST['submitaddipban2'])) {
163  $plage= explode(".", $_POST['inserip']);
164  if(count($plage)!=4)
165        {
166          $_SESSION['page_errors'] = array(l10n('This Isn\'t an IP'));
167          redirect($admin_base_url);
168        }
169  if($plage[3]=='*')
170        {
171          $query = 'SELECT COUNT(*) AS verif_exist FROM ' . BANIP_TABLE . ' WHERE ip = \'' . $_POST['inserip'] . '\';';
172          $result = pwg_query($query);
173      $exist=pwg_db_fetch_array($result);
174          if($exist['verif_exist']>0)
175                {
176                  $_SESSION['page_errors'] = array(l10n('Range IP already banned'));
177                  redirect($admin_base_url);
178                }
179        }
180  $ipaddinrange=$plage[0].".".$plage[1].".".$plage[2].".*";
181  $query = 'SELECT COUNT(*) AS verif_exist FROM ' . BANIP_TABLE . ' WHERE ip = \'' . $ipaddinrange . '\';';
182  $result = pwg_query($query);
183  $exist=pwg_db_fetch_array($result);
184  if($exist['verif_exist']>0)
185        {
186          $_SESSION['page_errors'] = array(l10n('IP is in a range banned'));
187          redirect($admin_base_url);
188        }
189  $query = 'SELECT COUNT(*) AS verif_exist FROM ' . BANIP_TABLE . ' WHERE ip = \'' . $_POST['inserip'] . '\';';
190  $result = pwg_query($query);
191  $exist=pwg_db_fetch_array($result);
192  if($exist['verif_exist']>0)
193        {
194          $_SESSION['page_errors'] = array(l10n('IP already banned'));
195          redirect($admin_base_url);
196        }
197  if($plage[3]=='*')
198    {
199          $oldip=$plage[0].".".$plage[1].".".$plage[2].".";
200          $query = 'DELETE FROM ' . BANIP_TABLE . ' WHERE ip LIKE "' . $oldip . '%";';
201    pwg_query($query);
202          $_SESSION['page_infos'] = array(l10n('Range Ip ban update'));
203        }
204  else
205    {
206          $_SESSION['page_infos'] = array(l10n('Ip ban update'));
207        }
208  $query = 'UPDATE ' . BANIP_TABLE .' SET ip= "'.$_POST['inserip'].'" WHERE id = '.$_POST['invisibleID'].';';
209  $result = pwg_query($query);
210  redirect($admin_base_url);
211}
212
213        break;
214}
215       
216
217$template->set_filenames(array('plugin_admin_content' => dirname(__FILE__) . '/admin.tpl'));
218$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content');
219?>
Note: See TracBrowser for help on using the repository browser.