Beispiel #1
0
function CreatePgSQLDB($filename)
{
    $sDB = new CREATESAMSDB("PostgreSQL", "0", "localhost", "postgres", "", "samsdb");
    if ($dbf_handle = @fopen($filename, "r")) {
        echo "File {$filename} \n";
        flush();
        $sql_query = fread($dbf_handle, filesize($filename));
        fclose($dbf_handle);
        $dejaLance = 0;
        $li = 0;
        foreach (explode(";", "{$sql_query}") as $sql_line) {
            $sDB->samsdb_query("{$sql_line};");
        }
        echo ".";
        flush();
    }
}
function selectimportdateform()
{
    global $SAMSConf;
    global $USERConf;
    $lang = "./lang/lang.{$SAMSConf->LANG}";
    require $lang;
    if ($USERConf->ToWebInterfaceAccess("C") != 1) {
        exit(0);
    }
    if (isset($_GET["hostname"])) {
        $hostname = $_GET["hostname"];
    }
    if (isset($_GET["username"])) {
        $username = $_GET["username"];
    }
    if (isset($_GET["pass"])) {
        $pass = $_GET["pass"];
    }
    $oldDB = new CREATESAMSDB("MySQL", "0", $hostname, $username, $pass, "squidlog", "0");
    $num_rows = $oldDB->samsdb_query_value("SELECT min(date) FROM squidlog.cache");
    $row = $oldDB->samsdb_fetch_array();
    $startdate = $row[0];
    $num_rows = $oldDB->samsdb_query_value("SELECT max(date) FROM squidlog.cache");
    $row = $oldDB->samsdb_fetch_array();
    $enddate = $row[0];
    // Получаем дату, за которую производится импорт данных
    PageTop("importcachedb_48.jpg", "{$configbuttom_3_importcache_selectimportdateform_1}");
    print "<P><IMG SRC=\"{$SAMSConf->ICONSET}/help.jpg\">";
    print "<A HREF=\"http://sams.perm.ru/sams2/doc/" . $SAMSConf->LANG . "/importfromsams1.html\">{$documentation}</A>";
    print "<P>\n";
    echo "<B>{$configbuttom_3_importcache_selectimportdateform_2} {$startdate} {$configbuttom_3_importcache_selectimportdateform_3} {$enddate}";
    echo "<BR>{$configbuttom_3_importcache_selectimportdateform_4}</B>";
    require "reportsclass.php";
    $dateselect = new DATESELECT($startdate, $enddate);
    print "<FORM NAME=\"selectdate\" ACTION=\"main.php\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"show\" value=\"exe\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"function\" value=\"importcachesumtable\">\n";
    #  print("<INPUT TYPE=\"HIDDEN\" NAME=\"function\" value=\"importcachetable\">\n");
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" value=\"configbuttom_3_importcache.php\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"hostname\" value=\"{$hostname}\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"username\" value=\"{$username}\">\n";
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"pass\" value=\"{$pass}\">\n";
    $dateselect->SetPeriod();
    printf("<BR><CENTER>");
    print "</FORM>\n";
}
Beispiel #3
0
function CreateSAMSdb($lang)
{
    $pgdb = array();
    require './samsclass.php';
    $SAMSConf = new MAINCONF();
    if (isset($_GET["hostname"])) {
        $host = $_GET["hostname"];
    }
    if (isset($_GET["username"])) {
        $user = $_GET["username"];
    }
    if (isset($_GET["pass"])) {
        $passwd = $_GET["pass"];
    }
    if (isset($_GET["muser"])) {
        $muser = $_GET["muser"];
    }
    if (isset($_GET["mpass"])) {
        $mpass = $_GET["mpass"];
    }
    if (isset($_GET["create"])) {
        $create = $_GET["create"];
    }
    $db = $SAMSConf->DB_ENGINE;
    $odbc = $SAMSConf->ODBC;
    $dbname = $SAMSConf->SAMSDB;
    $odbcsource = $SAMSConf->ODBCSOURCE;
    $pgdb[0] = "CREATE TABLE websettings (\ts_lang varchar(15) NOT NULL default 'EN', s_iconset varchar(25) NOT NULL default 'classic', s_useraccess smallint NOT NULL default '1', s_urlaccess smallint NOT NULL default '1', s_showutree smallint NOT NULL default '1' , s_showname varchar(5) NOT NULL default 'nick', s_showgraph smallint NOT NULL default '0', \ts_createpdf varchar(5) NOT NULL default 'NONE',\ts_version char(5) NOT NULL default '1.0')";
    $pgdb[1] = "INSERT INTO websettings VALUES('{$lang}','classic','1','1','1','nick','0','NONE','2.0.0')";
    $pgdb[2] = "CREATE TABLE proxy (  s_proxy_id SERIAL PRIMARY KEY, s_description varchar(100) default 'Proxy server', \ns_endvalue bigint NOT NULL default '0', s_redirect_to varchar(100) default 'http://your.ip.address/sams2/icon/classic/blank.gif', s_denied_to varchar(100) default 'http://your.ip.address/sams2/messages', s_redirector varchar(25) default 'NONE', s_delaypool smallint default '0', s_auth varchar(4) default 'ip', s_wbinfopath varchar(100) default '/usr/bin', s_separator varchar(15) default '+', s_usedomain smallint default '0', s_bigd smallint default '2', s_bigu smallint default '2', s_sleep int default '1', s_parser smallint default '0', s_parser_time int default '1', s_count_clean smallint default '0', s_nameencode smallint default '0', s_realsize varchar(4) default 'real', s_checkdns smallint default '0', s_debuglevel int NOT NULL default '0', s_defaultdomain varchar(25) NOT NULL default 'workgroup', s_squidbase int NOT NULL default '0', \ns_udscript varchar(100) NOT NULL default 'NONE', \ns_adminaddr varchar(60) NOT NULL default 'root@localhost', \ns_kbsize varchar(15) NOT NULL default '1024', \ns_mbsize varchar(15) NOT NULL default '1048576', \ns_ldapserver varchar(30) NOT NULL DEFAULT '0.0.0.0', \ns_ldapbasedn varchar(50) NOT NULL DEFAULT 'workgroup', \ns_ldapuser varchar(50) NOT NULL DEFAULT 'Administrator',\ns_ldappasswd varchar(50) NOT NULL DEFAULT '0', \ns_ldapusergroup varchar(50) NOT NULL DEFAULT 'Users',\ns_autouser  int NOT NULL DEFAULT '0',\ns_autotpl int DEFAULT '0',\ns_autogrp int DEFAULT '0')";
    $pgdb[3] = "INSERT INTO proxy VALUES ('0', 'Proxy server','0','http://your.ip.address/sams2/icon/classic/blank.gif', 'http://your.ip.address/sams2/messages', 'NONE', '0', 'ip', '/usr/bin','+', '0', '2', '2', '1', '1', '1','0', '0', 'real', '0', '0', 'workgroup', '0', 'NONE', '', '1024'\n, '1048576', '0.0.0.0', 'workgroup', 'Administrator', '0', 'Users', '0', '0', '0' ) ";
    $pgdb[4] = "CREATE TABLE passwd ( s_user varchar(25) PRIMARY KEY, s_pass varchar(60), s_access int default '0', s_autherrorc smallint default '0', s_autherrort varchar(16) default '0' )";
    $pgdb[5] = "INSERT INTO passwd VALUES('admin','00YfpO1MXDzqQ','2','0','' )";
    $pgdb[6] = "INSERT INTO passwd VALUES('auditor','00MTbxknCTtNs','1','0','' )";
    $pgdb[7] = "CREATE TABLE shablon ( s_shablon_id SERIAL PRIMARY KEY, s_name varchar(100),\ns_auth varchar(4) default 'ip', \ns_quote int default '100',s_period varchar(3) NOT NULL default 'M', s_clrdate date NOT NULL default '1980-01-01',\ns_alldenied smallint NOT NULL default '0', s_shablon_id2 int default '-1')";
    $pgdb[8] = "INSERT INTO shablon VALUES('0','Default','ip','100','M','1980-01-01','0', '-1')";
    $pgdb[9] = "CREATE TABLE timerange ( s_trange_id SERIAL PRIMARY KEY, s_name varchar(100), \ns_days varchar(14), \ns_timestart time default '00:00:00', \ns_timeend time default '23:59:59')";
    $pgdb[10] = "INSERT INTO timerange VALUES('0','Full day','MTWHFAS','00:00:00','23:59:59')";
    $pgdb[11] = "CREATE TABLE sconfig_time ( s_shablon_id int, s_trange_id int )";
    if ($SAMSConf->DB_ENGINE == "MySQL") {
        $pgdb[12] = "INSERT INTO sconfig_time VALUES( '1', '1' )";
    } else {
        $pgdb[12] = "INSERT INTO sconfig_time VALUES( '0', '0' )";
    }
    $pgdb[13] = "CREATE TABLE sconfig ( s_shablon_id int, s_redirect_id int )";
    $pgdb[14] = "CREATE TABLE redirect ( s_redirect_id SERIAL PRIMARY KEY, s_name varchar(100), s_type varchar(25), s_dest varchar(128) NULL )";
    $pgdb[15] = "CREATE TABLE samslog ( s_log_id SERIAL PRIMARY KEY, s_issuer varchar(50) NOT NULL , s_date date NOT NULL, s_time time NOT NULL, s_value varchar(60) NOT NULL, s_code char(2) )";
    $pgdb[16] = "CREATE TABLE sgroup ( s_group_id SERIAL PRIMARY KEY, s_name varchar(100) )";
    $pgdb[17] = "INSERT INTO sgroup ( s_name ) VALUES( 'Administrators' )";
    $pgdb[18] = "INSERT INTO sgroup ( s_name ) VALUES( 'Users' )";
    $pgdb[19] = "CREATE TABLE reconfig ( s_proxy_id int, s_service varchar(15), s_action varchar(10) )";
    $pgdb[20] = "CREATE TABLE squiduser ( s_user_id SERIAL PRIMARY KEY, \ns_group_id int, \ns_shablon_id int, \ns_nick varchar(50), \ns_family varchar(50), \ns_name varchar(50), \ns_soname varchar(50), \ns_domain varchar(50), \ns_quote int NOT NULL default '0', \ns_size bigint NOT NULL default '0', \ns_hit bigint NOT NULL default '0', \ns_enabled smallint, \ns_ip char (15), \ns_passwd varchar(20), \ns_gauditor smallint default '0', \ns_autherrorc smallint default '0', \ns_autherrort varchar(16) default '0', \ns_webaccess varchar(16) default 'W')";
    $pgdb[21] = "CREATE TABLE url (  s_url_id SERIAL PRIMARY KEY, s_redirect_id int, s_url varchar(132) )";
    $pgdb[22] = "CREATE TABLE squidcache (  s_cache_id SERIAL PRIMARY KEY, s_proxy_id int, s_date  date NOT NULL default '1980-01-01', s_time time NOT NULL default '00:00:00', s_user varchar(50), s_domain varchar(50), s_size int NOT NULL default '0', s_hit int NOT NULL default '0', s_ipaddr varchar(15), s_period int NOT NULL default '0', s_method varchar(15), s_url varchar(1024) )";
    $pgdb[23] = "CREATE TABLE cachesum (  s_proxy_id int NOT NULL, s_date date NOT NULL default '1980-01-01', s_user varchar(50) NOT NULL, s_domain varchar(50), \ns_size bigint NOT NULL default '0', \ns_hit bigint NOT NULL default '0') ";
    $pgdb[24] = "CREATE INDEX idx_squidcache on squidcache ( s_user, s_proxy_id )";
    $pgdb[25] = "CREATE UNIQUE INDEX idx_cachesum on cachesum ( s_proxy_id, s_date, s_user, s_domain )";
    $pgdb[26] = "CREATE INDEX idx_squiduser on squiduser ( s_nick, s_name, s_shablon_id, s_group_id )";
    $pgdb[27] = "CREATE INDEX idx_samslog on samslog ( s_code, s_issuer )";
    $pgdb[28] = "CREATE INDEX idx_url on url ( s_redirect_id, s_url )";
    $pgdb[29] = "CREATE TABLE sysinfo ( s_row_id SERIAL PRIMARY KEY, s_proxy_id INT NOT NULL , s_name VARCHAR( 50 ) NOT NULL , s_version VARCHAR( 10 ) NOT NULL , s_author VARCHAR( 30 ) NULL DEFAULT 'anonymous', s_info VARCHAR( 1024 ) NOT NULL DEFAULT 'not available', s_date TIMESTAMP, s_status INT NOT NULL)";
    $pgdb[30] = "create table auth_param (s_auth varchar(4) default '', s_param varchar(50) default '', s_value varchar(100) default '')";
    $pgdb[31] = "INSERT INTO auth_param VALUES('ntlm', 'enabled', '0')";
    $pgdb[32] = "INSERT INTO auth_param VALUES('ldap', 'enabled', '0')";
    $pgdb[33] = "INSERT INTO auth_param VALUES('adld', 'enabled', '0')";
    $pgdb[34] = "INSERT INTO auth_param VALUES('ncsa', 'enabled', '0')";
    $pgdb[35] = "INSERT INTO auth_param VALUES('ip', 'enabled', '1')";
    $pgdb[36] = "CREATE TABLE delaypool (s_pool_id SERIAL PRIMARY KEY, s_name varchar(50), s_class int NOT NULL,\ns_agg1 int NOT NULL default '-1', s_agg2 int NOT NULL default '-1',\ns_net1 int NOT NULL default '-1', s_net2 int NOT NULL default '-1',\ns_ind1 int NOT NULL default '-1', s_ind2 int NOT NULL default '-1')";
    $pgdb[37] = "CREATE TABLE d_link_s (s_pool_id int NOT NULL, s_shablon_id int NOT NULL, s_negative int)";
    $pgdb[38] = "CREATE TABLE d_link_t (s_pool_id int NOT NULL, s_trange_id int NOT NULL, s_negative int)";
    $pgdb[39] = "CREATE TABLE d_link_r (s_pool_id int NOT NULL, s_redirect_id int NOT NULL, s_negative int)";
    $pgdb[40] = "INSERT INTO auth_param VALUES('ldap','ldapserver','127.0.0.1')";
    $pgdb[41] = "INSERT INTO auth_param VALUES('ldap','basedn','dc=example,dc=com')";
    $pgdb[42] = "INSERT INTO auth_param VALUES('ldap','adadmin','cn=Manager,dc=example,dc=com')";
    $pgdb[43] = "INSERT INTO auth_param VALUES('ldap','adadminpasswd','secret')";
    $pgdb[44] = "INSERT INTO auth_param VALUES('ldap','usersrdn','ou=People')";
    $pgdb[45] = "INSERT INTO auth_param VALUES('ldap','usersfilter','(objectClass=Person)')";
    $pgdb[46] = "INSERT INTO auth_param VALUES('ldap','usernameattr','gecos')";
    $pgdb[47] = "INSERT INTO auth_param VALUES('ldap','groupsrdn','ou=Group')";
    $pgdb[48] = "INSERT INTO auth_param VALUES('ldap','groupsfilter','(objectClass=posixGroup)')";
    echo "<h2>db:{$db}</h2>";
    $crpasswd = crypt("qwerty", "00");
    if ($db == "unixODBC") {
        $sDB = new CREATESAMSDB($db, $odbc, $host, $user, $passwd, $dbname, $odbcsource);
        echo "<TABLE WIDTH=95%>";
        for ($i = 0; $i < count($pgdb); $i++) {
            $result = $sDB->samsdb_query("{$pgdb[$i]};");
            if ($result == 0) {
                echo "<TR><TD VALIGN=TOP WIDTH=5%>{$i}: <TD><FONT SIZE=-1>{$pgdb[$i]}</FONT>\n";
                echo "<TD VALIGN=TOP><FONT COLOR=RED>ERROR</FONT>\n";
            }
            //		else
            //			echo "<TD VALIGN=TOP><B>Ok</B>\n";
        }
        echo "</TABLE>";
    }
    if ($db == "MySQL" && ($odbc == 0 || $odbc == "No")) {
        $charset = "ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin";
        $link = @mysql_connect($host, $user, $passwd) || die(mysql_error());
        if ($link && mysql_select_db($dbname) == FALSE) {
            echo "Create database {$dbname}<BR>";
            $result = mysql_query("CREATE DATABASE {$dbname}  CHARACTER SET utf8 COLLATE utf8_general_ci") or die("Invalid query: " . mysql_error());
            echo "Database {$dbname} Created<BR>";
        } else {
            echo "Database {$dbname} is created<BR>\n";
        }
        $sDB = new CREATESAMSDB($db, $odbc, $host, $user, $passwd, $dbname, $odbcsource);
        $sDB->mysqldb_connect($host, $user, $passwd, $dbname);
        echo "<TABLE WIDTH=95%>";
        for ($i = 0; $i < count($pgdb); $i++) {
            if (strstr($pgdb[$i], "CREATE TABLE") != FALSE) {
                $result = $sDB->samsdb_query("{$pgdb[$i]} {$charset};");
            } else {
                $result = $sDB->samsdb_query("{$pgdb[$i]};");
            }
            if ($result == 0) {
                echo "<TR><TD VALIGN=TOP WIDTH=5%>{$i}: <TD><FONT SIZE=-1>{$pgdb[$i]}</FONT>\n";
                echo "<TD VALIGN=TOP><FONT COLOR=RED>ERROR</FONT>\n";
            }
            //		else
            //			echo "<TD VALIGN=TOP><B>Ok</B>\n";
        }
        echo "</TABLE>";
        $sDB->samsdb_query("UPDATE passwd SET s_pass='******' WHERE s_user='******' ");
        if ($create == "on") {
            $sDB->samsdb_query("GRANT ALL ON {$dbname}.* TO {$muser} IDENTIFIED BY '{$mpass}' ");
        }
    }
    if ($db == "PostgreSQL" && $odbc == 0) {
        $sDB = new CREATESAMSDB("PostgreSQL", "0", $host, $user, $passwd, $dbname, $odbcsource);
        $sDB->pgsqldb_connect($host, $user, $passwd, $dbname);
        //ENCODING = 'UTF8'
        echo "<TABLE WIDTH=95%>";
        for ($i = 0; $i < count($pgdb); $i++) {
            $result = $sDB->samsdb_query("{$pgdb[$i]};");
            if ($result == 0) {
                echo "<TR><TD VALIGN=TOP WIDTH=5%>{$i}: <TD><FONT SIZE=-1>{$pgdb[$i]}</FONT>\n";
                echo "<TD VALIGN=TOP><FONT COLOR=RED>ERROR</FONT>\n";
            }
            //		else
            //			echo "<TD VALIGN=TOP><B>Ok</B>\n";
        }
        echo "</TABLE>";
    }
    print "<INPUT TYPE=\"HIDDEN\" NAME=\"step\" value=\"5\">\n";
    printf("<BR><CENTER>");
}