<?php
include_once ("../core/config.php");
$UTENTE = login();
$DIRITTI = diritti('Admin');
?>
<html>
<head>
<script type="text/javascript">
<!--
function confirmation(testo) {
        alert(testo)
        document.location.href='main.php'
}
//-->
</script>

<?php
if (isset($_GET['id'])) {
	$id = $_GET['id'];
	if (isset($_GET['azione'])) {
		$azione = $_GET['azione'];
		$genera = 0;
		switch ($azione) {
			case "net_up":
				$query = "UPDATE proxy_net SET attivo = 1 WHERE id = $id";
				$testo = "Confermate l'abilitazione della rete?";
			break;
			case "net_down":
				$query = "UPDATE proxy_net SET attivo = 0 WHERE id = $id";
				$testo = "Confermate la disabilitazione della rete?";
			break;
			case "net_rm":
				$query = "DELETE FROM proxy_net WHERE id = $id";
				$testo = "Confermate la rimozione della rete?";
			break;

			case "acl_up":
				$query = "UPDATE proxy_acl_list SET attivo = 1, data = NOW() WHERE id = $id";
				$testo = "Confermate l'abilitazione della ACL?";
			break;
			case "acl_down":
				$query = "UPDATE proxy_acl_list SET attivo = 0, data = NOW() WHERE id = $id";
				$testo = "Confermate la disabilitazione della ACL?";
			break;
			case "link_up":
				$query = "UPDATE proxy_acl SET attivo = 1, data = NOW() WHERE id = $id";
				$testo = "Confermate l'abilitazione dell'URL?";
			break;
			case "link_down":
				$query = "UPDATE proxy_acl SET attivo = 0, data = NOW() WHERE id = $id";
				$testo = "Confermate la disabilitazione dell'URL?";
			break;
			case "link_rm":
				$query = "DELETE FROM proxy_acl WHERE id = $id";
				$testo = "Confermate la cancellazione dell'URL?";
			break;

			case "pool_ins":
				$query = "INSERT INTO proxy_pool (ip, pool, attivo, ins) VALUES ('$id', 1, 1, NOW()) ON DUPLICATE KEY UPDATE attivo = 1";
				$testo = "Confermate l'inserimento dell'indirizzo IP nel pool di limitazione?";
				$genera = 1;
			break;
			case "pool_rem":
				$query = "INSERT INTO proxy_pool (ip, pool, attivo, ins) VALUES ('$id', 1, 0, NOW()) ON DUPLICATE KEY UPDATE attivo = 0";
				$testo = "Confermate la rimozione dell'indirizzo IP dal pool di limitazione?";
				$genera = 1;
			break;

			case "user_up":
				$query = "UPDATE proxy_utenti SET attivo = 1 WHERE id = $id";
				$testo = "Confermate l'abilitazione dell'utente?";
			break;
			case "user_down":
				$query = "UPDATE proxy_utenti SET attivo = 0 WHERE id = $id";
				$testo = "Confermate la disabilitazione dell'utente?";
			break;
			case "user_rm":
				$query = "DELETE FROM proxy_utenti WHERE id = $id";
				$testo = "Confermate la cancellazione dell'utente?";
			break;

			default:
				$testo = "Regola non implementata";
			break;
		}

		if (isset($_GET['ref'])) {
			$ref = pack ('H*', $_GET['ref']);
			mysql_query( $query, $DB_ID );
			if ($genera) genera($DB_ID);
?>
<script type="text/javascript">
	document.location.href="<?php print $ref ?>"
</script>
<?php 		} else { 
			$ref = unpack ('H*', $_SERVER["HTTP_REFERER"]);
?>
<script type="text/javascript">
	var r = confirm("<?php print $testo ?>");
	if (r == true) {
		document.location.href="<?php print $_SERVER['REQUEST_URI']?>&ref=<?php print $ref[1] ?>"
	} else {
		document.location.href="<?php print $_SERVER['HTTP_REFERER']?>"
	}
</script>
<?php		}

	}
}
?>

<?php
function genera ($DB_ID) {
	$file = 'squid_acl/listip';
	$fp = fopen($file, 'w');

	$query = "SELECT ip FROM proxy_pool WHERE attivo = 1 AND pool = 1";
	$res = mysql_query( $query, $DB_ID );
	while ($dato = mysql_fetch_array ( $res )) {
		fwrite($fp, $dato['ip']."\n");
	}
	fclose($fp);
	exec ("sudo /opt/squid/sbin/squid -k reconfigure");
	remote ($DB_ID);
}

function remote ($DB_ID) {
	$query = "	SELECT 
				host,
				port,
				usr,
				pwd,
				path,
				command
			FROM
				proxy_remote
			WHERE
				attivo = 1
	";

	$res = mysql_query( $query, $DB_ID );
	while ($dato = mysql_fetch_array ( $res )) {
		$connection = ssh2_connect($dato['host'], $dato['port']);
		ssh2_auth_password($connection, $dato['usr'], $dato['pwd']);
	
		ssh2_scp_send($connection, 'squid_acl/listip', $dato['path'].'/listip', 0644);
		$stream = ssh2_exec($connection, $dato['command']);
	}
}

?>


