From d3a75524fab8d15a36d42ecdcde7b0be6f3f97eb Mon Sep 17 00:00:00 2001 From: cmaffio Date: Tue, 17 May 2016 16:50:51 +0200 Subject: [PATCH] Gestione gruppi proxy --- .htaccess | 6 ++ DBDiff/proxy.sql | 23 +++++++ proxy/ext/chkpasswd_proxy.php | 15 ++--- proxy/ext/footer_proxy.php | 4 +- proxy/ext/function_proxy.php | 2 +- proxy/ext/logout_proxy.php | 6 +- proxy/ext/{main.php => main_proxy.php} | 6 +- proxy/ext/top_proxy.php | 4 +- proxy/squid_acl/squid_acl.pl | 12 ++-- proxy/squid_acl/squid_acl_net.pl | 12 ++-- proxy/squid_acl/squid_auth.pl | 26 ++++++-- proxy/users_group_edit.php | 84 ++++++++++++++++++++++++++ proxy/users_group_lista.php | 66 ++++++++++++++++++++ proxy/users_lista.php | 4 +- rewrite.php | 27 +++++++++ 15 files changed, 256 insertions(+), 41 deletions(-) mode change 100755 => 100644 proxy/ext/chkpasswd_proxy.php rename proxy/ext/{main.php => main_proxy.php} (69%) create mode 100755 proxy/users_group_edit.php create mode 100755 proxy/users_group_lista.php create mode 100644 rewrite.php diff --git a/.htaccess b/.htaccess index 96aa873..fdaaa92 100644 --- a/.htaccess +++ b/.htaccess @@ -1,3 +1,9 @@ RewriteEngine on RewriteRule ^(.*/)?img/(.*) risorse/immagini/$2 [L] RewriteRule ^(.*/)?css/(.*) risorse/stili/$2 [L] + +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule . /pannello_vbc/rewrite.php [L] + + diff --git a/DBDiff/proxy.sql b/DBDiff/proxy.sql index 27ead1a..55a6f69 100644 --- a/DBDiff/proxy.sql +++ b/DBDiff/proxy.sql @@ -2,3 +2,26 @@ ALTER TABLE `proxy_utenti` ADD `guest` INT NOT NULL DEFAULT '0' AFTER `modifica` INSERT INTO `pannello_vbc`.`livelli` (`id`, `livello`, `nome`) VALUES (NULL, '1', 'Libero'); ALTER TABLE `moduli_page` ADD `livello` INT NOT NULL AFTER `pagina`; + +CREATE TABLE `rewrite` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `from_url` varchar(512) NOT NULL, + `to_url` varchar(512) NOT NULL, + `attivo` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `from_url` (`from_url`(255)) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 + +INSERT INTO `rewrite` (`id`, `from_url`, `to_url`, `attivo`) VALUES +(1, 'pannello_vbc/proxy_auth.php', 'proxy/ext/main_proxy.php', 1), +(2, 'pannello_vbc/main_proxy.php', 'proxy/ext/main_proxy.php', 1), +(3, 'pannello_vbc/logout_proxy.php', 'proxy/ext/logout_proxy.php', 1), +(4, 'pannello_vbc/chkpasswd_proxy.php', 'proxy/ext/chkpasswd_proxy.php', 1); + +ALTER TABLE `proxy_utenti` ADD `primo` DATETIME NULL AFTER `modifica`; +ALTER TABLE `proxy_utenti` ADD `ultimo` DATETIME NULL AFTER `ultimo`; +ALTER TABLE `proxy_utenti` ADD `tempo` DECIMAL(20,2) NOT NULL DEFAULT '0' AFTER `attivo`; +ALTER TABLE `proxy_utenti` CHANGE `ip` `ip` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL; +REVOKE ALL PRIVILEGES ON `pannello_vbc`.`proxy_utenti` FROM 'pannello_proxy'@'%'; GRANT SELECT, UPDATE (`primo`, `ultimo`, `attivo`) ON `pannello_vbc`.`proxy_utenti` TO 'pannello_proxy'@'%'; + +INSERT INTO `pannello_vbc`.`moduli_page` (`id`, `id_moduli`, `nome`, `ordine`, `pagina`, `livello`, `attivo`) VALUES (NULL, '1', 'Lista Gruppi', '35', 'users_group_lista.php', '10', '1'); diff --git a/proxy/ext/chkpasswd_proxy.php b/proxy/ext/chkpasswd_proxy.php old mode 100755 new mode 100644 index 7e8d02b..6fb8fa6 --- a/proxy/ext/chkpasswd_proxy.php +++ b/proxy/ext/chkpasswd_proxy.php @@ -1,6 +1,6 @@ - + @@ -102,13 +102,6 @@ $(document).ready(function() - - - - - - - @@ -142,7 +135,7 @@ $(document).ready(function() diff --git a/proxy/ext/footer_proxy.php b/proxy/ext/footer_proxy.php index b8d7df7..2045aba 100644 --- a/proxy/ext/footer_proxy.php +++ b/proxy/ext/footer_proxy.php @@ -1,11 +1,11 @@
    - +
- + - + diff --git a/proxy/ext/function_proxy.php b/proxy/ext/function_proxy.php index ad188e0..847752f 100644 --- a/proxy/ext/function_proxy.php +++ b/proxy/ext/function_proxy.php @@ -81,7 +81,7 @@ function carica_utente_proxy () { function lista_moduli_proxy () { global $UTENTE, $DB_ID, $CONF; - $menu[] = array("Home", "main.php",0,"Home Page",0); + $menu[] = array("Home", "main_proxy.php",0,"Home Page",0); $menu[] = array("Cambio password", "chkpasswd_proxy.php",0,"Cambio Password"); $pezzi = preg_split('/\//', $_SERVER["PHP_SELF"], -2); diff --git a/proxy/ext/logout_proxy.php b/proxy/ext/logout_proxy.php index 35b6ff9..0923c3e 100644 --- a/proxy/ext/logout_proxy.php +++ b/proxy/ext/logout_proxy.php @@ -1,10 +1,10 @@ diff --git a/proxy/ext/main.php b/proxy/ext/main_proxy.php similarity index 69% rename from proxy/ext/main.php rename to proxy/ext/main_proxy.php index f09c8f4..3113fc2 100644 --- a/proxy/ext/main.php +++ b/proxy/ext/main_proxy.php @@ -1,11 +1,11 @@ - +
    Admin Admin   
diff --git a/proxy/ext/top_proxy.php b/proxy/ext/top_proxy.php index bb413a2..93da496 100644 --- a/proxy/ext/top_proxy.php +++ b/proxy/ext/top_proxy.php @@ -10,7 +10,7 @@ if ($UTENTE['user'] != '') { ?>
- + @@ -23,7 +23,7 @@ lista_moduli_proxy(); } else {?> - + diff --git a/proxy/squid_acl/squid_acl.pl b/proxy/squid_acl/squid_acl.pl index 7d8f7b3..5f829a6 100755 --- a/proxy/squid_acl/squid_acl.pl +++ b/proxy/squid_acl/squid_acl.pl @@ -9,7 +9,7 @@ require "$Bin/../script/conntrack.conf"; local $SIG{ALRM} = sub { my $time = localtime; # scalar context - print LOG "$$ - $time - Exit\n"; +# print LOG "$$ - $time - Exit\n"; exit 1; }; @@ -21,8 +21,8 @@ my $dbmysql = DBI->connect("DBI:mysql:;host=$DBhost", $DBuser, $DBpass) or die ( $sts = $dbmysql->prepare("use $DBname"); $sts->execute (); -open LOG, ">> /srv/www/htdocs/pannello_vbc/proxy/squid_acl/squid_pool.log"; -LOG->autoflush(1); +#open LOG, ">> /srv/www/htdocs/pannello_vbc/proxy/squid_acl/squid_pool.log"; +#LOG->autoflush(1); while($limit) { alarm $timeout; @@ -35,15 +35,15 @@ while($limit) { my $ritorno = cerca ($param[1],$param[2], -1); $limit--; if ($ritorno) { - print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; +# print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; print "DENY\n"; } else { $ritorno = cerca ($param[1],$param[2], 1); if ($ritorno) { - print LOG "$param[0] - $param[1] - $param[2] - OK\n"; +# print LOG "$param[0] - $param[1] - $param[2] - OK\n"; print "OK\n"; } else { - print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; +# print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; # print "DENY\n"; print "\n"; } diff --git a/proxy/squid_acl/squid_acl_net.pl b/proxy/squid_acl/squid_acl_net.pl index 3a2c04d..71660e4 100755 --- a/proxy/squid_acl/squid_acl_net.pl +++ b/proxy/squid_acl/squid_acl_net.pl @@ -9,7 +9,7 @@ require "$Bin/../script/conntrack.conf"; local $SIG{ALRM} = sub { my $time = localtime; # scalar context - print LOG "$$ - $time - Exit\n"; +# print LOG "$$ - $time - Exit\n"; exit 1; }; @@ -21,8 +21,8 @@ my $dbmysql = DBI->connect("DBI:mysql:;host=$DBhost", $DBuser, $DBpass) or die ( $sts = $dbmysql->prepare("use $DBname"); $sts->execute (); -open LOG, ">> /srv/www/htdocs/pannello_vbc/proxy/squid_acl/squid_pool.log"; -LOG->autoflush(1); +#open LOG, ">> /srv/www/htdocs/pannello_vbc/proxy/squid_acl/squid_pool.log"; +#LOG->autoflush(1); while($limit) { alarm $timeout; @@ -35,15 +35,15 @@ while($limit) { my $ritorno = cerca ($param[1],$param[2], -1); $limit--; if ($ritorno) { - print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; +# print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; print "DENY\n"; } else { $ritorno = cerca ($param[1],$param[2], 1); if ($ritorno) { - print LOG "$param[0] - $param[1] - $param[2] - OK\n"; +# print LOG "$param[0] - $param[1] - $param[2] - OK\n"; print "OK\n"; } else { - print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; +# print LOG "$param[0] - $param[1] - $param[2] - ERR\n"; print "\n"; } } diff --git a/proxy/squid_acl/squid_auth.pl b/proxy/squid_acl/squid_auth.pl index e1bf799..45b1ca1 100755 --- a/proxy/squid_acl/squid_auth.pl +++ b/proxy/squid_acl/squid_auth.pl @@ -8,7 +8,7 @@ require "$Bin/../script/conntrack.conf"; local $SIG{ALRM} = sub { my $time = localtime; # scalar context - print LOG "$$ - $time - Exit\n"; +# print LOG "$$ - $time - Exit\n"; exit 1; }; @@ -20,8 +20,8 @@ my $dbmysql = DBI->connect("DBI:mysql:;host=$DBhost", $DBuser, $DBpass) or die ( $sts = $dbmysql->prepare("use $DBname"); $sts->execute (); -open LOG, ">> /srv/www/htdocs/pannello_vbc/proxy/squid_acl/squid_pool.log"; -LOG->autoflush(1); +#open LOG, ">> /srv/www/htdocs/pannello_vbc/proxy/squid_acl/squid_pool.log"; +#LOG->autoflush(1); alarm $timeout; while($limit) { @@ -29,11 +29,10 @@ while($limit) { my $input = <>; chop $input; -# my ($acl, $ip) = split / /, $input; my @param = split / /, $input; if ($param[0] ne "") { - $query = "SELECT id FROM proxy_utenti WHERE user = '".$param[0]."' AND pass = PASSWORD('".$param[1]."') AND attivo = 1"; + $query = "SELECT id, primo, (tempo*3600)-time_to_sec(timediff(ultimo, primo)) AS rimasto, tempo FROM proxy_utenti WHERE user = '".$param[0]."' AND pass = PASSWORD('".$param[1]."') AND attivo = 1"; $limit--; alarm $timeout; } else { @@ -47,7 +46,22 @@ while($limit) { if ($ref = $sts->fetchrow_hashref ) { my $id = $$ref{'id'}; - my $query = "UPDATE proxy_utenti SET data = NOW() WHERE id = $id"; + my $primo = $$ref{'primo'}; + my $rimasto = $$ref{'rimasto'}; + my $tempo = $$ref{'tempo'}; + + my $agg = ""; + my $query = ""; + if (($tempo > 0) && ($rimasto < 0)){ + $agg = "attivo = 0,"; + } + + if (!$primo) { + $query = "UPDATE proxy_utenti SET $agg primo = NOW(), ultimo = NOW() WHERE id = $id"; + } else { + $query = "UPDATE proxy_utenti SET $agg ultimo = NOW() WHERE id = $id"; + } +# print LOG "$rimasto -- $query\n"; $sts = $dbmysql->prepare($query); $sts->execute (); print "OK\n"; diff --git a/proxy/users_group_edit.php b/proxy/users_group_edit.php new file mode 100755 index 0000000..459b862 --- /dev/null +++ b/proxy/users_group_edit.php @@ -0,0 +1,84 @@ + + + + + + +
Utente:   Logout
 
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +  -  + +
+ + + diff --git a/proxy/users_group_lista.php b/proxy/users_group_lista.php new file mode 100755 index 0000000..13b5e20 --- /dev/null +++ b/proxy/users_group_lista.php @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Utente AttivoUtente non AttivoDettaglio
+ + diff --git a/proxy/users_lista.php b/proxy/users_lista.php index c9dffc0..cff2ad5 100755 --- a/proxy/users_lista.php +++ b/proxy/users_lista.php @@ -17,10 +17,12 @@ $query = " SELECT user, fullname, attivo, - DATE_FORMAT(data, '%d.%m.%Y %H:%i:%s') AS data, + DATE_FORMAT(ultimo, '%d.%m.%Y %H:%i:%s') AS data, ip FROM proxy_utenti + WHERE + guest = 0 ORDER BY user "; diff --git a/rewrite.php b/rewrite.php new file mode 100644 index 0000000..0a5ad02 --- /dev/null +++ b/rewrite.php @@ -0,0 +1,27 @@ +