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 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>"); }