commit d3b0130655acd2e95bd4e3add14a05d38f662f95 Author: Christoph Haas Date: Mon Jul 16 19:30:19 2012 +0000 VPN-Management-GUI 2.0.3 porting start diff --git a/.project b/.project new file mode 100644 index 0000000..dee727b --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + vpnmanager + + + + + + + + diff --git a/Admin/Modules/Home/img/openvpn.png b/Admin/Modules/Home/img/openvpn.png new file mode 100755 index 0000000..517589b Binary files /dev/null and b/Admin/Modules/Home/img/openvpn.png differ diff --git a/Admin/Modules/Home/img/tux.png b/Admin/Modules/Home/img/tux.png new file mode 100755 index 0000000..0756cc7 Binary files /dev/null and b/Admin/Modules/Home/img/tux.png differ diff --git a/Admin/Modules/Home/index.php b/Admin/Modules/Home/index.php new file mode 100755 index 0000000..6a9843a --- /dev/null +++ b/Admin/Modules/Home/index.php @@ -0,0 +1,30 @@ + + +

Administration Center

+ + + + + +
+

Actions:

+ +

# ".$modtitle."

+ "; + } +?> +

# PhpMyAdmin

+
+ +
+ diff --git a/Admin/Modules/Logviewer/index.php b/Admin/Modules/Logviewer/index.php new file mode 100755 index 0000000..218a0cc --- /dev/null +++ b/Admin/Modules/Logviewer/index.php @@ -0,0 +1,171 @@ +"; + exit; + } + + $sort = mysql_real_escape_string($_POST["dirsort"]); //$_GET["sort"]; + $by = mysql_real_escape_string($_POST["sortby"]); //$_GET["by"]; + $table = mysql_real_escape_string($_POST["table"]); //$_GET["table"]; + $client= mysql_real_escape_string($_POST["client"]); + +?> + + +
+
+ + + + + +Search Client: +
+ + +"; + if($table=='connections') + { + echo "\n"; + } + else if($table=='month') + { + echo "\n"; + } + else if($table=='year') + { + echo "\n"; + } + else + { + } +// ------------------------------------------------ Mysql lesen + if ($result) + { + while ($ar=mysql_fetch_array($result,MYSQL_ASSOC)) + { + if($ar["sent"]>1024) + { + $sentbytes = round($ar["sent"]/1024,2) . " KiB"; + if($ar["sent"]>1048576) + { + $sentbytes = round($ar["sent"]/1024/1024,2) . " MiB"; + if($ar["sent"]>1073741824) + { + $sentbytes = round($ar["sent"]/1024/1024/1024,2) . " GiB"; + } + } + } + else + { + $sentbytes = $ar["sent"]. " Byte"; + } + + if($ar["received"]>1024) + { + $receivedbytes = round($ar["received"]/1024,2) . " KiB"; + if($ar["received"]>1048576) + { + $receivedbytes = round($ar["received"]/1024/1024,2) . " MiB"; + if($ar["received"]>1073741824) + { + $receivedbytes = round($ar["received"]/1024/1024/1024,2) . " GiB"; + } + } + } + else + { + $receivedbytes = $ar["received"]. " Byte"; + } + + if($table=='connections') + { + if($ar["stop"] != 0) + { + $stop = date("r",$ar["stop"]); + } + else + { + $stop = "running session"; + } + + if($client == "" || $ar["client"] == $client) + { + echo "\n"; + } + } + else if($table=='month') + { + $hour = floor($ar["time"]/3600); + $min = floor($ar["time"]/60 - $hour *60); + $sec = $ar["time"]-$hour*3600-$min*60; + $timestring = $hour .":". $min .":". $sec; + + if($client == "" || $ar["client"] == $client) + { + echo "\n"; + } + } + else if($table=='year') + { + $hour = floor($ar["time"]/3600); + $min = floor($ar["time"]/60 - $hour *60); + $sec = $ar["time"]-$hour*3600-$min*60; + $timestring = $hour .":". $min .":". $sec; + + if($client == "" || $ar["client"] == $client) + { + echo "\n"; + } + } + else + { + } + } + } + else + { + echo "
"; + } + echo "
Start TimeStop TimeClient NameClient IPDownload + Upload
MonthYearConnection TimeClient NameDownload + Upload
YearConnection TimeClient NameDownload + Upload
",date("r",$ar["start"]),"",$stop,"",$ar["client"], + "",$ar["ip"], + "",$sentbytes, + "",$receivedbytes, + "
",$ar["month"],"",$ar["year"],"",$timestring, + "",$ar["client"], + "",$sentbytes,"",$receivedbytes, + "
",$ar["year"],"",$timestring, + "",$ar["client"], + "",$sentbytes,"",$receivedbytes, + "
"; + mysql_close(); +?> + diff --git a/Admin/Modules/Munin/index.php b/Admin/Modules/Munin/index.php new file mode 100755 index 0000000..2fc02d6 --- /dev/null +++ b/Admin/Modules/Munin/index.php @@ -0,0 +1,10 @@ + + diff --git a/Admin/Modules/Settings/change.php b/Admin/Modules/Settings/change.php new file mode 100644 index 0000000..e6a5bad --- /dev/null +++ b/Admin/Modules/Settings/change.php @@ -0,0 +1,42 @@ +FAIL]
"); +} + +if(is_null($_REQUEST["withsquid"])) +{ + $_REQUEST["withsquid"] = "0"; +} +if(is_null($_REQUEST["withmail"])) +{ + $_REQUEST["withmail"] = "0"; +} +if(is_null($_REQUEST["withusersquid"])) +{ + $_REQUEST["withusersquid"] = "0"; +} + +// Daten eintragen +while (list ($attr, $value) = each ($_REQUEST)) +{ + if($attr != "path") + { + // SQL-Anweisung erstellen + $sql = "UPDATE ". + "config SET value='".mysql_real_escape_string($value)."' WHERE attr = '".mysql_real_escape_string($attr)."'"; + mysql_query ($sql); + } +} + + +header ("Location: ".$moduleurl."&uebergabe=1"); + +?> diff --git a/Admin/Modules/Settings/index.php b/Admin/Modules/Settings/index.php new file mode 100755 index 0000000..eb1894c --- /dev/null +++ b/Admin/Modules/Settings/index.php @@ -0,0 +1,242 @@ + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } +} +$url = $moduleurl; +include ($_SERVER["DOCUMENT_ROOT"]."/Site/checkadmin.php"); +$status = $_REQUEST["uebergabe"]; +?> + +

Settings

+Settings saved successfully!"; + break; + case 2: + echo "Domain ACL saved successfully!"; + break; + case 3: + echo "Blocked Client ACL saved successfully!"; + break; + case 4: + echo "Allowed Client ACL saved successfully!"; + break; + default: + break; +} + +echo " +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "; + if(db_getconfval("withmail")=="1") + { + echo" + + + + + + + + + + + + "; + } + echo" + + + + + + + + "; + if(db_getconfval("withsquid")=="1") + { + echo" + + + + + + + + + "; + } + echo" +
Sitename: +
Sitesubname +
Siteinfo (Header Marquee) +
Theme: + +
OpenVPN Config Directory (WITHOUT ending /): +
OpenVPN Config File Name: +
OpenVPN Key Directory (WITHOUT ending /): +
OpenVPN Additional Download Directory (e.g. for client.ovpn, ca.crt, readme ...) (WITHOUT ending /):
Download Directory (for Explorer, WITHOUT ending /): +
Enable Mail Support:
SMTP Server: +
SMTP User: +
SMTP Password: +
SMTP Sender Mail-Address: +
Enable Squid Repair:
Enable Squid Support:
SQUID Config Directory (WITHOUT ending /): +
SQUID Config File Name: +
SQUID Dynamic Directory (WIHTOUT ending /): +
+ + +
"; + + if(db_getconfval("withsquid")=="1") + { + echo" +
+
+
+

Squid Domain ACL (blocked Domains):

+
+ + + +
"; + + echo " +
+
+

Squid Client ACL (blocked Clients):

+
+ + + +
"; + + echo " +
+
+

Squid Client ACL (allowed Clients):

+
+ + + +
"; + + if ($_REQUEST["submit"] == "Speichern") + { + $fp = fopen(db_getconfval("sqdir")."/denied_domains.acl","w"); + $data =$_REQUEST["inhalt"]; + $data = str_replace("\r","",$data); + exec("touch /var/vpn/squid_restart"); + fputs($fp,$data); + fclose($fp); + + echo ""; + } + + if ($_REQUEST["submitc"] == "Speichern") + { + $fp = fopen(db_getconfval("sqdir")."/denied_clients.acl","w"); + $data =$_REQUEST["inhaltc"]; + $data = str_replace("\r","",$data); + exec("touch /var/vpn/squid_restart"); + fputs($fp,$data); + fclose($fp); + + echo ""; + } + + if ($_REQUEST["submita"] == "Speichern") + { + $fp = fopen(db_getconfval("sqdir")."/allowed_clients.acl","w"); + $data =$_REQUEST["inhalta"]; + $data = str_replace("\r","",$data); + exec("touch /var/vpn/squid_restart"); + fputs($fp,$data); + fclose($fp); + + echo ""; + } + } +?> diff --git a/Admin/Modules/Squid/changesquid.php b/Admin/Modules/Squid/changesquid.php new file mode 100755 index 0000000..8563fdc --- /dev/null +++ b/Admin/Modules/Squid/changesquid.php @@ -0,0 +1,14 @@ + diff --git a/Admin/Modules/Squid/delbl.php b/Admin/Modules/Squid/delbl.php new file mode 100755 index 0000000..8265214 --- /dev/null +++ b/Admin/Modules/Squid/delbl.php @@ -0,0 +1,9 @@ + ".db_getconfval("sqddir")."/blacklist"); +echo $ret; +header ("Location: ".$path."&uebergabe=1&uebergabe2=2"); +?> diff --git a/Admin/Modules/Squid/include/config.inc b/Admin/Modules/Squid/include/config.inc new file mode 100755 index 0000000..89ed528 --- /dev/null +++ b/Admin/Modules/Squid/include/config.inc @@ -0,0 +1,66 @@ + diff --git a/Admin/Modules/Squid/include/functions.inc b/Admin/Modules/Squid/include/functions.inc new file mode 100755 index 0000000..870fa96 --- /dev/null +++ b/Admin/Modules/Squid/include/functions.inc @@ -0,0 +1,251 @@ + $PluginData) + { + // Check if the config.inc for a plugin exists + if (file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/config.inc")) + { + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/config.inc"); + + // Check if claimed inc files do exist + if (isset ($config['Plugins'][$PluginName]['Action']['Include']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Action']['Include'])) + $config['Plugins'][$PluginName]['Action']['Include'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Menu']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Left']['Menu'])) + $config['Plugins'][$PluginName]['Left']['Menu'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Status']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Left']['Status'])) + $config['Plugins'][$PluginName]['Left']['Status'] = NULL; + } + } + } +} + +// ---------------------------------------------- +function seconds_string ($seconds, $periods = null) +{ + $Wanted = ''; + + // Define time periods + if (!is_array ($periods)) + { + $periods = array ( + 'years' => 31556926, + 'months' => 2629743, + 'weeks' => 604800, + 'days' => 86400, + 'hours' => 3600, + 'minutes' => 60, + 'seconds' => 1 + ); + } + + // Wanted + if (empty ($seconds)) + { $Wanted = ''; } + else + { + // Loop + $seconds = (int) $seconds; + foreach ($periods as $period => $value) + { + $count = floor ($seconds / $value); + + if ($count == 0) + continue; + elseif ($count == 1) + $Wanted .= ($count . ' ' . substr ($period, 0, strlen ($period) - 1) . ' '); + else + $Wanted .= ($count . ' ' . $period . ' '); + + $seconds = $seconds % $value; + } + } + + return rtrim ($Wanted); +} + +// ---------------------------------------------- +function chomp (&$string) +{ + if (is_array ($string)) + { + foreach ($string as $i => $val) + { $endchar = chomp ($string[$i]); } + } + else + { + $endchar = substr ("$string", strlen("$string") - 1, 1); + if ($endchar == "\n") + { $string = substr ("$string", 0, -1); } + } + return $endchar; +} + +// ---------------------------------------------- +function str_strip_spaces ($aline) +{ + while (strpos ($aline, "\t") != FALSE) $aline = str_replace ("\t", ' ', $aline); + while (strpos ($aline, ' ') != FALSE) $aline = str_replace (' ', ' ', $aline); + + return $aline; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_file_fullname ($apath, $afile) +{ + if (substr ($afile, 0, 1) != '/') + $afile = ($apath . $afile); + + return $afile; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_openssldata_to_string ($adata) +{ + $Return = ''; + $amonth = array ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); + + if (substr ($adata, -1, 1) == 'Z') + { + $Return = sprintf ("%s %d %s%02d, %02d:%02d:%02d", + $amonth [substr ($adata, 2, 2) - 1], + substr ($adata, 4, 2), + (substr ($adata, 0, 2) > 50 ? '19' : '20'), + substr ($adata, 0, 2), + substr ($adata, 6, 2), + substr ($adata, 8, 2), + substr ($adata, 10, 2)); + } + + return $Return; +} + +// ---------------------------------------------- +function str_get_sometag ($aline, $sometag) +{ + if (eregi ($sometag, $aline, $anarray)) + return $anarray[1]; + else + return ''; +} + +// ---------------------------------------------- +// Writes content into file +// Optionally sames old file into backup file. +// The Backup File has to reside on the same partition! +function writefile ($afile, $adata, $abackup = NULL) +{ + // Move the old file into Backup one + if ($abackup != NULL) + { + if (file_exists ($afile)) + { + if (file_exists ($abackup)) + if (!unlink ($abackup)) + exit; + if (!rename ($afile, $abackup)) + exit; + } + } + + $fp = fopen ($afile, "w", 0); + if (!$fp) + exit; + + fputs ($fp, $adata); + fclose ($fp); +} + + +// ---------------------------------------------- +// Guess the full file name +function if_file_exists (&$sFileName, $bFix = FALSE) +{ + global $config; + + if (strpos ($sFileName, '/') == FALSE) + { + $sLongFileName = $config['openvpn']['folder'] . $sFileName; + if (file_exists ($sLongFileName) && $bFix) + $sFileName = $sLongFileName; + } + + return file_exists ($sFileName); +} + +// ---------------------------------------------- +function zlib_check_functions () +{ + $Result = ''; + $ZLibs = array + ( + 'gzcompress' + ); + + foreach ($ZLibs as $Function) + { + $Result .= $Function . ': ' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function html_dump ($aname, $athing) +{ + echo '
'. $aname .': ';
+ print_r ($athing);
+ echo "

\n"; +} + +// ---------------------------------------------- +function html_error ($amessage, $ifexit = true) +{ + global $config; + echo $amessage; + if ($ifexit) + exit; +} + +// ---------------------------------------------- +function html_postredir ($url) +{ + header ('HTTP/1.1 303 REDIRECT'); + header ('Location: '. $url); +#header ('Status: 303'); // if 1st header generates 500, then commend it out and use this one as 2nd +} + +// ---------------------------------------------- +// ---------------------------------------------- +function html_download ($sFile, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + readfile ($sFile); +} + +// ---------------------------------------------- +function html_download_data ($sData, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + echo $sData; +} +?> diff --git a/Admin/Modules/Squid/include/openssl-functions.inc b/Admin/Modules/Squid/include/openssl-functions.inc new file mode 100755 index 0000000..a10701a --- /dev/null +++ b/Admin/Modules/Squid/include/openssl-functions.inc @@ -0,0 +1,377 @@ +: ' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function openssl_load_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $linetokens = explode ("\t", $line); + + // Ensure that all the fields are set + if (count ($linetokens) == 6) + { + // Decode the openssl's database. See apps/apps.h + $openssl['Database'][] = array ('Status' => $linetokens[0], + 'ExpDate' => $linetokens[1], + 'RevDate' => $linetokens[2], + 'Serial' => $linetokens[3], + 'File' => $linetokens[4], + 'Name' => $linetokens[5], + 'Country' => openssl_get_country ($linetokens[5]), + 'State' => openssl_get_state ($linetokens[5]), + 'City' => openssl_get_city ($linetokens[5]), + 'Company' => openssl_get_company ($linetokens[5]), + 'Department' => openssl_get_department ($linetokens[5]), + 'CN' => openssl_get_CN ($linetokens[5]), + 'Email' => openssl_get_email ($linetokens[5]) + ); + } + } +} + +// ---------------------------------------------- +function openssl_write_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + + $atext = ''; + for ($i = 0; $i < count ($openssl['Database']); $i++) + { + $atext .= ($atext == '' ? '' : "\n"); + $atext .= $openssl['Database'][$i]['Status'] ."\t". + $openssl['Database'][$i]['ExpDate'] ."\t". + $openssl['Database'][$i]['RevDate'] ."\t". + $openssl['Database'][$i]['Serial'] ."\t". + $openssl['Database'][$i]['File'] ."\t". + $openssl['Database'][$i]['Name']; + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +function openssl_write_database_attr ($atext = '', $afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile) .'.attr'; + $atext = ($atext == '' ? "unique_subject = yes\n" : $atext); + + if (file_exists ($afile)) + { + ob_start (); + readfile ($afile); + $atext = ob_get_contents (); + ob_end_clean (); + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +// Returns the PEM file with spaces reduced and replaced to   +function openssl_load_cert ($anid) +{ + global $config; + + do + { + $lines = file ($config['openssl']['pubfolder'] . $anid . '.pem'); + + if (!is_array ($lines)) + { + $Return = ''; + break; + } + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $Return[] = str_replace (' ', ' ', htmlspecialchars (str_replace (' ', ' ', $line))); + } + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_load_serial ($afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + $Return = sscanf ($lines[0], "%X"); + + return $Return[0]; +} + +// ---------------------------------------------- +function openssl_write_serial ($iNumber, $afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + writefile ($afile, openssl_hex_serial ($iNumber) . "\n", $afile .'.old'); +} + +// ---------------------------------------------- +// Supports up to 999,999 serials +function openssl_hex_serial ($iNumber) +{ + if ($iNumber < 100) + $sString = sprintf ("%02X", $iNumber); + elseif ($iNumber < 10000) + $sString = sprintf ("%04X", $iNumber); + else + $sString = sprintf ("%06X", $iNumber); + + return $sString; +} + +// ---------------------------------------------- +// Builds User Private Key, CSR and Public Certificate +function openssl_build_key (&$anoutput, $adn, $validdays = NULL) +{ + global $config; + global $openssl; + + $anoutput = ''; + $Return = FALSE; + + // Allow to override default value + $validdays = ($validdays == NULL ? $config['openssl']['default']['expiration'] : $validdays); + + do + { + if (!isset ($adn) || + !isset ($adn['countryName']) || + !isset ($adn['stateOrProvinceName']) || + !isset ($adn['localityName']) || + !isset ($adn['organizationName']) || + !isset ($adn['organizationalUnitName']) || + !isset ($adn['commonName']) || + !isset ($adn['emailAddress']) + ) + { $anoutput .= "- ERROR on ". __LINE__ ." line: incomplete DN information\n"; break; } + $anoutput .= "+ OK got the valid input\n"; + + // Get the new User Private Key + $UserPrivKey = openssl_pkey_new (array($config['openssl']['config'],0)); + if ($UserPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_new):\n ". openssl_error_strings () ." (that might usually mean that the openssl.cnf file is unavailable)"; break; } + $anoutput .= "+ OK got the User Private Key\n"; + + // Generate the User Certificate Request + $UserReq = openssl_csr_new ($adn, + $UserPrivKey, + $config['openssl']['config']); + if ($UserReq == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 4) ." line (openssl_csr_new):\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK generated the User Certificate Request\n"; + + // Read the openssl serial + $CAserial = openssl_load_serial ($config['openssl']['serial']); + $anoutput .= "+ OK read current openssl serial (". openssl_hex_serial ($CAserial) .")\n"; + + $UserPubCertFile = $config['openssl']['pubfolder'] . openssl_hex_serial ($CAserial) .'.pem'; + $UserCertReqFile = $config['openssl']['reqfolder'] . openssl_hex_serial ($CAserial) .'.csr'; + $UserPrivKeyFile = $config['openssl']['prvfolder'] . openssl_hex_serial ($CAserial) .'.key'; + + // Read the openssl database + openssl_load_database ($config['openssl']['database']); + $anoutput .= "+ OK read the openssl database (". count ($openssl['Database']) ." items)\n"; + + // Get CA's Private Key + $CAPrivKey = openssl_pkey_get_private ($config['openssl']['CA']['priv']); + + if ($CAPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_get_private)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK read the CA Private Key\n"; + + // Get a CA-signed cert that lasts for 1 year + $UserPubCert = openssl_csr_sign ($UserReq, + $config['openssl']['CA']['pub'], + $CAPrivKey, + $validdays, + $config['openssl']['config'], + $CAserial); + if ($UserPubCert == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 7) ." line (openssl_csr_sign)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK signed the User Certificate Request with CA Private Key\n"; + + // Add the new row into openssl database + $openssl['Database'][] = array ('Status' => 'V', + 'ExpDate' => date ('ymdHis', + time() + + date ('Z') + + ($validdays * 24 * 60 * 60)) .'Z', + 'RevDate' => '', + 'Serial' => openssl_hex_serial ($CAserial), + 'File' => openssl_hex_serial ($CAserial) .'.crt', + 'Name' => openssl_make_name ($adn) + ); + + // Create files + + $OldUMask = umask (0007); + + // Write User Private Key + if (!openssl_pkey_export_to_file ($UserPrivKey, $UserPrivKeyFile, NULL, $config['openssl']['config'])) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_pkey_export_to_file)\n ". openssl_error_strings () ." (That might mean that the key folder is not write enabled for www user)"; break; } + $anoutput .= "+ OK wrote User Private Key into file $UserPrivKeyFile\n"; + + // Write User Public Certificate + if (!openssl_x509_export_to_file ($UserPubCert, $UserPubCertFile, FALSE)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_x509_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Public Certificate into file $UserPubCertFile\n"; + + // Write User Certificate Request + if (!openssl_csr_export_to_file ($UserReq, $UserCertReqFile)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_csr_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Certificate Request into file $UserCertReqFile\n"; + + // Write new openssl database + openssl_write_database ($config['openssl']['database']); + openssl_write_database_attr ('', $config['openssl']['database']); + $anoutput .= "+ OK wrote new openssl database\n"; + + // Write new openssl serial + openssl_write_serial ($CAserial + 1, $config['openssl']['serial']); + $anoutput .= "+ OK wrote new openssl serial\n"; + + umask ($OldUMask); + + $Return = openssl_hex_serial ($CAserial); + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_error_strings () +{ + $sString = ''; + while ($msg = openssl_error_string ()) + $sString .= $msg ."\n"; + + return $sString; +} + +// ---------------------------------------------- +function openssl_make_name ($adn) +{ + $sString = ''; + + if (strlen ($adn['countryName']) > 0) $sString .= '/C=' . $adn['countryName']; + if (strlen ($adn['stateOrProvinceName']) > 0) $sString .= '/ST=' . $adn['stateOrProvinceName']; + if (strlen ($adn['localityName']) > 0) $sString .= '/L=' . $adn['localityName']; + if (strlen ($adn['organizationName']) > 0) $sString .= '/O=' . $adn['organizationName']; + if (strlen ($adn['organizationalUnitName']) > 0) $sString .= '/OU=' . $adn['organizationalUnitName']; + if (strlen ($adn['commonName']) > 0) $sString .= '/CN=' . $adn['commonName']; + if (strlen ($adn['emailAddress']) > 0) $sString .= '/emailAddress='. $adn['emailAddress']; + + return $sString; +} + +// ---------------------------------------------- +function openssl_get_country ($aline) +{ return str_get_sometag ($aline . '/', '\/C=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_state ($aline) +{ return str_get_sometag ($aline . '/', '\/ST=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_city ($aline) +{ return str_get_sometag ($aline . '/', '\/L=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_company ($aline) +{ return str_get_sometag ($aline . '/', '\/O=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_department ($aline) +{ return str_get_sometag ($aline . '/', '\/OU=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_CN ($aline) +{ return str_get_sometag ($aline . '/', '\/CN=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_email ($aline) +{ return str_get_sometag ($aline . '/', '\/emailAddress=([^/]*)\/'); } + +// ---------------------------------------------- +// Guess the full file name +function openssl_get_filename ($iSerial, $sExt) +{ + global $config; + + $sReturn = $config['openssl']['folder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['pubfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['reqfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['prvfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = ''; + } + } + } + } + + return $sReturn; +} + + +?> diff --git a/Admin/Modules/Squid/include/restartsquid.php b/Admin/Modules/Squid/include/restartsquid.php new file mode 100755 index 0000000..2f8e2b4 --- /dev/null +++ b/Admin/Modules/Squid/include/restartsquid.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/Squid/include/startsquid.php b/Admin/Modules/Squid/include/startsquid.php new file mode 100755 index 0000000..29c59d1 --- /dev/null +++ b/Admin/Modules/Squid/include/startsquid.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/Squid/include/stopsquid.php b/Admin/Modules/Squid/include/stopsquid.php new file mode 100755 index 0000000..6398d38 --- /dev/null +++ b/Admin/Modules/Squid/include/stopsquid.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/Squid/index.php b/Admin/Modules/Squid/index.php new file mode 100755 index 0000000..0e26f59 --- /dev/null +++ b/Admin/Modules/Squid/index.php @@ -0,0 +1,45 @@ + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } +} + +$mode = $_REQUEST["uebergabe"]; +$status = $_REQUEST["uebergabe2"]; + +echo"

Home + | Config + | Logviewer



"; +switch($status) +{ + default: + break; +} + +switch($mode) +{ + case 1: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/Squid/index_config.php"); + break; + case 2: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/Squid/index_log.php"); + break; + default: + echo"

Squid Management

+

Choose an action:

+

# Config

+

# Logviewer


"; + break; +} +?> diff --git a/Admin/Modules/Squid/index_config.php b/Admin/Modules/Squid/index_config.php new file mode 100755 index 0000000..37f692d --- /dev/null +++ b/Admin/Modules/Squid/index_config.php @@ -0,0 +1,297 @@ +"; + exit; +} + $sort = mysql_real_escape_string($_POST["dirsort"]); //$_GET["sort"]; + $by = mysql_real_escape_string($_POST["sortby"]); //$_GET["by"]; + $userid = mysql_real_escape_string($_POST["userid"]); //$_GET["userid"]; + $search = mysql_real_escape_string($_POST["search"]); //$_GET["search"]; + +$moduleurl = $_SERVER["REQUEST_URI"]; +$urlcut = strpos($moduleurl, "&"); +$moduleurl = substr($moduleurl,0,$urlcut); +?> + +

Squid Config

+Squid is currently: running
"; +} +else +{ + echo "Squid is currently: stopped
"; +} + + if ($_REQUEST["uebergabe2"]=="3") + { + echo "Squid restarted successfully!"; + echo ""; + } + if ($_REQUEST["uebergabe2"]=="4") + { + echo "Squid started successfully!"; + echo ""; + } + if ($_REQUEST["uebergabe2"]=="5") + { + echo "Squid stopped successfully!"; + echo ""; + } + ?> + + + + + + + + + "; + } +?> + + + + + + "; + } +?> + +
+
+ + +
+
+
+

Change Proxy Account:

+Changed Squid Account successfully!"; + } + ?> +
+

+

+ Squid ID (HEX): + + + +
+

+

+Current Squid User: + 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, + 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 'A', + 11 => 'B', 12 => 'C', 13 => 'D', 14 => 'E', + 15 => 'F' ); + + do + { + $h = $hex[($dec%16)] . $h; + $dec /= 16; + } + while( $dec >= 1 ); + + return $sign . $h; +} + + $zeile = exec(escapeshellcmd("cat ".db_getconfval("sqddir")."/vpnid")); + $zeile = dec_to_hex($zeile); + //echo $zeile; + if(strlen ($zeile) <2) + { + $zeile = "0".$zeile; + } + if(strlen ($zeile) >2) + { + $zeile=substr($zeile, 0, -1); + } + @$y = mysql_connect($MYSQL_HOST,$MYSQL_USER,$MYSQL_PASS); + @$x = mysql_select_db($MYSQL_DATABASE); + if (empty($x)) + { + echo "ERROR 0x01, Failed to connect to database!
"; + exit; + } + $sql4 = "SELECT * FROM userdata WHERE VPNId = '".$zeile."';"; + $result4 = mysql_query($sql4); + //echo $sql4; + $ar4=mysql_fetch_array($result4,MYSQL_ASSOC); + echo "" . $ar4["Vorname"] . " " . $ar4["Nachname"] . " VPNId: " . $ar4["VPNId"].""; + mysql_close(); +?> +

+
+ + +

Blacklisted Accounts:

+Blacklist cleared successfully!"; + } + ?> + + +"; + exit; + } + + $hascontent = true; + if (strlen($zeile) >2) + { + $zeile=substr($zeile, 0, -1); + } + $sql3 = "SELECT * FROM userdata WHERE VPNId = '".$zeile."';"; + $result3 = mysql_query($sql3); + $ar3=mysql_fetch_array($result3,MYSQL_ASSOC); + $nick = $ar3["Nickname"]; + if($nick == "") + $hascontent=false; + $vor = $ar3["Vorname"]; + if($vor == "") + $hascontent=false; + $nach = $ar3["Nachname"]; + if($nach == "") + $hascontent=false; + + if($hascontent == true) + { + $blindex = $blindex+1; + echo ""; + } + mysql_close(); + } + +?> +
Squid IDNicknameVornameNachname
".$zeile."".$nick."".$vor."".$nach."
+

Blacklisted accounts: + + out of: + '; + elseif (count($openssl['Database'])-1 == 1) + { + echo '1 certificate'; + } + elseif (count($openssl['Database'])-1 > 1) + { + echo ''; + echo count($openssl['Database'])-1; + echo ' certificates'; + }?> +

+

+

+ + +
+

+
+ +

User changed Proxy Accounts:

+ +
+ + +Search User: +
+ + +"; + exit; + } + // MYsql befehl basteln + + + if($by == "Nickname") + { + $sql = "SELECT * FROM proxyrepair;"; + } + else + { + $sql = "SELECT * FROM proxyrepair ORDER BY $by $sort;"; + } + + $result = mysql_query($sql); + echo "
"; + echo "\n"; +// ------------------------------------------------ Mysql lesen + if ($result) + { + while ($ar=mysql_fetch_array($result,MYSQL_ASSOC)) + { + + $sql = "SELECT * FROM userdata WHERE Id = '".$ar["Id"]."' AND (Nickname LIKE '%".$search."%' OR Vorname LIKE '%".$search."%' OR Id LIKE '%".$search."%' OR VPNId LIKE '%".$search."%');"; + $result2 = mysql_query($sql); + $ar2=mysql_fetch_array($result2,MYSQL_ASSOC); + + if($ar2["Nickname"] != "") + echo "\n"; + } + } + else + { + echo "
"; + } + echo "
User IDVPN IdNicknameVornameNachnameClient IPTimeDead VPN ID
",$ar["Id"],"",$ar["VPNId"],"",$ar2["Nickname"],"",$ar2["Vorname"],"",$ar2["Nachname"], + "", $ar["IP"],"",$ar["Time"],"",$ar["RepID"],"
"; + mysql_close(); +?> + diff --git a/Admin/Modules/Squid/index_log.php b/Admin/Modules/Squid/index_log.php new file mode 100644 index 0000000..625f00e --- /dev/null +++ b/Admin/Modules/Squid/index_log.php @@ -0,0 +1,30 @@ +"; + exit; +} + $sort = mysql_real_escape_string($_POST["dirsort"]); //$_GET["sort"]; + $by = mysql_real_escape_string($_POST["sortby"]); //$_GET["by"]; + $userid = mysql_real_escape_string($_POST["userid"]); //$_GET["userid"]; + $search = mysql_real_escape_string($_POST["search"]); //$_GET["search"]; + +$moduleurl = $_SERVER["REQUEST_URI"]; +$urlcut = strpos($moduleurl, "&"); +$moduleurl = substr($moduleurl,0,$urlcut); +?> + +

Squid Logs

+ + diff --git a/Admin/Modules/Squid/squid_dynamic/README b/Admin/Modules/Squid/squid_dynamic/README new file mode 100644 index 0000000..6f55fcd --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/README @@ -0,0 +1,3 @@ +export CPATH=..:$HOME/include:/usr/local/include:/usr/include:/usr/include/mysql +needed: libmysqlclient-dev +gcc -l mysqlclient -o traffic Traffic.c diff --git a/Admin/Modules/Squid/squid_dynamic/db.conf b/Admin/Modules/Squid/squid_dynamic/db.conf new file mode 100755 index 0000000..f902996 --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/db.conf @@ -0,0 +1,4 @@ +user: openvpn +passwd: openvpnlog +database: openvpn +host: localhost diff --git a/Admin/Modules/Squid/squid_dynamic/hexer b/Admin/Modules/Squid/squid_dynamic/hexer new file mode 100755 index 0000000..6a24092 --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/hexer @@ -0,0 +1,7 @@ +#!/bin/bash +let x=0x3f +echo $x + + +let x=0xfffe +echo $x diff --git a/Admin/Modules/Squid/squid_dynamic/squid_dyn.c b/Admin/Modules/Squid/squid_dynamic/squid_dyn.c new file mode 100644 index 0000000..6fa1665 --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/squid_dyn.c @@ -0,0 +1,134 @@ +/* OpenVPN - Squid Load Balancer* + *------------------------------* + * Version 1.0 * + * Written by Christoph Haas * + * License: LGPL * + * 12.10.2010 * + */ + +#include +#include + +#include +#include +#include +#include + +#define __MAX_LINE__ 100 +#define __MAX_FIELD__ 255 +#define false 0 +#define true 1 + + +MYSQL mysql; + +int connect_db(char *config) +{ + FILE *db_data = NULL; + regex_t reg; + char user[__MAX_LINE__] = ""; + char passwd[__MAX_LINE__] = ""; + char database[__MAX_LINE__] = ""; + char host[__MAX_LINE__] = ""; + int port = 0; + char tmp[__MAX_LINE__]; + char buf[__MAX_LINE__]; + int a, b; + int length; + + if((db_data = fopen(config, "r")) == NULL) + { + fprintf(stderr, "Can't open %s for reading.\n", config); + return false; + } + regcomp(®, "^([a-zA-Z0-9:]+)[ ][a-zA-Z0-9]+$", REG_EXTENDED | REG_NEWLINE); + while(fgets(buf, __MAX_LINE__, db_data)) + { + length = strlen(buf); + if(length < 3)continue; + if(length >= __MAX_LINE__) + { + fclose(db_data); + regfree(®); + fprintf(stderr, "To long line in config file.\n"); + return false; + } + if(buf[0] == '#')continue; + if(regexec(®, buf, 0, 0, 0)) + { + fclose(db_data); + regfree(®); + fprintf(stderr, "Syntax error in config file.\n"); + return false; + } + for(a = 0, b = 0; a < strlen(buf); a++) + { + if(buf[a] == ' ')b++; + } + if(b != 1) + { + fclose(db_data); + regfree(®); + fprintf(stderr, "Syntax error in config file.\n"); + return false; + } + if((strncmp(buf, "user: ", 6)) == 0)sscanf(buf, "%s %s", tmp, user); + if((strncmp(buf, "passwd: ", 8)) == 0)sscanf(buf, "%s %s", tmp, passwd); + if((strncmp(buf, "database: ", 10)) == 0)sscanf(buf, "%s %s", tmp, database); + if((strncmp(buf, "host: ", 6)) == 0)sscanf(buf, "%s %s", tmp, host); + if((strncmp(buf, "port: ", 6)) == 0)sscanf(buf, "%s %d", tmp, &port); + } + fclose(db_data); + regfree(®); + if((strlen(user) < 1) || (strlen(passwd) < 1) || + (strlen(database) < 1) || (strlen(host) < 1)) + { + fprintf(stderr, "One value for MySQL connection isn't set. \ + Please set user, passwd, database and host.\n"); + return false; + } + + + mysql_init(&mysql); + if((mysql_real_connect(&mysql, host, user, passwd, database, port, NULL, 0)) == NULL) + { + fprintf(stderr, "%s\n", mysql_error(&mysql)); + return false; + } + return true; +} + +int main(int argc, char **argv) +{ + MYSQL_RES *result; + MYSQL_ROW row; + char Query[200]= "SELECT * FROM userdata WHERE VPNId = '\0"; + + if(argc == 2) + { + /*iID = atoi(argv[1]); + printf("Int:%d\n", iID); + sprintf(ID,"%-#10x",iID); + printf("String:%s\n", ID);*/ + + connect_db("/home/christoph/squid_dynamic/db.conf"); // Datenbank Verbindung aufbauen + + strcat(Query, argv[1]); // Query builden + strcat(Query,"'"); // + + mysql_query(&mysql, Query); // Query abschicken + result = mysql_store_result(&mysql); // Result speichern + + while ((row = mysql_fetch_row(result))) // Alle Datensätze auslesen (in dem Fall eh nur einer) + { + printf("%s:%s\n", row[9], row[10]); // Feld 9 und 10 (login/pass) aus dem datensatz ausgeben + } + + mysql_free_result(result); // Result wieder löschen + mysql_close(&mysql); // Datenbank Verbindung schliesen + } + else + { + printf("USAGE: sqidy xx | xx = VPNId\n"); // bei flascheingabe der Parameter + } +} diff --git a/Admin/Modules/Squid/squid_dynamic/squidy b/Admin/Modules/Squid/squid_dynamic/squidy new file mode 100755 index 0000000..677c5da Binary files /dev/null and b/Admin/Modules/Squid/squid_dynamic/squidy differ diff --git a/Admin/Modules/Squid/squid_dynamic/squidy.bak b/Admin/Modules/Squid/squid_dynamic/squidy.bak new file mode 100755 index 0000000..726712c Binary files /dev/null and b/Admin/Modules/Squid/squid_dynamic/squidy.bak differ diff --git a/Admin/Modules/Squid/squid_dynamic/vpnid b/Admin/Modules/Squid/squid_dynamic/vpnid new file mode 100644 index 0000000..4daddb7 --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/vpnid @@ -0,0 +1 @@ +00 diff --git a/Admin/Modules/Squid/squid_dynamic/write_conf b/Admin/Modules/Squid/squid_dynamic/write_conf new file mode 100755 index 0000000..9e3e244 --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/write_conf @@ -0,0 +1,115 @@ +#!/bin/bash + +# Zaehlvariable einlesen +id=$ID_VPN + +# Abfrage ob Stringlaenge von id NULL ist +if [ ${#ID_VPN} == 0 ]; +then id=0 +fi + +# id inkrementieren +let id=$id+1 + +# 255 Overflow verhindern +if [ $id -gt 254 ] +then id=0 +fi + +# Variable id fuer naechsten Durchlauf speichern +export ID_VPN=$id + +# id HEX wandeln +hex=$(echo "obase=16; $id" |bc) + +# Abfrage ob Strinlaenge von hex kleiner als 2 +if [ ${#hex} -lt 2 ]; +then hex=0$hex +fi + +# Login-Daten aus Datenbank holen +credentials=$(./squidy $hex) +# Abfrage ob Datensatz leer : +zero="0" + +if [ "$credentials" == ":" ]; +then + . write_conf & + zero="1" +fi +if [ ${#credentials} == 0 ]; +then + . write_conf & + zero="1" +fi + +###################################################################################### + +# Config- Datei schreiben. +if [ $zero == "0" ] +then +echo " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at + + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf + +###################################################################################### +#restart squid +killall -9 squid +squid -D -YC -f /etc/squid3/squid.conf +fi diff --git a/Admin/Modules/Squid/squid_dynamic/write_conf_file b/Admin/Modules/Squid/squid_dynamic/write_conf_file new file mode 100755 index 0000000..1e05d8e --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/write_conf_file @@ -0,0 +1,132 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +if [ ${#1} == 0 ]; +then + echo "USAGE: write_conf_file updatetime" + exit 0 +fi + +while [ "1" == "1" ] ; +do + sleep $1 + zero="1" + + while [ $zero == "1" ] ; + do + + # Zaehlvariable einlesen + id=$(cat /var/vpn/vpnid) + + # id inkrementieren + let id=$id+1 + + # 255 Overflow verhindern + if [ $id -gt 254 ] + then + id=0 + fi + + # Variable id fuer naechsten Durchlauf speichern + echo $id > /var/vpn/vpnid + + # id HEX wandeln + hex=$(echo "obase=16; $id" |bc) + + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex} -lt 2 ]; + then + hex=0$hex + fi + + black=$(cat /var/vpn/blacklist | grep $hex) + + if [ ${#black} -lt 2 ]; + then + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + # Abfrage ob Datensatz leer : + + if [ ${#credentials} -gt 10 ]; + then + zero="0" + fi + fi + done + echo "USING credentials: $credentials" + + sudo killall -9 unlinkd + sudo killall -9 squid + + sudo rm /etc/squid3/squid.conf +###################################################################################### + +# Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at +#blubber + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +echo "Written credentials: $credentials" +###################################################################################### + #restart squid + sudo squid -D -YC -f /etc/squid3/squid.conf +done diff --git a/Admin/Modules/Squid/squid_dynamic/write_conf_file.bak b/Admin/Modules/Squid/squid_dynamic/write_conf_file.bak new file mode 100755 index 0000000..d3648c6 --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/write_conf_file.bak @@ -0,0 +1,130 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +if [ ${#1} == 0 ]; +then +echo "USAGE: write_conf_file updatetime" +exit 0 +fi + +while [ "1" == "1" ] ; do + +sleep $1 +zero="1" + +while [ $zero == "1" ] ; do + +# Zaehlvariable einlesen +id=$(cat /var/vpn/vpnid) + +# id inkrementieren +let id=$id+1 + +# 255 Overflow verhindern +if [ $id -gt 254 ] +then id=0 +fi + +# Variable id fuer naechsten Durchlauf speichern +echo $id > /var/vpn/vpnid + +# id HEX wandeln +hex=$(echo "obase=16; $id" |bc) + +# Abfrage ob Strinlaenge von hex kleiner als 2 +if [ ${#hex} -lt 2 ]; +then hex=0$hex +fi + +# Login-Daten aus Datenbank holen +credentials=$(/home/christoph/squid_dynamic/squidy $hex) +# Abfrage ob Datensatz leer : + +if [ ${#credentials} -gt 10 ]; +then + zero="0" +fi +echo "Schleife zero: $zero" +echo "Schleife id: $id" +echo "Schleife hex: $hex" +done +echo "USING zero: $zero" +echo "USING id: $id" +echo "USING hex: $hex" +echo "USING credentials: $credentials" + +sudo killall -9 unlinkd +sudo killall -9 squid + +sudo rm /etc/squid3/squid.conf +###################################################################################### + +# Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at +#blubber + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +echo "Written credentials: $credentials" +###################################################################################### +#restart squid +sudo squid -D -YC -f /etc/squid3/squid.conf + +done diff --git a/Admin/Modules/Squid/squid_dynamic/write_conf_manuell b/Admin/Modules/Squid/squid_dynamic/write_conf_manuell new file mode 100755 index 0000000..c42e48e --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/write_conf_manuell @@ -0,0 +1,183 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid manuell von der Website aus upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +while [ "1" == "1" ]; +do + + write=1 + zero=0 + # ueberpruefen ob file vpnid_man vorhanden + if [ -e /var/vpn/vpnid_man ]; + then + echo 1 + zero=1 + fi + + # ueberpruefen ob file vpnid_next vorhanden + if [ -e /var/vpn/vpnid_next ]; + then + echo 2 + zero=2 + fi + + + + if [ "$zero" == "1" ]; + then + # Manuelle ID als hex einlesen einlesen + hex=$(cat /var/vpn/vpnid_man) + id=$(printf "%d\n" 0x$hex) + echo $id > /var/vpn/vpnid + rm /var/vpn/vpnid_man + echo $hex + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + fi + + if [ "$zero" == "2" ]; + then + schleife="1" + rm /var/vpn/vpnid_next + + while [ $schleife == "1" ] ; + do + # Zaehlvariable einlesen + id_alt=$(cat /var/vpn/vpnid) + + # alte id HEX wandeln zum BLacklisten + hex_alt=$(echo "obase=16; $id_alt" |bc) + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex_alt} -lt 2 ]; + then + hex_alt=0$hex_alt + fi + + # alte id BLacklisten + if [ $write == 1 ]; + then + echo $hex_alt >> /var/vpn/blacklist + fi + + # id inkrementieren + let id=$id_alt+1 + + # 255 Overflow verhindern + if [ $id -gt 254 ] + then + id=0 + fi + + # Variable id fuer naechsten Durchlauf speichern + echo $id > /var/vpn/vpnid + + # id HEX wandeln + hex=$(echo "obase=16; $id" |bc) + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex} -lt 2 ]; + then + hex=0$hex + fi + + # hole id_hex aus BLacklist? + black=$(cat /var/vpn/blacklist|grep $hex) + + # Abfrage ob id_hex in BLacklist + if [ ${#black} -lt 2 ]; + then + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + + # Abfrage ob Datensatz leer : + if [ ${#credentials} -gt 10 ]; + then + schleife="0" + fi + else write=0 + fi + done + fi + + + # Abfrage ob Datensatz leer (zur Sicherheit): + if [ ${#credentials} -gt 10 ] && [ $zero != "0" ]; + then + + # stop squid + sudo killall -9 unlinkd + sudo killall -9 squid + + sudo rm /etc/squid3/squid.conf +###################################################################################### + # Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +###################################################################################### + + echo "Written: $credentials" + + #start squid + squid -D -YC -f /etc/squid3/squid.conf +fi +sleep 2 +done diff --git a/Admin/Modules/Squid/squid_dynamic/write_conf_manuell.bak b/Admin/Modules/Squid/squid_dynamic/write_conf_manuell.bak new file mode 100755 index 0000000..fc83012 --- /dev/null +++ b/Admin/Modules/Squid/squid_dynamic/write_conf_manuell.bak @@ -0,0 +1,158 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid manuell von der Website aus upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +while [ "1" == "1" ]; +do + + zero=0 + # ueberpruefen ob file vpnid_man vorhanden + if [ -e /var/vpn/vpnid_man ]; + then + echo 1 + zero=1 + fi + + # ueberpruefen ob file vpnid_next vorhanden + if [ -e /var/vpn/vpnid_next ]; + then + echo 2 + zero=2 + fi + + + + if [ "$zero" == "1" ]; + then + # Manuelle ID als hex einlesen einlesen + hex=$(cat /var/vpn/vpnid_man) + id=$(printf "%d\n" $hex) + echo $id > /var/vpn/vpnid + rm /var/vpn/vpnid_man + echo $hex + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + fi + + if [ "$zero" == "2" ]; + then + schleife="1" + rm /var/vpn/vpnid_next + + while [ $schleife == "1" ] ; + do + # Zaehlvariable einlesen + id=$(cat /var/vpn/vpnid) + # id inkrementieren + let id=$id+1 + + # 255 Overflow verhindern + if [ $id -gt 254 ] + then + id=0 + fi + + # Variable id fuer naechsten Durchlauf speichern + echo $id > /var/vpn/vpnid + + # id HEX wandeln + hex=$(echo "obase=16; $id" |bc) + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex} -lt 2 ]; + then + hex=0$hex + fi + + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + + # Abfrage ob Datensatz leer : + if [ ${#credentials} -gt 10 ]; + then + schleife="0" + fi + done + fi + + + # Abfrage ob Datensatz leer (zur Sicherheit): + if [ ${#credentials} -gt 10 ] && [ $zero != "0" ]; + then + + # stop squid + sudo killall -9 unlinkd + sudo killall -9 squid + + sudo rm /etc/squid3/squid.conf +###################################################################################### + # Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +###################################################################################### + + echo "Written: $credentials" + + #start squid + squid -D -YC -f /etc/squid3/squid.conf +fi +sleep 2 +done diff --git a/Admin/Modules/Squid/startsquid b/Admin/Modules/Squid/startsquid new file mode 100755 index 0000000..4dccfde --- /dev/null +++ b/Admin/Modules/Squid/startsquid @@ -0,0 +1,5 @@ +/home/christoph/stopsquid + +#iptables -t nat -A PREROUTING -i tap0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 +#iptables -t nat -A PREROUTING -i tap0 -p tcp --dport 443 -j REDIRECT --to-ports 3128 +squid -D -YC -f /etc/squid3/squid.conf diff --git a/Admin/Modules/Squid/stopsquid b/Admin/Modules/Squid/stopsquid new file mode 100755 index 0000000..91187a6 --- /dev/null +++ b/Admin/Modules/Squid/stopsquid @@ -0,0 +1,6 @@ +#iptables -t nat -D PREROUTING -i tap0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 +#iptables -t nat -D PREROUTING -i tap0 -p tcp --dport 443 -j REDIRECT --to-ports 3128 + +killall squid +killall squid +killall squid diff --git a/Admin/Modules/Squid_old/changesquid.php b/Admin/Modules/Squid_old/changesquid.php new file mode 100755 index 0000000..c5b81b5 --- /dev/null +++ b/Admin/Modules/Squid_old/changesquid.php @@ -0,0 +1,14 @@ + diff --git a/Admin/Modules/Squid_old/delbl.php b/Admin/Modules/Squid_old/delbl.php new file mode 100755 index 0000000..827a9b0 --- /dev/null +++ b/Admin/Modules/Squid_old/delbl.php @@ -0,0 +1,9 @@ + ".db_getconfval("sqddir")."/blacklist"); +echo $ret; +header ("Location: ".$path."&uebergabe=2"); +?> diff --git a/Admin/Modules/Squid_old/include/config.inc b/Admin/Modules/Squid_old/include/config.inc new file mode 100755 index 0000000..89ed528 --- /dev/null +++ b/Admin/Modules/Squid_old/include/config.inc @@ -0,0 +1,66 @@ + diff --git a/Admin/Modules/Squid_old/include/functions.inc b/Admin/Modules/Squid_old/include/functions.inc new file mode 100755 index 0000000..870fa96 --- /dev/null +++ b/Admin/Modules/Squid_old/include/functions.inc @@ -0,0 +1,251 @@ + $PluginData) + { + // Check if the config.inc for a plugin exists + if (file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/config.inc")) + { + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/config.inc"); + + // Check if claimed inc files do exist + if (isset ($config['Plugins'][$PluginName]['Action']['Include']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Action']['Include'])) + $config['Plugins'][$PluginName]['Action']['Include'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Menu']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Left']['Menu'])) + $config['Plugins'][$PluginName]['Left']['Menu'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Status']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Left']['Status'])) + $config['Plugins'][$PluginName]['Left']['Status'] = NULL; + } + } + } +} + +// ---------------------------------------------- +function seconds_string ($seconds, $periods = null) +{ + $Wanted = ''; + + // Define time periods + if (!is_array ($periods)) + { + $periods = array ( + 'years' => 31556926, + 'months' => 2629743, + 'weeks' => 604800, + 'days' => 86400, + 'hours' => 3600, + 'minutes' => 60, + 'seconds' => 1 + ); + } + + // Wanted + if (empty ($seconds)) + { $Wanted = ''; } + else + { + // Loop + $seconds = (int) $seconds; + foreach ($periods as $period => $value) + { + $count = floor ($seconds / $value); + + if ($count == 0) + continue; + elseif ($count == 1) + $Wanted .= ($count . ' ' . substr ($period, 0, strlen ($period) - 1) . ' '); + else + $Wanted .= ($count . ' ' . $period . ' '); + + $seconds = $seconds % $value; + } + } + + return rtrim ($Wanted); +} + +// ---------------------------------------------- +function chomp (&$string) +{ + if (is_array ($string)) + { + foreach ($string as $i => $val) + { $endchar = chomp ($string[$i]); } + } + else + { + $endchar = substr ("$string", strlen("$string") - 1, 1); + if ($endchar == "\n") + { $string = substr ("$string", 0, -1); } + } + return $endchar; +} + +// ---------------------------------------------- +function str_strip_spaces ($aline) +{ + while (strpos ($aline, "\t") != FALSE) $aline = str_replace ("\t", ' ', $aline); + while (strpos ($aline, ' ') != FALSE) $aline = str_replace (' ', ' ', $aline); + + return $aline; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_file_fullname ($apath, $afile) +{ + if (substr ($afile, 0, 1) != '/') + $afile = ($apath . $afile); + + return $afile; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_openssldata_to_string ($adata) +{ + $Return = ''; + $amonth = array ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); + + if (substr ($adata, -1, 1) == 'Z') + { + $Return = sprintf ("%s %d %s%02d, %02d:%02d:%02d", + $amonth [substr ($adata, 2, 2) - 1], + substr ($adata, 4, 2), + (substr ($adata, 0, 2) > 50 ? '19' : '20'), + substr ($adata, 0, 2), + substr ($adata, 6, 2), + substr ($adata, 8, 2), + substr ($adata, 10, 2)); + } + + return $Return; +} + +// ---------------------------------------------- +function str_get_sometag ($aline, $sometag) +{ + if (eregi ($sometag, $aline, $anarray)) + return $anarray[1]; + else + return ''; +} + +// ---------------------------------------------- +// Writes content into file +// Optionally sames old file into backup file. +// The Backup File has to reside on the same partition! +function writefile ($afile, $adata, $abackup = NULL) +{ + // Move the old file into Backup one + if ($abackup != NULL) + { + if (file_exists ($afile)) + { + if (file_exists ($abackup)) + if (!unlink ($abackup)) + exit; + if (!rename ($afile, $abackup)) + exit; + } + } + + $fp = fopen ($afile, "w", 0); + if (!$fp) + exit; + + fputs ($fp, $adata); + fclose ($fp); +} + + +// ---------------------------------------------- +// Guess the full file name +function if_file_exists (&$sFileName, $bFix = FALSE) +{ + global $config; + + if (strpos ($sFileName, '/') == FALSE) + { + $sLongFileName = $config['openvpn']['folder'] . $sFileName; + if (file_exists ($sLongFileName) && $bFix) + $sFileName = $sLongFileName; + } + + return file_exists ($sFileName); +} + +// ---------------------------------------------- +function zlib_check_functions () +{ + $Result = ''; + $ZLibs = array + ( + 'gzcompress' + ); + + foreach ($ZLibs as $Function) + { + $Result .= $Function . ': ' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function html_dump ($aname, $athing) +{ + echo '
'. $aname .': ';
+ print_r ($athing);
+ echo "

\n"; +} + +// ---------------------------------------------- +function html_error ($amessage, $ifexit = true) +{ + global $config; + echo $amessage; + if ($ifexit) + exit; +} + +// ---------------------------------------------- +function html_postredir ($url) +{ + header ('HTTP/1.1 303 REDIRECT'); + header ('Location: '. $url); +#header ('Status: 303'); // if 1st header generates 500, then commend it out and use this one as 2nd +} + +// ---------------------------------------------- +// ---------------------------------------------- +function html_download ($sFile, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + readfile ($sFile); +} + +// ---------------------------------------------- +function html_download_data ($sData, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + echo $sData; +} +?> diff --git a/Admin/Modules/Squid_old/include/openssl-functions.inc b/Admin/Modules/Squid_old/include/openssl-functions.inc new file mode 100755 index 0000000..a10701a --- /dev/null +++ b/Admin/Modules/Squid_old/include/openssl-functions.inc @@ -0,0 +1,377 @@ +: ' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function openssl_load_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $linetokens = explode ("\t", $line); + + // Ensure that all the fields are set + if (count ($linetokens) == 6) + { + // Decode the openssl's database. See apps/apps.h + $openssl['Database'][] = array ('Status' => $linetokens[0], + 'ExpDate' => $linetokens[1], + 'RevDate' => $linetokens[2], + 'Serial' => $linetokens[3], + 'File' => $linetokens[4], + 'Name' => $linetokens[5], + 'Country' => openssl_get_country ($linetokens[5]), + 'State' => openssl_get_state ($linetokens[5]), + 'City' => openssl_get_city ($linetokens[5]), + 'Company' => openssl_get_company ($linetokens[5]), + 'Department' => openssl_get_department ($linetokens[5]), + 'CN' => openssl_get_CN ($linetokens[5]), + 'Email' => openssl_get_email ($linetokens[5]) + ); + } + } +} + +// ---------------------------------------------- +function openssl_write_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + + $atext = ''; + for ($i = 0; $i < count ($openssl['Database']); $i++) + { + $atext .= ($atext == '' ? '' : "\n"); + $atext .= $openssl['Database'][$i]['Status'] ."\t". + $openssl['Database'][$i]['ExpDate'] ."\t". + $openssl['Database'][$i]['RevDate'] ."\t". + $openssl['Database'][$i]['Serial'] ."\t". + $openssl['Database'][$i]['File'] ."\t". + $openssl['Database'][$i]['Name']; + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +function openssl_write_database_attr ($atext = '', $afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile) .'.attr'; + $atext = ($atext == '' ? "unique_subject = yes\n" : $atext); + + if (file_exists ($afile)) + { + ob_start (); + readfile ($afile); + $atext = ob_get_contents (); + ob_end_clean (); + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +// Returns the PEM file with spaces reduced and replaced to   +function openssl_load_cert ($anid) +{ + global $config; + + do + { + $lines = file ($config['openssl']['pubfolder'] . $anid . '.pem'); + + if (!is_array ($lines)) + { + $Return = ''; + break; + } + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $Return[] = str_replace (' ', ' ', htmlspecialchars (str_replace (' ', ' ', $line))); + } + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_load_serial ($afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + $Return = sscanf ($lines[0], "%X"); + + return $Return[0]; +} + +// ---------------------------------------------- +function openssl_write_serial ($iNumber, $afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + writefile ($afile, openssl_hex_serial ($iNumber) . "\n", $afile .'.old'); +} + +// ---------------------------------------------- +// Supports up to 999,999 serials +function openssl_hex_serial ($iNumber) +{ + if ($iNumber < 100) + $sString = sprintf ("%02X", $iNumber); + elseif ($iNumber < 10000) + $sString = sprintf ("%04X", $iNumber); + else + $sString = sprintf ("%06X", $iNumber); + + return $sString; +} + +// ---------------------------------------------- +// Builds User Private Key, CSR and Public Certificate +function openssl_build_key (&$anoutput, $adn, $validdays = NULL) +{ + global $config; + global $openssl; + + $anoutput = ''; + $Return = FALSE; + + // Allow to override default value + $validdays = ($validdays == NULL ? $config['openssl']['default']['expiration'] : $validdays); + + do + { + if (!isset ($adn) || + !isset ($adn['countryName']) || + !isset ($adn['stateOrProvinceName']) || + !isset ($adn['localityName']) || + !isset ($adn['organizationName']) || + !isset ($adn['organizationalUnitName']) || + !isset ($adn['commonName']) || + !isset ($adn['emailAddress']) + ) + { $anoutput .= "- ERROR on ". __LINE__ ." line: incomplete DN information\n"; break; } + $anoutput .= "+ OK got the valid input\n"; + + // Get the new User Private Key + $UserPrivKey = openssl_pkey_new (array($config['openssl']['config'],0)); + if ($UserPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_new):\n ". openssl_error_strings () ." (that might usually mean that the openssl.cnf file is unavailable)"; break; } + $anoutput .= "+ OK got the User Private Key\n"; + + // Generate the User Certificate Request + $UserReq = openssl_csr_new ($adn, + $UserPrivKey, + $config['openssl']['config']); + if ($UserReq == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 4) ." line (openssl_csr_new):\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK generated the User Certificate Request\n"; + + // Read the openssl serial + $CAserial = openssl_load_serial ($config['openssl']['serial']); + $anoutput .= "+ OK read current openssl serial (". openssl_hex_serial ($CAserial) .")\n"; + + $UserPubCertFile = $config['openssl']['pubfolder'] . openssl_hex_serial ($CAserial) .'.pem'; + $UserCertReqFile = $config['openssl']['reqfolder'] . openssl_hex_serial ($CAserial) .'.csr'; + $UserPrivKeyFile = $config['openssl']['prvfolder'] . openssl_hex_serial ($CAserial) .'.key'; + + // Read the openssl database + openssl_load_database ($config['openssl']['database']); + $anoutput .= "+ OK read the openssl database (". count ($openssl['Database']) ." items)\n"; + + // Get CA's Private Key + $CAPrivKey = openssl_pkey_get_private ($config['openssl']['CA']['priv']); + + if ($CAPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_get_private)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK read the CA Private Key\n"; + + // Get a CA-signed cert that lasts for 1 year + $UserPubCert = openssl_csr_sign ($UserReq, + $config['openssl']['CA']['pub'], + $CAPrivKey, + $validdays, + $config['openssl']['config'], + $CAserial); + if ($UserPubCert == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 7) ." line (openssl_csr_sign)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK signed the User Certificate Request with CA Private Key\n"; + + // Add the new row into openssl database + $openssl['Database'][] = array ('Status' => 'V', + 'ExpDate' => date ('ymdHis', + time() + + date ('Z') + + ($validdays * 24 * 60 * 60)) .'Z', + 'RevDate' => '', + 'Serial' => openssl_hex_serial ($CAserial), + 'File' => openssl_hex_serial ($CAserial) .'.crt', + 'Name' => openssl_make_name ($adn) + ); + + // Create files + + $OldUMask = umask (0007); + + // Write User Private Key + if (!openssl_pkey_export_to_file ($UserPrivKey, $UserPrivKeyFile, NULL, $config['openssl']['config'])) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_pkey_export_to_file)\n ". openssl_error_strings () ." (That might mean that the key folder is not write enabled for www user)"; break; } + $anoutput .= "+ OK wrote User Private Key into file $UserPrivKeyFile\n"; + + // Write User Public Certificate + if (!openssl_x509_export_to_file ($UserPubCert, $UserPubCertFile, FALSE)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_x509_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Public Certificate into file $UserPubCertFile\n"; + + // Write User Certificate Request + if (!openssl_csr_export_to_file ($UserReq, $UserCertReqFile)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_csr_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Certificate Request into file $UserCertReqFile\n"; + + // Write new openssl database + openssl_write_database ($config['openssl']['database']); + openssl_write_database_attr ('', $config['openssl']['database']); + $anoutput .= "+ OK wrote new openssl database\n"; + + // Write new openssl serial + openssl_write_serial ($CAserial + 1, $config['openssl']['serial']); + $anoutput .= "+ OK wrote new openssl serial\n"; + + umask ($OldUMask); + + $Return = openssl_hex_serial ($CAserial); + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_error_strings () +{ + $sString = ''; + while ($msg = openssl_error_string ()) + $sString .= $msg ."\n"; + + return $sString; +} + +// ---------------------------------------------- +function openssl_make_name ($adn) +{ + $sString = ''; + + if (strlen ($adn['countryName']) > 0) $sString .= '/C=' . $adn['countryName']; + if (strlen ($adn['stateOrProvinceName']) > 0) $sString .= '/ST=' . $adn['stateOrProvinceName']; + if (strlen ($adn['localityName']) > 0) $sString .= '/L=' . $adn['localityName']; + if (strlen ($adn['organizationName']) > 0) $sString .= '/O=' . $adn['organizationName']; + if (strlen ($adn['organizationalUnitName']) > 0) $sString .= '/OU=' . $adn['organizationalUnitName']; + if (strlen ($adn['commonName']) > 0) $sString .= '/CN=' . $adn['commonName']; + if (strlen ($adn['emailAddress']) > 0) $sString .= '/emailAddress='. $adn['emailAddress']; + + return $sString; +} + +// ---------------------------------------------- +function openssl_get_country ($aline) +{ return str_get_sometag ($aline . '/', '\/C=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_state ($aline) +{ return str_get_sometag ($aline . '/', '\/ST=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_city ($aline) +{ return str_get_sometag ($aline . '/', '\/L=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_company ($aline) +{ return str_get_sometag ($aline . '/', '\/O=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_department ($aline) +{ return str_get_sometag ($aline . '/', '\/OU=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_CN ($aline) +{ return str_get_sometag ($aline . '/', '\/CN=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_email ($aline) +{ return str_get_sometag ($aline . '/', '\/emailAddress=([^/]*)\/'); } + +// ---------------------------------------------- +// Guess the full file name +function openssl_get_filename ($iSerial, $sExt) +{ + global $config; + + $sReturn = $config['openssl']['folder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['pubfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['reqfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['prvfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = ''; + } + } + } + } + + return $sReturn; +} + + +?> diff --git a/Admin/Modules/Squid_old/include/restartsquid.php b/Admin/Modules/Squid_old/include/restartsquid.php new file mode 100755 index 0000000..e60d11c --- /dev/null +++ b/Admin/Modules/Squid_old/include/restartsquid.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/Squid_old/include/startsquid.php b/Admin/Modules/Squid_old/include/startsquid.php new file mode 100755 index 0000000..e4aac29 --- /dev/null +++ b/Admin/Modules/Squid_old/include/startsquid.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/Squid_old/include/stopsquid.php b/Admin/Modules/Squid_old/include/stopsquid.php new file mode 100755 index 0000000..710c8df --- /dev/null +++ b/Admin/Modules/Squid_old/include/stopsquid.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/Squid_old/index.php b/Admin/Modules/Squid_old/index.php new file mode 100755 index 0000000..768a080 --- /dev/null +++ b/Admin/Modules/Squid_old/index.php @@ -0,0 +1,297 @@ +"; + exit; +} + $sort = mysql_real_escape_string($_POST["dirsort"]); //$_GET["sort"]; + $by = mysql_real_escape_string($_POST["sortby"]); //$_GET["by"]; + $userid = mysql_real_escape_string($_POST["userid"]); //$_GET["userid"]; + $search = mysql_real_escape_string($_POST["search"]); //$_GET["search"]; + +$moduleurl = $_SERVER["REQUEST_URI"]; +$urlcut = strpos($moduleurl, "&"); +$moduleurl = substr($moduleurl,0,$urlcut); +?> + +

Squid Config

+Squid is currently: running
"; +} +else +{ + echo "Squid is currently: stopped
"; +} + + if ($_REQUEST["uebergabe"]=="3") + { + echo "Squid restarted successfully!"; + echo ""; + } + if ($_REQUEST["uebergabe"]=="4") + { + echo "Squid started successfully!"; + echo ""; + } + if ($_REQUEST["uebergabe"]=="5") + { + echo "Squid stopped successfully!"; + echo ""; + } + ?> + + + + + + + + + "; + } +?> + + + + + + "; + } +?> + +
+
+ + +
+
+
+

Change Proxy Account:

+Changed Squid Account successfully!"; + } + ?> +
+

+

+ Squid ID (HEX): + + + +
+

+

+Current Squid User: + 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, + 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 'A', + 11 => 'B', 12 => 'C', 13 => 'D', 14 => 'E', + 15 => 'F' ); + + do + { + $h = $hex[($dec%16)] . $h; + $dec /= 16; + } + while( $dec >= 1 ); + + return $sign . $h; +} + + $zeile = exec(escapeshellcmd("cat ".db_getconfval("sqddir")."/vpnid")); + $zeile = dec_to_hex($zeile); + //echo $zeile; + if(strlen ($zeile) <2) + { + $zeile = "0".$zeile; + } + if(strlen ($zeile) >2) + { + $zeile=substr($zeile, 0, -1); + } + @$y = mysql_connect($MYSQL_HOST,$MYSQL_USER,$MYSQL_PASS); + @$x = mysql_select_db($MYSQL_DATABASE); + if (empty($x)) + { + echo "ERROR 0x01, Failed to connect to database!
"; + exit; + } + $sql4 = "SELECT * FROM userdata WHERE VPNId = '".$zeile."';"; + $result4 = mysql_query($sql4); + //echo $sql4; + $ar4=mysql_fetch_array($result4,MYSQL_ASSOC); + echo "" . $ar4["Vorname"] . " " . $ar4["Nachname"] . " VPNId: " . $ar4["VPNId"].""; + mysql_close(); +?> +

+
+ + +

Blacklisted Accounts:

+Blacklist cleared successfully!"; + } + ?> + + +"; + exit; + } + + $hascontent = true; + if (strlen($zeile) >2) + { + $zeile=substr($zeile, 0, -1); + } + $sql3 = "SELECT * FROM userdata WHERE VPNId = '".$zeile."';"; + $result3 = mysql_query($sql3); + $ar3=mysql_fetch_array($result3,MYSQL_ASSOC); + $nick = $ar3["Nickname"]; + if($nick == "") + $hascontent=false; + $vor = $ar3["Vorname"]; + if($vor == "") + $hascontent=false; + $nach = $ar3["Nachname"]; + if($nach == "") + $hascontent=false; + + if($hascontent == true) + { + $blindex = $blindex+1; + echo ""; + } + mysql_close(); + } + +?> +
Squid IDNicknameVornameNachname
".$zeile."".$nick."".$vor."".$nach."
+

Blacklisted accounts: + + out of: + '; + elseif (count($openssl['Database'])-1 == 1) + { + echo '1 certificate'; + } + elseif (count($openssl['Database'])-1 > 1) + { + echo ''; + echo count($openssl['Database'])-1; + echo ' certificates'; + }?> +

+

+

+ + +
+

+
+ +

User changed Proxy Accounts:

+ +
+ + +Search User: +
+ + +"; + exit; + } + // MYsql befehl basteln + + + if($by == "Nickname") + { + $sql = "SELECT * FROM proxyrepair;"; + } + else + { + $sql = "SELECT * FROM proxyrepair ORDER BY $by $sort;"; + } + + $result = mysql_query($sql); + echo "
"; + echo "\n"; +// ------------------------------------------------ Mysql lesen + if ($result) + { + while ($ar=mysql_fetch_array($result,MYSQL_ASSOC)) + { + + $sql = "SELECT * FROM userdata WHERE Id = '".$ar["Id"]."' AND (Nickname LIKE '%".$search."%' OR Vorname LIKE '%".$search."%' OR Id LIKE '%".$search."%' OR VPNId LIKE '%".$search."%');"; + $result2 = mysql_query($sql); + $ar2=mysql_fetch_array($result2,MYSQL_ASSOC); + + if($ar2["Nickname"] != "") + echo "\n"; + } + } + else + { + echo "
"; + } + echo "
User IDVPN IdNicknameVornameNachnameClient IPTimeDead VPN ID
",$ar["Id"],"",$ar["VPNId"],"",$ar2["Nickname"],"",$ar2["Vorname"],"",$ar2["Nachname"], + "", $ar["IP"],"",$ar["Time"],"",$ar["RepID"],"
"; + mysql_close(); +?> + diff --git a/Admin/Modules/Squid_old/squid_dynamic/README b/Admin/Modules/Squid_old/squid_dynamic/README new file mode 100644 index 0000000..6f55fcd --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/README @@ -0,0 +1,3 @@ +export CPATH=..:$HOME/include:/usr/local/include:/usr/include:/usr/include/mysql +needed: libmysqlclient-dev +gcc -l mysqlclient -o traffic Traffic.c diff --git a/Admin/Modules/Squid_old/squid_dynamic/db.conf b/Admin/Modules/Squid_old/squid_dynamic/db.conf new file mode 100755 index 0000000..f902996 --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/db.conf @@ -0,0 +1,4 @@ +user: openvpn +passwd: openvpnlog +database: openvpn +host: localhost diff --git a/Admin/Modules/Squid_old/squid_dynamic/hexer b/Admin/Modules/Squid_old/squid_dynamic/hexer new file mode 100755 index 0000000..6a24092 --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/hexer @@ -0,0 +1,7 @@ +#!/bin/bash +let x=0x3f +echo $x + + +let x=0xfffe +echo $x diff --git a/Admin/Modules/Squid_old/squid_dynamic/squid_dyn.c b/Admin/Modules/Squid_old/squid_dynamic/squid_dyn.c new file mode 100644 index 0000000..6fa1665 --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/squid_dyn.c @@ -0,0 +1,134 @@ +/* OpenVPN - Squid Load Balancer* + *------------------------------* + * Version 1.0 * + * Written by Christoph Haas * + * License: LGPL * + * 12.10.2010 * + */ + +#include +#include + +#include +#include +#include +#include + +#define __MAX_LINE__ 100 +#define __MAX_FIELD__ 255 +#define false 0 +#define true 1 + + +MYSQL mysql; + +int connect_db(char *config) +{ + FILE *db_data = NULL; + regex_t reg; + char user[__MAX_LINE__] = ""; + char passwd[__MAX_LINE__] = ""; + char database[__MAX_LINE__] = ""; + char host[__MAX_LINE__] = ""; + int port = 0; + char tmp[__MAX_LINE__]; + char buf[__MAX_LINE__]; + int a, b; + int length; + + if((db_data = fopen(config, "r")) == NULL) + { + fprintf(stderr, "Can't open %s for reading.\n", config); + return false; + } + regcomp(®, "^([a-zA-Z0-9:]+)[ ][a-zA-Z0-9]+$", REG_EXTENDED | REG_NEWLINE); + while(fgets(buf, __MAX_LINE__, db_data)) + { + length = strlen(buf); + if(length < 3)continue; + if(length >= __MAX_LINE__) + { + fclose(db_data); + regfree(®); + fprintf(stderr, "To long line in config file.\n"); + return false; + } + if(buf[0] == '#')continue; + if(regexec(®, buf, 0, 0, 0)) + { + fclose(db_data); + regfree(®); + fprintf(stderr, "Syntax error in config file.\n"); + return false; + } + for(a = 0, b = 0; a < strlen(buf); a++) + { + if(buf[a] == ' ')b++; + } + if(b != 1) + { + fclose(db_data); + regfree(®); + fprintf(stderr, "Syntax error in config file.\n"); + return false; + } + if((strncmp(buf, "user: ", 6)) == 0)sscanf(buf, "%s %s", tmp, user); + if((strncmp(buf, "passwd: ", 8)) == 0)sscanf(buf, "%s %s", tmp, passwd); + if((strncmp(buf, "database: ", 10)) == 0)sscanf(buf, "%s %s", tmp, database); + if((strncmp(buf, "host: ", 6)) == 0)sscanf(buf, "%s %s", tmp, host); + if((strncmp(buf, "port: ", 6)) == 0)sscanf(buf, "%s %d", tmp, &port); + } + fclose(db_data); + regfree(®); + if((strlen(user) < 1) || (strlen(passwd) < 1) || + (strlen(database) < 1) || (strlen(host) < 1)) + { + fprintf(stderr, "One value for MySQL connection isn't set. \ + Please set user, passwd, database and host.\n"); + return false; + } + + + mysql_init(&mysql); + if((mysql_real_connect(&mysql, host, user, passwd, database, port, NULL, 0)) == NULL) + { + fprintf(stderr, "%s\n", mysql_error(&mysql)); + return false; + } + return true; +} + +int main(int argc, char **argv) +{ + MYSQL_RES *result; + MYSQL_ROW row; + char Query[200]= "SELECT * FROM userdata WHERE VPNId = '\0"; + + if(argc == 2) + { + /*iID = atoi(argv[1]); + printf("Int:%d\n", iID); + sprintf(ID,"%-#10x",iID); + printf("String:%s\n", ID);*/ + + connect_db("/home/christoph/squid_dynamic/db.conf"); // Datenbank Verbindung aufbauen + + strcat(Query, argv[1]); // Query builden + strcat(Query,"'"); // + + mysql_query(&mysql, Query); // Query abschicken + result = mysql_store_result(&mysql); // Result speichern + + while ((row = mysql_fetch_row(result))) // Alle Datensätze auslesen (in dem Fall eh nur einer) + { + printf("%s:%s\n", row[9], row[10]); // Feld 9 und 10 (login/pass) aus dem datensatz ausgeben + } + + mysql_free_result(result); // Result wieder löschen + mysql_close(&mysql); // Datenbank Verbindung schliesen + } + else + { + printf("USAGE: sqidy xx | xx = VPNId\n"); // bei flascheingabe der Parameter + } +} diff --git a/Admin/Modules/Squid_old/squid_dynamic/squidy b/Admin/Modules/Squid_old/squid_dynamic/squidy new file mode 100755 index 0000000..677c5da Binary files /dev/null and b/Admin/Modules/Squid_old/squid_dynamic/squidy differ diff --git a/Admin/Modules/Squid_old/squid_dynamic/squidy.bak b/Admin/Modules/Squid_old/squid_dynamic/squidy.bak new file mode 100755 index 0000000..726712c Binary files /dev/null and b/Admin/Modules/Squid_old/squid_dynamic/squidy.bak differ diff --git a/Admin/Modules/Squid_old/squid_dynamic/vpnid b/Admin/Modules/Squid_old/squid_dynamic/vpnid new file mode 100644 index 0000000..4daddb7 --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/vpnid @@ -0,0 +1 @@ +00 diff --git a/Admin/Modules/Squid_old/squid_dynamic/write_conf b/Admin/Modules/Squid_old/squid_dynamic/write_conf new file mode 100755 index 0000000..9e3e244 --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/write_conf @@ -0,0 +1,115 @@ +#!/bin/bash + +# Zaehlvariable einlesen +id=$ID_VPN + +# Abfrage ob Stringlaenge von id NULL ist +if [ ${#ID_VPN} == 0 ]; +then id=0 +fi + +# id inkrementieren +let id=$id+1 + +# 255 Overflow verhindern +if [ $id -gt 254 ] +then id=0 +fi + +# Variable id fuer naechsten Durchlauf speichern +export ID_VPN=$id + +# id HEX wandeln +hex=$(echo "obase=16; $id" |bc) + +# Abfrage ob Strinlaenge von hex kleiner als 2 +if [ ${#hex} -lt 2 ]; +then hex=0$hex +fi + +# Login-Daten aus Datenbank holen +credentials=$(./squidy $hex) +# Abfrage ob Datensatz leer : +zero="0" + +if [ "$credentials" == ":" ]; +then + . write_conf & + zero="1" +fi +if [ ${#credentials} == 0 ]; +then + . write_conf & + zero="1" +fi + +###################################################################################### + +# Config- Datei schreiben. +if [ $zero == "0" ] +then +echo " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at + + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf + +###################################################################################### +#restart squid +killall -9 squid +squid -D -YC -f /etc/squid3/squid.conf +fi diff --git a/Admin/Modules/Squid_old/squid_dynamic/write_conf_file b/Admin/Modules/Squid_old/squid_dynamic/write_conf_file new file mode 100755 index 0000000..1e05d8e --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/write_conf_file @@ -0,0 +1,132 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +if [ ${#1} == 0 ]; +then + echo "USAGE: write_conf_file updatetime" + exit 0 +fi + +while [ "1" == "1" ] ; +do + sleep $1 + zero="1" + + while [ $zero == "1" ] ; + do + + # Zaehlvariable einlesen + id=$(cat /var/vpn/vpnid) + + # id inkrementieren + let id=$id+1 + + # 255 Overflow verhindern + if [ $id -gt 254 ] + then + id=0 + fi + + # Variable id fuer naechsten Durchlauf speichern + echo $id > /var/vpn/vpnid + + # id HEX wandeln + hex=$(echo "obase=16; $id" |bc) + + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex} -lt 2 ]; + then + hex=0$hex + fi + + black=$(cat /var/vpn/blacklist | grep $hex) + + if [ ${#black} -lt 2 ]; + then + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + # Abfrage ob Datensatz leer : + + if [ ${#credentials} -gt 10 ]; + then + zero="0" + fi + fi + done + echo "USING credentials: $credentials" + + sudo killall -9 unlinkd + sudo killall -9 squid + + sudo rm /etc/squid3/squid.conf +###################################################################################### + +# Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at +#blubber + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +echo "Written credentials: $credentials" +###################################################################################### + #restart squid + sudo squid -D -YC -f /etc/squid3/squid.conf +done diff --git a/Admin/Modules/Squid_old/squid_dynamic/write_conf_file.bak b/Admin/Modules/Squid_old/squid_dynamic/write_conf_file.bak new file mode 100755 index 0000000..d3648c6 --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/write_conf_file.bak @@ -0,0 +1,130 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +if [ ${#1} == 0 ]; +then +echo "USAGE: write_conf_file updatetime" +exit 0 +fi + +while [ "1" == "1" ] ; do + +sleep $1 +zero="1" + +while [ $zero == "1" ] ; do + +# Zaehlvariable einlesen +id=$(cat /var/vpn/vpnid) + +# id inkrementieren +let id=$id+1 + +# 255 Overflow verhindern +if [ $id -gt 254 ] +then id=0 +fi + +# Variable id fuer naechsten Durchlauf speichern +echo $id > /var/vpn/vpnid + +# id HEX wandeln +hex=$(echo "obase=16; $id" |bc) + +# Abfrage ob Strinlaenge von hex kleiner als 2 +if [ ${#hex} -lt 2 ]; +then hex=0$hex +fi + +# Login-Daten aus Datenbank holen +credentials=$(/home/christoph/squid_dynamic/squidy $hex) +# Abfrage ob Datensatz leer : + +if [ ${#credentials} -gt 10 ]; +then + zero="0" +fi +echo "Schleife zero: $zero" +echo "Schleife id: $id" +echo "Schleife hex: $hex" +done +echo "USING zero: $zero" +echo "USING id: $id" +echo "USING hex: $hex" +echo "USING credentials: $credentials" + +sudo killall -9 unlinkd +sudo killall -9 squid + +sudo rm /etc/squid3/squid.conf +###################################################################################### + +# Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at +#blubber + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +echo "Written credentials: $credentials" +###################################################################################### +#restart squid +sudo squid -D -YC -f /etc/squid3/squid.conf + +done diff --git a/Admin/Modules/Squid_old/squid_dynamic/write_conf_manuell b/Admin/Modules/Squid_old/squid_dynamic/write_conf_manuell new file mode 100755 index 0000000..c42e48e --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/write_conf_manuell @@ -0,0 +1,183 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid manuell von der Website aus upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +while [ "1" == "1" ]; +do + + write=1 + zero=0 + # ueberpruefen ob file vpnid_man vorhanden + if [ -e /var/vpn/vpnid_man ]; + then + echo 1 + zero=1 + fi + + # ueberpruefen ob file vpnid_next vorhanden + if [ -e /var/vpn/vpnid_next ]; + then + echo 2 + zero=2 + fi + + + + if [ "$zero" == "1" ]; + then + # Manuelle ID als hex einlesen einlesen + hex=$(cat /var/vpn/vpnid_man) + id=$(printf "%d\n" 0x$hex) + echo $id > /var/vpn/vpnid + rm /var/vpn/vpnid_man + echo $hex + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + fi + + if [ "$zero" == "2" ]; + then + schleife="1" + rm /var/vpn/vpnid_next + + while [ $schleife == "1" ] ; + do + # Zaehlvariable einlesen + id_alt=$(cat /var/vpn/vpnid) + + # alte id HEX wandeln zum BLacklisten + hex_alt=$(echo "obase=16; $id_alt" |bc) + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex_alt} -lt 2 ]; + then + hex_alt=0$hex_alt + fi + + # alte id BLacklisten + if [ $write == 1 ]; + then + echo $hex_alt >> /var/vpn/blacklist + fi + + # id inkrementieren + let id=$id_alt+1 + + # 255 Overflow verhindern + if [ $id -gt 254 ] + then + id=0 + fi + + # Variable id fuer naechsten Durchlauf speichern + echo $id > /var/vpn/vpnid + + # id HEX wandeln + hex=$(echo "obase=16; $id" |bc) + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex} -lt 2 ]; + then + hex=0$hex + fi + + # hole id_hex aus BLacklist? + black=$(cat /var/vpn/blacklist|grep $hex) + + # Abfrage ob id_hex in BLacklist + if [ ${#black} -lt 2 ]; + then + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + + # Abfrage ob Datensatz leer : + if [ ${#credentials} -gt 10 ]; + then + schleife="0" + fi + else write=0 + fi + done + fi + + + # Abfrage ob Datensatz leer (zur Sicherheit): + if [ ${#credentials} -gt 10 ] && [ $zero != "0" ]; + then + + # stop squid + sudo killall -9 unlinkd + sudo killall -9 squid + + sudo rm /etc/squid3/squid.conf +###################################################################################### + # Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +###################################################################################### + + echo "Written: $credentials" + + #start squid + squid -D -YC -f /etc/squid3/squid.conf +fi +sleep 2 +done diff --git a/Admin/Modules/Squid_old/squid_dynamic/write_conf_manuell.bak b/Admin/Modules/Squid_old/squid_dynamic/write_conf_manuell.bak new file mode 100755 index 0000000..fc83012 --- /dev/null +++ b/Admin/Modules/Squid_old/squid_dynamic/write_conf_manuell.bak @@ -0,0 +1,158 @@ +#!/bin/bash +# Script um die cache_peer funktion von Squid manuell von der Website aus upzudaten. +# V1.0 +# 13.10.2010 +# Stoeckholzer, Haas + +while [ "1" == "1" ]; +do + + zero=0 + # ueberpruefen ob file vpnid_man vorhanden + if [ -e /var/vpn/vpnid_man ]; + then + echo 1 + zero=1 + fi + + # ueberpruefen ob file vpnid_next vorhanden + if [ -e /var/vpn/vpnid_next ]; + then + echo 2 + zero=2 + fi + + + + if [ "$zero" == "1" ]; + then + # Manuelle ID als hex einlesen einlesen + hex=$(cat /var/vpn/vpnid_man) + id=$(printf "%d\n" $hex) + echo $id > /var/vpn/vpnid + rm /var/vpn/vpnid_man + echo $hex + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + fi + + if [ "$zero" == "2" ]; + then + schleife="1" + rm /var/vpn/vpnid_next + + while [ $schleife == "1" ] ; + do + # Zaehlvariable einlesen + id=$(cat /var/vpn/vpnid) + # id inkrementieren + let id=$id+1 + + # 255 Overflow verhindern + if [ $id -gt 254 ] + then + id=0 + fi + + # Variable id fuer naechsten Durchlauf speichern + echo $id > /var/vpn/vpnid + + # id HEX wandeln + hex=$(echo "obase=16; $id" |bc) + + # Abfrage ob Strinlaenge von hex kleiner als 2 + if [ ${#hex} -lt 2 ]; + then + hex=0$hex + fi + + # Login-Daten aus Datenbank holen + credentials=$(/home/christoph/squid_dynamic/squidy $hex) + + # Abfrage ob Datensatz leer : + if [ ${#credentials} -gt 10 ]; + then + schleife="0" + fi + done + fi + + + # Abfrage ob Datensatz leer (zur Sicherheit): + if [ ${#credentials} -gt 10 ] && [ $zero != "0" ]; + then + + # stop squid + sudo killall -9 unlinkd + sudo killall -9 squid + + sudo rm /etc/squid3/squid.conf +###################################################################################### + # Config- Datei schreiben. +sudo echo -e -n " +# Squid config by h44z + +# TAG: http_port +# Usage: port +# hostname:port +# 1.2.3.4:port +http_port 10.8.0.1:3128 transparent +http_port 10.8.0.1:8080 +#https_port 10.8.0.1:8181 key=/etc/apache2/ssl/apache.pem + + +visible_hostname vpnrack + +# TAG: icp_port +icp_port 0 + +# TAG: no_cache +acl QUERY urlpath_regex cgi-bin \\? +no_cache deny QUERY + +# TAG: cache_mem (bytes) +cache_mem 32 MB + +# TAG: cache_dir +cache_dir ufs /var/cache/squid 100 16 256 + +# TAG: cache_access_log +cache_access_log /var/log/squid/access.log + +# TAG: cache_log +cache_log /var/log/squid/cache.log + +# TAG: cache_store_log +cache_store_log /var/log/squid/store.log + +# TAG: emulate_httpd_log on|off +emulate_httpd_log on + +# TAG: pid_filename +pid_filename /var/run/squid.pid + +# TAG: cache_mgr +cache_mgr christoph.haas2@students.htlinn.ac.at + +http_access allow all +acl https port 443 +http_access allow https + + +# TAG: http_reply_access +# Allow replies to client requests. This is complementary to http_access. +#http_reply_access allow all + +cache_peer 192.168.195.101 parent 8080 7 no-query default no-digest login=$credentials + +never_direct allow all +" > /etc/squid3/squid.conf +###################################################################################### + + echo "Written: $credentials" + + #start squid + squid -D -YC -f /etc/squid3/squid.conf +fi +sleep 2 +done diff --git a/Admin/Modules/Squid_old/startsquid b/Admin/Modules/Squid_old/startsquid new file mode 100755 index 0000000..4dccfde --- /dev/null +++ b/Admin/Modules/Squid_old/startsquid @@ -0,0 +1,5 @@ +/home/christoph/stopsquid + +#iptables -t nat -A PREROUTING -i tap0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 +#iptables -t nat -A PREROUTING -i tap0 -p tcp --dport 443 -j REDIRECT --to-ports 3128 +squid -D -YC -f /etc/squid3/squid.conf diff --git a/Admin/Modules/Squid_old/stopsquid b/Admin/Modules/Squid_old/stopsquid new file mode 100755 index 0000000..91187a6 --- /dev/null +++ b/Admin/Modules/Squid_old/stopsquid @@ -0,0 +1,6 @@ +#iptables -t nat -D PREROUTING -i tap0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 +#iptables -t nat -D PREROUTING -i tap0 -p tcp --dport 443 -j REDIRECT --to-ports 3128 + +killall squid +killall squid +killall squid diff --git a/Admin/Modules/Usermanagement/include/adduser.php b/Admin/Modules/Usermanagement/include/adduser.php new file mode 100755 index 0000000..601ec04 --- /dev/null +++ b/Admin/Modules/Usermanagement/include/adduser.php @@ -0,0 +1,119 @@ + 0) +{ + mysql_close(); +// Send Confirmation Mail + +if(db_getconfval("withmail") == "1") +{ + require_once "Mail.php"; + + $from = $mrecv." <".$mname.">"; + $to = $benutzer["Vorname"]." ".$benutzer["Nachname"]." <".$benutzer["Email"].">"; + $subject = "VPN Account created!"; + $body = +"Dear ".$benutzer["Vorname"]." ".$benutzer["Nachname"].",\n\nyour ".$mrecv." account has been created!\nYou can now login on with this credentials:\n\n#########################################################\nUsername: ".$benutzer["Nickname"]."\nPassword: ".$benutzer["Kennwort"]."\n#########################################################\nYou can change your password in the user section.\n\nAll files, programms and other stuff can be found on the homepage!\nTo start using your VPN Connection you have to download your config-file and your certificates!\nInstall everything as it is described in the README.txt!\n\nHave fun!!!\n\nIf you have questions write me an email!\n\n".$mrecv."\n"; + + $host = $mserv; + $username = $muser; + $password = $mpass; + + $headers = array ( 'From' => $from, + 'To' => $to, + 'Subject' => $subject); + $smtp = Mail::factory('smtp', + array ( 'host' => $host, + 'auth' => true, + 'username' => $username, + 'password' => $password)); + + $mail = $smtp->send($to, $headers, $body); + + if (PEAR::isError($mail)) + { + // evt deaktivieren + echo("

" . $mail->getMessage() . "

"); + } +} +// Finish + mysql_close(); + header ("Location: ".$moduleurl."&uebergabe2=1"); +} +else +{ + mysql_close(); + echo "Fehler beim Anlegen des Benutzers.
\n"; +} +?> diff --git a/Admin/Modules/Usermanagement/include/adduser_index.php b/Admin/Modules/Usermanagement/include/adduser_index.php new file mode 100755 index 0000000..b05d6dd --- /dev/null +++ b/Admin/Modules/Usermanagement/include/adduser_index.php @@ -0,0 +1,66 @@ + + + + +

User Management

+ +

Add new User:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Admin: + +
With VPN: + +
Nickname: +
Vorname: +
Nachname: +
Email Address: + (max 40 Char!!)
Passwort:
Novell Login:
Novell Password:
+ +
+ +

Back

+ + diff --git a/Admin/Modules/Usermanagement/include/deleteuser.php b/Admin/Modules/Usermanagement/include/deleteuser.php new file mode 100755 index 0000000..6076b9e --- /dev/null +++ b/Admin/Modules/Usermanagement/include/deleteuser.php @@ -0,0 +1,51 @@ + 0) +{ + mysql_close(); + header ("Location: ".$moduleurl."&uebergabe2=3"); +} +else +{ + mysql_close(); + echo "Fehler beim Loeschen des Benutzers.
\n"; +} +?> diff --git a/Admin/Modules/Usermanagement/include/deleteuser_index.php b/Admin/Modules/Usermanagement/include/deleteuser_index.php new file mode 100755 index 0000000..3d620a8 --- /dev/null +++ b/Admin/Modules/Usermanagement/include/deleteuser_index.php @@ -0,0 +1,21 @@ + + + +

User Management

+

Delete User:

+
+ + + + + +
Nickname: +
+ +
+ +

Back

+ + diff --git a/Admin/Modules/Usermanagement/include/edituser.php b/Admin/Modules/Usermanagement/include/edituser.php new file mode 100755 index 0000000..121dc0e --- /dev/null +++ b/Admin/Modules/Usermanagement/include/edituser.php @@ -0,0 +1,113 @@ + 0) +{ + mysql_close(); + header ("Location: ".$moduleurl."&uebergabe2=2"); +} +else +{ + mysql_close(); + echo "Fehler beim Editieren des Benutzers. (Nothing changed?)
\n"; +} +?> diff --git a/Admin/Modules/Usermanagement/include/edituser_index.php b/Admin/Modules/Usermanagement/include/edituser_index.php new file mode 100755 index 0000000..3c740b9 --- /dev/null +++ b/Admin/Modules/Usermanagement/include/edituser_index.php @@ -0,0 +1,61 @@ + + + +

User Management

+

Edit User:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Admin: + +
Nickname: + *
VPN Id: +
Vorname: +
Nachname: +
Email Address: +
Passwort:
Novell Login: +
Novell Passwort:
+ +
+ * = Required + +

Back

+ + diff --git a/Admin/Modules/Usermanagement/include/viewuser_index.php b/Admin/Modules/Usermanagement/include/viewuser_index.php new file mode 100755 index 0000000..3c13cba --- /dev/null +++ b/Admin/Modules/Usermanagement/include/viewuser_index.php @@ -0,0 +1,95 @@ +"; + exit; + } + + $sort = mysql_real_escape_string($_POST["dirsort"]); //$_GET["sort"]; + $by = mysql_real_escape_string($_POST["sortby"]); //$_GET["by"]; + $search= mysql_real_escape_string($_POST["search"]); + + if($sort== "") $sort = "DESC"; //$_GET["sort"]; + if($by=="") $by = "Id"; //$_GET["by"]; +?> + + +
+
+ + + +Search User: +
+ + +"; + if($by != "") + { + echo " + + \n"; + } +// ------------------------------------------------ Mysql lesen + if ($result) + { + while ($ar=mysql_fetch_array($result,MYSQL_ASSOC)) + { + echo "", + "", + "\n"; + + } + } + else + { + echo "
"; + } + echo "
IDIsAdminVPNIdNicknameFirstnameLastnameEmail AddressNovell LoginEditDelete
", $ar["Id"], + "",$ar["IsAdmin"], + "",$ar["VPNId"], + "",$ar["Nickname"], + "",$ar["Vorname"], + "",$ar["Nachname"], + "",$ar["Email"], + "",$ar["NovLogin"], + "
", + "", + "", + "
", + "", + "
", + "", + "", + "
"; + mysql_close(); +?> +

Back

+ + + diff --git a/Admin/Modules/Usermanagement/index.php b/Admin/Modules/Usermanagement/index.php new file mode 100755 index 0000000..4370272 --- /dev/null +++ b/Admin/Modules/Usermanagement/index.php @@ -0,0 +1,64 @@ + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } +} + +$mode = $_REQUEST["uebergabe"]; +$status = $_REQUEST["uebergabe2"]; + +echo"

Home + | Add new User + | Edit User + | Delete User + | View Users



"; +switch($status) +{ + case 1: + echo "User added successfully!"; + break; + case 2: + echo "User edited successfully!"; + break; + case 3: + echo "User deleted successfully!"; + break; + default: + break; +} + +switch($mode) +{ + case 1: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/Usermanagement/include/adduser_index.php"); + break; + case 2: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/Usermanagement/include/edituser_index.php"); + break; + case 3: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/Usermanagement/include/deleteuser_index.php"); + break; + case 4: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/Usermanagement/include/viewuser_index.php"); + break; + default: + echo"

User Management

+

Choose an action:

+

# Add new User

+

# Edit User

+

# Delete User

+

# View Users


"; + break; +} +?> diff --git a/Admin/Modules/VPNconfig/config.inc b/Admin/Modules/VPNconfig/config.inc new file mode 100755 index 0000000..89ed528 --- /dev/null +++ b/Admin/Modules/VPNconfig/config.inc @@ -0,0 +1,66 @@ + diff --git a/Admin/Modules/VPNconfig/include/certs (Kopie).php b/Admin/Modules/VPNconfig/include/certs (Kopie).php new file mode 100644 index 0000000..1251e13 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/certs (Kopie).php @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + 0 ? 0 : $openvpn['i']['loop']-1; +if ($openvpn['i']['show']) { + $openvpn['i']['total'] = $openvpn['i']['loop']; + if ($openvpn['i']['total'] == 0) + $openvpn['i']['show'] = false; +} else + $openvpn['i']['total'] = 0; +if ($openvpn['i']['show']): + + for ($openvpn['i']['index'] = $openvpn['i']['start'], $openvpn['i']['iteration'] = 1; + $openvpn['i']['iteration'] <= $openvpn['i']['total']; + $openvpn['i']['index'] += $openvpn['i']['step'], $openvpn['i']['iteration']++): +$openvpn['i']['rownum'] = $openvpn['i']['iteration']; +$openvpn['i']['index_prev'] = $openvpn['i']['index'] - $openvpn['i']['step']; +$openvpn['i']['index_next'] = $openvpn['i']['index'] + $openvpn['i']['step']; +$openvpn['i']['first'] = ($openvpn['i']['iteration'] == 1); +$openvpn['i']['last'] = ($openvpn['i']['iteration'] == $openvpn['i']['total']); +?> + + + +> + +'; ?>#'; ?>'; ?> + +'; ?>'; ?> + +'; ?>'; ?> + +'; ?>'; ?>'; ?>'; ?> + +'; ?>'; ?> + +'; ?>'; ?> + +[zip]'; ?> + crt]'; ?> + key]'; ?> + csr]'; ?> + +'; ?> + + + + + + +
# Common NameDepartmente-mailSerialStatusDownload
+
There are no certificates made at the minute
diff --git a/Admin/Modules/VPNconfig/include/certs.php b/Admin/Modules/VPNconfig/include/certs.php new file mode 100644 index 0000000..eb8364a --- /dev/null +++ b/Admin/Modules/VPNconfig/include/certs.php @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + 0 ? 0 : $openvpn['i']['loop']-1; +if ($openvpn['i']['show']) { + $openvpn['i']['total'] = $openvpn['i']['loop']; + if ($openvpn['i']['total'] == 0) + $openvpn['i']['show'] = false; +} else + $openvpn['i']['total'] = 0; +if ($openvpn['i']['show']): + + for ($openvpn['i']['index'] = $openvpn['i']['start'], $openvpn['i']['iteration'] = 1; + $openvpn['i']['iteration'] <= $openvpn['i']['total']; + $openvpn['i']['index'] += $openvpn['i']['step'], $openvpn['i']['iteration']++): +$openvpn['i']['rownum'] = $openvpn['i']['iteration']; +$openvpn['i']['index_prev'] = $openvpn['i']['index'] - $openvpn['i']['step']; +$openvpn['i']['index_next'] = $openvpn['i']['index'] + $openvpn['i']['step']; +$openvpn['i']['first'] = ($openvpn['i']['iteration'] == 1); +$openvpn['i']['last'] = ($openvpn['i']['iteration'] == $openvpn['i']['total']); +?> + + + +> + +'; + +if ($openvpn['Certificates'][$openvpn['i']['index']]['Connected'] && $openvpn['Certificates'][$openvpn['i']['index']]['Status'] != 'R') +{ + echo '#'; +} +else +{ + echo ' '; +} + +echo ''; ?> + +'; ?>'; ?> + +'; ?>'; ?> + +'; ?>'; ?>'; ?>'; ?> + +'; ?>'; ?> + +'; ?>'; ?> + +[zip]'; ?> + crt]'; ?> + key]'; ?> + csr]'; ?> + +'; ?> + + + + + + +
# Common NameDepartmente-mailSerialStatusDownload
+
There are no certificates made at the minute
diff --git a/Admin/Modules/VPNconfig/include/config-edit.php b/Admin/Modules/VPNconfig/include/config-edit.php new file mode 100644 index 0000000..563ed05 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/config-edit.php @@ -0,0 +1,41 @@ +

Die Daten wurden erfolgreich gespeichert!"; + echo $check_ok; + } +if ($_REQUEST["submit"] == "Speichern") + { + $fp = fopen($ovpnconfdir."/".$ovpnconffile,"w"); + $data =$_REQUEST["inhalt"]; + $data = str_replace("\r","",$data); + fputs($fp,$data); + fclose($fp); + + echo ""; + $check_ok = "

Ihre Daten wurden erfolgreich geändert!
Bitte warten sie bis die Daten aktualisiert werden.
"; + echo $check_ok; + } +echo "
+
+ + + +
"; + +?> diff --git a/Admin/Modules/VPNconfig/include/config.php b/Admin/Modules/VPNconfig/include/config.php new file mode 100644 index 0000000..94459f1 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/config.php @@ -0,0 +1,149 @@ +VPN Server is currently: running
"; +} +else +{ + echo "VPN Server is currently: stopped
"; +} + +if ($_REQUEST["uebergabe3"]=="1") + { + echo "VPN Server restarted successfully!"; + echo ""; + } +if ($_REQUEST["uebergabe3"]=="2") + { + echo "VPN Server started successfully!"; + echo ""; + } +if ($_REQUEST["uebergabe3"]=="3") + { + echo "VPN Server stopped successfully!"; + echo ""; + } + ?> + + + + + + + + + "; + } +?> + + + + + + "; + } +?> + +
+
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server Settings
Mode +
Uses device +
Listens on +: + ( +)
Maximum Clients +
Certificate Files
DH + download]'; ?>does not exist]'; ?> +
CA Certificate + download]'; ?>does not exist]'; ?> +
Server Certificate + download]'; ?>does not exist]'; ?> +
Server Private Key + download]'; ?>does not exist]'; ?> +
TLS Authentication +download]'; ?>does not exist]'; ?> +
CRL Verify File + download]'; ?>does not exist]'; ?> +
diff --git a/Admin/Modules/VPNconfig/include/functions.inc b/Admin/Modules/VPNconfig/include/functions.inc new file mode 100755 index 0000000..870fa96 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/functions.inc @@ -0,0 +1,251 @@ + $PluginData) + { + // Check if the config.inc for a plugin exists + if (file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/config.inc")) + { + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/config.inc"); + + // Check if claimed inc files do exist + if (isset ($config['Plugins'][$PluginName]['Action']['Include']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Action']['Include'])) + $config['Plugins'][$PluginName]['Action']['Include'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Menu']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Left']['Menu'])) + $config['Plugins'][$PluginName]['Left']['Menu'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Status']) && + !file_exists ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/plugins/". $PluginData['Folder'] ."/". + $config['Plugins'][$PluginName]['Left']['Status'])) + $config['Plugins'][$PluginName]['Left']['Status'] = NULL; + } + } + } +} + +// ---------------------------------------------- +function seconds_string ($seconds, $periods = null) +{ + $Wanted = ''; + + // Define time periods + if (!is_array ($periods)) + { + $periods = array ( + 'years' => 31556926, + 'months' => 2629743, + 'weeks' => 604800, + 'days' => 86400, + 'hours' => 3600, + 'minutes' => 60, + 'seconds' => 1 + ); + } + + // Wanted + if (empty ($seconds)) + { $Wanted = ''; } + else + { + // Loop + $seconds = (int) $seconds; + foreach ($periods as $period => $value) + { + $count = floor ($seconds / $value); + + if ($count == 0) + continue; + elseif ($count == 1) + $Wanted .= ($count . ' ' . substr ($period, 0, strlen ($period) - 1) . ' '); + else + $Wanted .= ($count . ' ' . $period . ' '); + + $seconds = $seconds % $value; + } + } + + return rtrim ($Wanted); +} + +// ---------------------------------------------- +function chomp (&$string) +{ + if (is_array ($string)) + { + foreach ($string as $i => $val) + { $endchar = chomp ($string[$i]); } + } + else + { + $endchar = substr ("$string", strlen("$string") - 1, 1); + if ($endchar == "\n") + { $string = substr ("$string", 0, -1); } + } + return $endchar; +} + +// ---------------------------------------------- +function str_strip_spaces ($aline) +{ + while (strpos ($aline, "\t") != FALSE) $aline = str_replace ("\t", ' ', $aline); + while (strpos ($aline, ' ') != FALSE) $aline = str_replace (' ', ' ', $aline); + + return $aline; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_file_fullname ($apath, $afile) +{ + if (substr ($afile, 0, 1) != '/') + $afile = ($apath . $afile); + + return $afile; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_openssldata_to_string ($adata) +{ + $Return = ''; + $amonth = array ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); + + if (substr ($adata, -1, 1) == 'Z') + { + $Return = sprintf ("%s %d %s%02d, %02d:%02d:%02d", + $amonth [substr ($adata, 2, 2) - 1], + substr ($adata, 4, 2), + (substr ($adata, 0, 2) > 50 ? '19' : '20'), + substr ($adata, 0, 2), + substr ($adata, 6, 2), + substr ($adata, 8, 2), + substr ($adata, 10, 2)); + } + + return $Return; +} + +// ---------------------------------------------- +function str_get_sometag ($aline, $sometag) +{ + if (eregi ($sometag, $aline, $anarray)) + return $anarray[1]; + else + return ''; +} + +// ---------------------------------------------- +// Writes content into file +// Optionally sames old file into backup file. +// The Backup File has to reside on the same partition! +function writefile ($afile, $adata, $abackup = NULL) +{ + // Move the old file into Backup one + if ($abackup != NULL) + { + if (file_exists ($afile)) + { + if (file_exists ($abackup)) + if (!unlink ($abackup)) + exit; + if (!rename ($afile, $abackup)) + exit; + } + } + + $fp = fopen ($afile, "w", 0); + if (!$fp) + exit; + + fputs ($fp, $adata); + fclose ($fp); +} + + +// ---------------------------------------------- +// Guess the full file name +function if_file_exists (&$sFileName, $bFix = FALSE) +{ + global $config; + + if (strpos ($sFileName, '/') == FALSE) + { + $sLongFileName = $config['openvpn']['folder'] . $sFileName; + if (file_exists ($sLongFileName) && $bFix) + $sFileName = $sLongFileName; + } + + return file_exists ($sFileName); +} + +// ---------------------------------------------- +function zlib_check_functions () +{ + $Result = ''; + $ZLibs = array + ( + 'gzcompress' + ); + + foreach ($ZLibs as $Function) + { + $Result .= $Function . ': ' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function html_dump ($aname, $athing) +{ + echo '
'. $aname .': ';
+ print_r ($athing);
+ echo "

\n"; +} + +// ---------------------------------------------- +function html_error ($amessage, $ifexit = true) +{ + global $config; + echo $amessage; + if ($ifexit) + exit; +} + +// ---------------------------------------------- +function html_postredir ($url) +{ + header ('HTTP/1.1 303 REDIRECT'); + header ('Location: '. $url); +#header ('Status: 303'); // if 1st header generates 500, then commend it out and use this one as 2nd +} + +// ---------------------------------------------- +// ---------------------------------------------- +function html_download ($sFile, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + readfile ($sFile); +} + +// ---------------------------------------------- +function html_download_data ($sData, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + echo $sData; +} +?> diff --git a/Admin/Modules/VPNconfig/include/getfile.php b/Admin/Modules/VPNconfig/include/getfile.php new file mode 100755 index 0000000..69081ef --- /dev/null +++ b/Admin/Modules/VPNconfig/include/getfile.php @@ -0,0 +1,74 @@ +addFile (implode ('', file ($File2zip)), $File2name); + } + } + + // Add the extra files + foreach ($config['Download']['ZIP']['Others'] as $File2zip) + { + if (is_file (db_getconfval("publicdown")."/". $File2zip)) + $zipData->addFile (implode ('', file (db_getconfval("publicdown")."/". $File2zip)), $File2zip); + } + + // Flush the ZIP file to the client + html_download_data ($zipData -> file (), openssl_hex_serial ($GETidDEC[0]) .'.zip'); + //echo " file () target=_blank>Direktlink zur Datei +} +else +{ +// echo "ID: " .$GETidDEC[0] . "Ext: " .$sExt; + if (($sCertificateFile = openssl_get_filename ($GETidDEC[0], $sExt)) == '') html_error ("Can't find requested file..FU"); + + // Cheat the extension + if ($sExt == '.pem') $sExt = '.crt'; + + // Download + html_download ($sCertificateFile, openssl_hex_serial ($GETidDEC[0]) . $sExt); + //html_dump ('$GLOBALS', $GLOBALS); +} + +?> diff --git a/Admin/Modules/VPNconfig/include/ipp.php b/Admin/Modules/VPNconfig/include/ipp.php new file mode 100644 index 0000000..b25b7f9 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/ipp.php @@ -0,0 +1,41 @@ +

Die Daten wurden erfolgreich gespeichert!"; + echo $check_ok; + } +if ($_REQUEST["submit"] == "Speichern") + { + $fp = fopen($sqddir."/ipp.txt","w"); + $data =$_REQUEST["inhalt"]; + $data = str_replace("\r","",$data); + fputs($fp,$data); + fclose($fp); + + echo ""; + $check_ok = "

Ihre Daten wurden erfolgreich geändert!
Bitte warten sie bis die Daten aktualisiert werden.
"; + echo $check_ok; + } +echo "
+
+ + + +
"; + +?> diff --git a/Admin/Modules/VPNconfig/include/openssl-functions.inc b/Admin/Modules/VPNconfig/include/openssl-functions.inc new file mode 100755 index 0000000..a10701a --- /dev/null +++ b/Admin/Modules/VPNconfig/include/openssl-functions.inc @@ -0,0 +1,377 @@ +: ' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function openssl_load_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $linetokens = explode ("\t", $line); + + // Ensure that all the fields are set + if (count ($linetokens) == 6) + { + // Decode the openssl's database. See apps/apps.h + $openssl['Database'][] = array ('Status' => $linetokens[0], + 'ExpDate' => $linetokens[1], + 'RevDate' => $linetokens[2], + 'Serial' => $linetokens[3], + 'File' => $linetokens[4], + 'Name' => $linetokens[5], + 'Country' => openssl_get_country ($linetokens[5]), + 'State' => openssl_get_state ($linetokens[5]), + 'City' => openssl_get_city ($linetokens[5]), + 'Company' => openssl_get_company ($linetokens[5]), + 'Department' => openssl_get_department ($linetokens[5]), + 'CN' => openssl_get_CN ($linetokens[5]), + 'Email' => openssl_get_email ($linetokens[5]) + ); + } + } +} + +// ---------------------------------------------- +function openssl_write_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + + $atext = ''; + for ($i = 0; $i < count ($openssl['Database']); $i++) + { + $atext .= ($atext == '' ? '' : "\n"); + $atext .= $openssl['Database'][$i]['Status'] ."\t". + $openssl['Database'][$i]['ExpDate'] ."\t". + $openssl['Database'][$i]['RevDate'] ."\t". + $openssl['Database'][$i]['Serial'] ."\t". + $openssl['Database'][$i]['File'] ."\t". + $openssl['Database'][$i]['Name']; + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +function openssl_write_database_attr ($atext = '', $afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile) .'.attr'; + $atext = ($atext == '' ? "unique_subject = yes\n" : $atext); + + if (file_exists ($afile)) + { + ob_start (); + readfile ($afile); + $atext = ob_get_contents (); + ob_end_clean (); + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +// Returns the PEM file with spaces reduced and replaced to   +function openssl_load_cert ($anid) +{ + global $config; + + do + { + $lines = file ($config['openssl']['pubfolder'] . $anid . '.pem'); + + if (!is_array ($lines)) + { + $Return = ''; + break; + } + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $Return[] = str_replace (' ', ' ', htmlspecialchars (str_replace (' ', ' ', $line))); + } + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_load_serial ($afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + $Return = sscanf ($lines[0], "%X"); + + return $Return[0]; +} + +// ---------------------------------------------- +function openssl_write_serial ($iNumber, $afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + writefile ($afile, openssl_hex_serial ($iNumber) . "\n", $afile .'.old'); +} + +// ---------------------------------------------- +// Supports up to 999,999 serials +function openssl_hex_serial ($iNumber) +{ + if ($iNumber < 100) + $sString = sprintf ("%02X", $iNumber); + elseif ($iNumber < 10000) + $sString = sprintf ("%04X", $iNumber); + else + $sString = sprintf ("%06X", $iNumber); + + return $sString; +} + +// ---------------------------------------------- +// Builds User Private Key, CSR and Public Certificate +function openssl_build_key (&$anoutput, $adn, $validdays = NULL) +{ + global $config; + global $openssl; + + $anoutput = ''; + $Return = FALSE; + + // Allow to override default value + $validdays = ($validdays == NULL ? $config['openssl']['default']['expiration'] : $validdays); + + do + { + if (!isset ($adn) || + !isset ($adn['countryName']) || + !isset ($adn['stateOrProvinceName']) || + !isset ($adn['localityName']) || + !isset ($adn['organizationName']) || + !isset ($adn['organizationalUnitName']) || + !isset ($adn['commonName']) || + !isset ($adn['emailAddress']) + ) + { $anoutput .= "- ERROR on ". __LINE__ ." line: incomplete DN information\n"; break; } + $anoutput .= "+ OK got the valid input\n"; + + // Get the new User Private Key + $UserPrivKey = openssl_pkey_new (array($config['openssl']['config'],0)); + if ($UserPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_new):\n ". openssl_error_strings () ." (that might usually mean that the openssl.cnf file is unavailable)"; break; } + $anoutput .= "+ OK got the User Private Key\n"; + + // Generate the User Certificate Request + $UserReq = openssl_csr_new ($adn, + $UserPrivKey, + $config['openssl']['config']); + if ($UserReq == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 4) ." line (openssl_csr_new):\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK generated the User Certificate Request\n"; + + // Read the openssl serial + $CAserial = openssl_load_serial ($config['openssl']['serial']); + $anoutput .= "+ OK read current openssl serial (". openssl_hex_serial ($CAserial) .")\n"; + + $UserPubCertFile = $config['openssl']['pubfolder'] . openssl_hex_serial ($CAserial) .'.pem'; + $UserCertReqFile = $config['openssl']['reqfolder'] . openssl_hex_serial ($CAserial) .'.csr'; + $UserPrivKeyFile = $config['openssl']['prvfolder'] . openssl_hex_serial ($CAserial) .'.key'; + + // Read the openssl database + openssl_load_database ($config['openssl']['database']); + $anoutput .= "+ OK read the openssl database (". count ($openssl['Database']) ." items)\n"; + + // Get CA's Private Key + $CAPrivKey = openssl_pkey_get_private ($config['openssl']['CA']['priv']); + + if ($CAPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_get_private)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK read the CA Private Key\n"; + + // Get a CA-signed cert that lasts for 1 year + $UserPubCert = openssl_csr_sign ($UserReq, + $config['openssl']['CA']['pub'], + $CAPrivKey, + $validdays, + $config['openssl']['config'], + $CAserial); + if ($UserPubCert == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 7) ." line (openssl_csr_sign)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK signed the User Certificate Request with CA Private Key\n"; + + // Add the new row into openssl database + $openssl['Database'][] = array ('Status' => 'V', + 'ExpDate' => date ('ymdHis', + time() + + date ('Z') + + ($validdays * 24 * 60 * 60)) .'Z', + 'RevDate' => '', + 'Serial' => openssl_hex_serial ($CAserial), + 'File' => openssl_hex_serial ($CAserial) .'.crt', + 'Name' => openssl_make_name ($adn) + ); + + // Create files + + $OldUMask = umask (0007); + + // Write User Private Key + if (!openssl_pkey_export_to_file ($UserPrivKey, $UserPrivKeyFile, NULL, $config['openssl']['config'])) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_pkey_export_to_file)\n ". openssl_error_strings () ." (That might mean that the key folder is not write enabled for www user)"; break; } + $anoutput .= "+ OK wrote User Private Key into file $UserPrivKeyFile\n"; + + // Write User Public Certificate + if (!openssl_x509_export_to_file ($UserPubCert, $UserPubCertFile, FALSE)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_x509_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Public Certificate into file $UserPubCertFile\n"; + + // Write User Certificate Request + if (!openssl_csr_export_to_file ($UserReq, $UserCertReqFile)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_csr_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Certificate Request into file $UserCertReqFile\n"; + + // Write new openssl database + openssl_write_database ($config['openssl']['database']); + openssl_write_database_attr ('', $config['openssl']['database']); + $anoutput .= "+ OK wrote new openssl database\n"; + + // Write new openssl serial + openssl_write_serial ($CAserial + 1, $config['openssl']['serial']); + $anoutput .= "+ OK wrote new openssl serial\n"; + + umask ($OldUMask); + + $Return = openssl_hex_serial ($CAserial); + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_error_strings () +{ + $sString = ''; + while ($msg = openssl_error_string ()) + $sString .= $msg ."\n"; + + return $sString; +} + +// ---------------------------------------------- +function openssl_make_name ($adn) +{ + $sString = ''; + + if (strlen ($adn['countryName']) > 0) $sString .= '/C=' . $adn['countryName']; + if (strlen ($adn['stateOrProvinceName']) > 0) $sString .= '/ST=' . $adn['stateOrProvinceName']; + if (strlen ($adn['localityName']) > 0) $sString .= '/L=' . $adn['localityName']; + if (strlen ($adn['organizationName']) > 0) $sString .= '/O=' . $adn['organizationName']; + if (strlen ($adn['organizationalUnitName']) > 0) $sString .= '/OU=' . $adn['organizationalUnitName']; + if (strlen ($adn['commonName']) > 0) $sString .= '/CN=' . $adn['commonName']; + if (strlen ($adn['emailAddress']) > 0) $sString .= '/emailAddress='. $adn['emailAddress']; + + return $sString; +} + +// ---------------------------------------------- +function openssl_get_country ($aline) +{ return str_get_sometag ($aline . '/', '\/C=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_state ($aline) +{ return str_get_sometag ($aline . '/', '\/ST=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_city ($aline) +{ return str_get_sometag ($aline . '/', '\/L=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_company ($aline) +{ return str_get_sometag ($aline . '/', '\/O=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_department ($aline) +{ return str_get_sometag ($aline . '/', '\/OU=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_CN ($aline) +{ return str_get_sometag ($aline . '/', '\/CN=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_email ($aline) +{ return str_get_sometag ($aline . '/', '\/emailAddress=([^/]*)\/'); } + +// ---------------------------------------------- +// Guess the full file name +function openssl_get_filename ($iSerial, $sExt) +{ + global $config; + + $sReturn = $config['openssl']['folder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['pubfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['reqfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['prvfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = ''; + } + } + } + } + + return $sReturn; +} + + +?> diff --git a/Admin/Modules/VPNconfig/include/openvpn-functions.inc b/Admin/Modules/VPNconfig/include/openvpn-functions.inc new file mode 100755 index 0000000..bbf38a5 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/openvpn-functions.inc @@ -0,0 +1,176 @@ + $line) + { + chomp ($line); + $linetokens = explode (' ', str_strip_spaces ($line)); + + switch (strtolower ($linetokens[0])) + { + case 'local': $openvpn['Server']['Local'] = $linetokens[1]; break; + case 'proto': $openvpn['Server']['Proto'] = $linetokens[1]; break; + case 'port': $openvpn['Server']['Port'] = $linetokens[1]; break; + case 'dev': $openvpn['Server']['Dev'] = $linetokens[1]; break; + case 'mode': $openvpn['Server']['Mode'] = $linetokens[1]; break; + case 'max-clients': $openvpn['Server']['MaxClients'] = $linetokens[1]; break; + case 'status': + $openvpn['Server']['Status']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['Status']['File'] = $linetokens[1]; + break; + case 'status-version': $openvpn['Server']['Status']['Version'] = $linetokens[1]; break; + case 'ca': + $openssl['Server']['CA']['Exists'] = if_file_exists ($linetokens[1], true); + $openssl['Server']['CA']['File'] = $linetokens[1]; + break; + case 'dh': + $openvpn['Server']['DH']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['DH']['File'] = $linetokens[1]; + break; + case 'cert': + $openvpn['Server']['Certificate']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['Certificate']['File'] = $linetokens[1]; + break; + case 'key': + $openvpn['Server']['Private_Key']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['Private_Key']['File'] = $linetokens[1]; + break; + case 'tls-auth': + $openvpn['Server']['TLS_Auth']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['TLS_Auth']['File'] = $linetokens[1]; + $openvpn['Server']['TLS_Auth']['Key'] = $linetokens[2]; + break; + case 'crl-verify': + $openvpn['Server']['CRL_Verify']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['CRL_Verify']['File'] = $linetokens[1]; + break; + } + } +} + +// ---------------------------------------------- +function openvpn_load_status () +{ + global $config; + global $openvpn; + + $stop_reading = FALSE; + + if (!isset ($openvpn['Server']['Status']['File'])) + { + echo "Config file not found"; + exit; + } + $lines = file (str_file_fullname ($config['openvpn']['folder'], $openvpn['Server']['Status']['File'])); + + if (!is_array ($lines)) + { + echo "Status file empty"; + exit; + } + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $linetokens = explode (',', $line); + + if ($linetokens[0] == 'TITLE') + $openvpn['Server']['Title'] = $linetokens[1]; + else if ($linetokens[0] == 'TIME') + { + $openvpn['Server']['DateTime'] = $linetokens[1]; + $openvpn['Server']['Time'] = $linetokens[2]; + } + else if ($linetokens[0] == 'HEADER' && $linetokens[1] == 'CLIENT_LIST') + { + // We will need to know what field is what ? + } + else if ($linetokens[0] == 'HEADER' && $linetokens[1] == 'ROUTING_TABLE') + { + // We will need to know what field is what ? + } + else if ($linetokens[0] == 'CLIENT_LIST') + { + $openvpn['Client'][] = array ('CN' => str_replace ('_', ' ', $linetokens[1]), + 'REALADDR' => $linetokens[2], + 'VIRTADDR' => $linetokens[3], + 'BYTESRCV' => $linetokens[4], + 'BYTESSND' => $linetokens[5], + 'SINCE' => $linetokens[6], + 'SINCEUT' => $linetokens[7], + 'Seconds_Ago' => seconds_string (time () - $linetokens[7]) + ); + } + else if ($linetokens[0] == 'ROUTING_TABLE') + { + $openvpn['Routing'][] = array ('VIRTADDR' => $linetokens[1], + 'CN' => str_replace ('_', ' ', $linetokens[2]), + 'REALADDR' => $linetokens[3], + 'LAST' => $linetokens[4], + 'Seconds_Ago' => seconds_string (time () - $linetokens[4]) + ); + } + } +} + +// ---------------------------------------------- +/*function openvpn_find_connected () +{ + global $openvpn; + global $openssl; + + // find who is connected + if (isset ($openvpn['Client'])) + $cnconnected = count ($openvpn['Client']); + else + $cnconnected = 0; + $cntotal = count ($openssl['Database']); + + if ($cnconnected > 0) + for ($i = 0; $i < $cnconnected; $i++) + for ($j = 0; $j < $cntotal; $j++) + if ($openvpn['Client'][$i]['CN'] == $openssl['Database'][$j]['CN']) + { + $openssl['Database'][$j]['Connected'] = true; + break; + } +}*/ + +function openvpn_find_connected () +{ + global $openvpn; + global $openssl; + + // find who is connected + if (isset ($openvpn['Client'])) + $cnconnected = count ($openvpn['Client']); + else + $cnconnected = 0; + $cntotal = count ($openssl['Database']); + + if ($cnconnected > 0) + { + for ($i = 0; $i < $cntotal; $i++) + { + for ($j = 0; $j < $cnconnected; $j++) + { + if ($openvpn['Client'][$j]['CN'] == $openssl['Database'][$i]['CN'] && $openssl['Database'][$i]['Status'] != "R") + { + $openssl['Database'][$i]['Connected'] = true; + // break; + } + } + } + } +} +?> diff --git a/Admin/Modules/VPNconfig/include/restartvpn.php b/Admin/Modules/VPNconfig/include/restartvpn.php new file mode 100755 index 0000000..23d51e5 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/restartvpn.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/VPNconfig/include/startvpn.php b/Admin/Modules/VPNconfig/include/startvpn.php new file mode 100755 index 0000000..bfc932e --- /dev/null +++ b/Admin/Modules/VPNconfig/include/startvpn.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/VPNconfig/include/status.php b/Admin/Modules/VPNconfig/include/status.php new file mode 100644 index 0000000..b16840c --- /dev/null +++ b/Admin/Modules/VPNconfig/include/status.php @@ -0,0 +1,108 @@ + + ++ + + + + + + +
+ + + + + + + + + + + + + + + + +
+ Server Status +
+ The OpenVPN server version is
+
+ The last status was recorded at +
+ '; + elseif ($openvpn['Client'] == 1) + echo 'Connected 1 client'; + elseif ($openvpn['Client'] > 1) + { + echo 'Connected '; + echo count($openvpn['Client']); + echo ' clients'; + }?> +
+ OpenSSL has + '; + elseif (count($openssl['Database']) == 1) + { + echo '1 certificate'; + } + elseif (count($openssl['Database']) > 1) + { + echo ''; + echo count($openssl['Database']); + echo ' certificates'; + }?> + +
+
+ + + + + + + + + + + + + + + + + + + + + '; + } + ?> +
#Common NameConnected sinceConnected TimeVirtual AddressReal AddressUploadDownload
'.$count.''.$client["CN"].''.$client["SINCE"].''.$client["Seconds_Ago"].''.$client["VIRTADDR"].''.$client["REALADDR"].''.$client["BYTESRCV"].''.$client["BYTESSND"].'
+
diff --git a/Admin/Modules/VPNconfig/include/stopvpn.php b/Admin/Modules/VPNconfig/include/stopvpn.php new file mode 100755 index 0000000..60bb00c --- /dev/null +++ b/Admin/Modules/VPNconfig/include/stopvpn.php @@ -0,0 +1,11 @@ + diff --git a/Admin/Modules/VPNconfig/include/sys.php b/Admin/Modules/VPNconfig/include/sys.php new file mode 100644 index 0000000..a3f039f --- /dev/null +++ b/Admin/Modules/VPNconfig/include/sys.php @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + +
PHP Libraries
PHP5 OpenSSL Functions +
PHP5 ZLib Functions +
diff --git a/Admin/Modules/VPNconfig/include/viewcert.php b/Admin/Modules/VPNconfig/include/viewcert.php new file mode 100644 index 0000000..aae9fc7 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/viewcert.php @@ -0,0 +1,128 @@ + + + + + + + + + + + + + +'; ?>'; ?> + + + + +'; ?> + + + + + + + + + + +'; ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Certificate Information
Serial +
Status
'; ?> + +
Common Name +
e-mail'; ?>'; ?>
Country +
State or Province +
City +
Company +
Department +
Certificate Files
Public CertificateDownload'; ?> +
Private KeyDownload'; ?> +
Certificate RequestDownload'; ?> +
ArchiveDownload'; ?> +
diff --git a/Admin/Modules/VPNconfig/include/zip.lib.php b/Admin/Modules/VPNconfig/include/zip.lib.php new file mode 100755 index 0000000..8df2216 --- /dev/null +++ b/Admin/Modules/VPNconfig/include/zip.lib.php @@ -0,0 +1,113 @@ + +* http://www.zend.com/codex.php?id=535&single=1 +* +* Denis125 +* http://www.zend.com/codex.php?id=470&single=1 +* +* Peter Listiak +* +* PK ZIP +* http://www.pkware.com/appnote.txt +*/ + +class zipfile +{ + var $datasec = array (); + var $ctrl_dir = array (); + var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; + var $old_offset = 0; + + function unix2DosTime ($unixtime = 0) + { + $timearray = ($unixtime == 0) ? + getdate () : + getdate ($unixtime); + + if ($timearray['year'] < 1980) + { + $timearray['year'] = 1980; + $timearray['mon'] = 1; + $timearray['mday'] = 1; + $timearray['hours'] = 0; + $timearray['minutes'] = 0; + $timearray['seconds'] = 0; + } + + return (($timearray['year'] - 1980) << 25) | + ($timearray['mon'] << 21) | + ($timearray['mday'] << 16) | + ($timearray['hours'] << 11) | + ($timearray['minutes'] << 5) | + ($timearray['seconds'] >> 1); + } + + function addFile ($data, $name, $time = 0) + { + $name = str_replace ('\\', '/', $name); + + $dtime = dechex ($this->unix2DosTime ($time)); + $hexdtime = '\x' . $dtime[6] . $dtime[7] . + '\x' . $dtime[4] . $dtime[5] . + '\x' . $dtime[2] . $dtime[3] . + '\x' . $dtime[0] . $dtime[1]; + eval ('$hexdtime = "' . $hexdtime . '";'); + + $unc_len = strlen ($data); + $crc = crc32 ($data); + $zdata = gzcompress ($data); + $zdata = substr (substr ($zdata, 0, strlen ($zdata) - 4), 2); + $c_len = strlen ($zdata); + + $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00" . + $hexdtime . + pack ('V', $crc) . + pack ('V', $c_len) . + pack ('V', $unc_len) . + pack ('v', strlen ($name)) . + pack ('v', 0) . + $name . + $zdata . + pack ('V', $crc) . + pack ('V', $c_len) . + pack ('V', $unc_len); + + $this -> datasec[] = $fr; + + $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00" . + $hexdtime . + pack ('V', $crc) . + pack ('V', $c_len) . + pack ('V', $unc_len) . + pack ('v', strlen ($name)) . + pack ('v', 0 ) . + pack ('v', 0 ) . + pack ('v', 0 ) . + pack ('v', 0 ) . + pack ('V', 32 ) . + pack ('V', $this -> old_offset ) . + $name; + + $this -> old_offset += strlen ($fr); + $this -> ctrl_dir[] = $cdrec; + } + + function file () + { + $data = implode ('', $this -> datasec); + $ctrldir = implode ('', $this -> ctrl_dir); + + return $data . + $ctrldir . + $this -> eof_ctrl_dir . + pack ('v', sizeof ($this -> ctrl_dir)) . + pack ('v', sizeof ($this -> ctrl_dir)) . + pack ('V', strlen ($ctrldir)) . + pack ('V', strlen ($data)) . + "\x00\x00"; + } +} +?> diff --git a/Admin/Modules/VPNconfig/index.php b/Admin/Modules/VPNconfig/index.php new file mode 100755 index 0000000..75fb833 --- /dev/null +++ b/Admin/Modules/VPNconfig/index.php @@ -0,0 +1,65 @@ + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } +} + +include ($_SERVER["DOCUMENT_ROOT"]."/Site/checkadmin.php"); +//include_once ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/config.inc"); +//include_once ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/functions.inc"); + +$mode = $_REQUEST["uebergabe"]; +$cert = $_REQUEST["uebergabe2"]; + +echo"

Home + | Status + | Config + | Certificates + | IP-List + | Config-Editor + | Systemcheck



"; + +switch($mode) +{ + case 1: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/status.php"); + break; + case 2: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/config.php"); + break; + case 3: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/certs.php"); + break; + case 4: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/sys.php"); + break; + case 5: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/viewcert.php"); + break; + case 6: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/ipp.php"); + break; + case 7: + include ($_SERVER["DOCUMENT_ROOT"]."/Admin/Modules/VPNconfig/include/config-edit.php"); + break; + default: + echo"

VPN Configuration

+

Choose an action:

+

# Status

+

# Config

+

# Certificates

+

# IP-List

+

# Config Editor

+

# Systemcheck


"; + break; +} +?> diff --git a/Admin/index.php b/Admin/index.php new file mode 100755 index 0000000..16be9b5 --- /dev/null +++ b/Admin/index.php @@ -0,0 +1,50 @@ + diff --git a/Config/_dbconfig_.php b/Config/_dbconfig_.php new file mode 100755 index 0000000..3382b89 --- /dev/null +++ b/Config/_dbconfig_.php @@ -0,0 +1,5 @@ + diff --git a/Config/_siteconfig_.php b/Config/_siteconfig_.php new file mode 100755 index 0000000..704e365 --- /dev/null +++ b/Config/_siteconfig_.php @@ -0,0 +1,48 @@ + diff --git a/Images/BlockContent-h.png b/Images/BlockContent-h.png new file mode 100755 index 0000000..095a606 Binary files /dev/null and b/Images/BlockContent-h.png differ diff --git a/Images/BlockContent-s.png b/Images/BlockContent-s.png new file mode 100755 index 0000000..5b2e261 Binary files /dev/null and b/Images/BlockContent-s.png differ diff --git a/Images/BlockContent-v.png b/Images/BlockContent-v.png new file mode 100755 index 0000000..b3805df Binary files /dev/null and b/Images/BlockContent-v.png differ diff --git a/Images/BlockContentBullets.png b/Images/BlockContentBullets.png new file mode 100755 index 0000000..f8fa6e6 Binary files /dev/null and b/Images/BlockContentBullets.png differ diff --git a/Images/BlockHeaderIcon.png b/Images/BlockHeaderIcon.png new file mode 100755 index 0000000..7f72994 Binary files /dev/null and b/Images/BlockHeaderIcon.png differ diff --git a/Images/Button.png b/Images/Button.png new file mode 100755 index 0000000..ef9764c Binary files /dev/null and b/Images/Button.png differ diff --git a/Images/Footer.png b/Images/Footer.png new file mode 100755 index 0000000..56f8ec8 Binary files /dev/null and b/Images/Footer.png differ diff --git a/Images/Header.jpg b/Images/Header.jpg new file mode 100755 index 0000000..b4e122f Binary files /dev/null and b/Images/Header.jpg differ diff --git a/Images/Header_.jpg b/Images/Header_.jpg new file mode 100755 index 0000000..e53003e Binary files /dev/null and b/Images/Header_.jpg differ diff --git a/Images/Header_old.jpg b/Images/Header_old.jpg new file mode 100755 index 0000000..e302e98 Binary files /dev/null and b/Images/Header_old.jpg differ diff --git a/Images/MenuItem.png b/Images/MenuItem.png new file mode 100755 index 0000000..2c41792 Binary files /dev/null and b/Images/MenuItem.png differ diff --git a/Images/Page-BgSimpleGradient.jpg b/Images/Page-BgSimpleGradient.jpg new file mode 100755 index 0000000..d9f5faf Binary files /dev/null and b/Images/Page-BgSimpleGradient.jpg differ diff --git a/Images/PostBullets.png b/Images/PostBullets.png new file mode 100755 index 0000000..ab64214 Binary files /dev/null and b/Images/PostBullets.png differ diff --git a/Images/PostQuote.png b/Images/PostQuote.png new file mode 100755 index 0000000..b287cd4 Binary files /dev/null and b/Images/PostQuote.png differ diff --git a/Images/Sheet-h.png b/Images/Sheet-h.png new file mode 100755 index 0000000..7efb4fc Binary files /dev/null and b/Images/Sheet-h.png differ diff --git a/Images/Sheet-s.png b/Images/Sheet-s.png new file mode 100755 index 0000000..5d3e425 Binary files /dev/null and b/Images/Sheet-s.png differ diff --git a/Images/Sheet-v.png b/Images/Sheet-v.png new file mode 100755 index 0000000..5bb60e0 Binary files /dev/null and b/Images/Sheet-v.png differ diff --git a/Images/down-arrow.gif b/Images/down-arrow.gif new file mode 100644 index 0000000..6a2cf11 Binary files /dev/null and b/Images/down-arrow.gif differ diff --git a/Images/nav.png b/Images/nav.png new file mode 100755 index 0000000..5819157 Binary files /dev/null and b/Images/nav.png differ diff --git a/Images/rssIcon.png b/Images/rssIcon.png new file mode 100755 index 0000000..df92704 Binary files /dev/null and b/Images/rssIcon.png differ diff --git a/Images/spacer.gif b/Images/spacer.gif new file mode 100755 index 0000000..1d11fa9 Binary files /dev/null and b/Images/spacer.gif differ diff --git a/Images/spectacles.gif b/Images/spectacles.gif new file mode 100755 index 0000000..3eef54f Binary files /dev/null and b/Images/spectacles.gif differ diff --git a/Images/subitem-bg.png b/Images/subitem-bg.png new file mode 100755 index 0000000..506b67c Binary files /dev/null and b/Images/subitem-bg.png differ diff --git a/Images/tux_root.gif b/Images/tux_root.gif new file mode 100755 index 0000000..5fd8dc9 Binary files /dev/null and b/Images/tux_root.gif differ diff --git a/Images/up-arrow.gif b/Images/up-arrow.gif new file mode 100644 index 0000000..3d15253 Binary files /dev/null and b/Images/up-arrow.gif differ diff --git a/Modules/Contact/img/avatar_christoph.gif b/Modules/Contact/img/avatar_christoph.gif new file mode 100755 index 0000000..3bc06ad Binary files /dev/null and b/Modules/Contact/img/avatar_christoph.gif differ diff --git a/Modules/Contact/img/avatar_josua.png b/Modules/Contact/img/avatar_josua.png new file mode 100755 index 0000000..1f55e5a Binary files /dev/null and b/Modules/Contact/img/avatar_josua.png differ diff --git a/Modules/Contact/img/avatar_mario.png b/Modules/Contact/img/avatar_mario.png new file mode 100755 index 0000000..4133a65 Binary files /dev/null and b/Modules/Contact/img/avatar_mario.png differ diff --git a/Modules/Contact/index.php b/Modules/Contact/index.php new file mode 100755 index 0000000..7a4099a --- /dev/null +++ b/Modules/Contact/index.php @@ -0,0 +1,66 @@ + +
+
+
+
+

+ Contact +

+
+ + + + + + + + + + + + + + + + + +
+

Christoph Haas

+

# Initiator des Projekts

+

# Webprogrammierung

+

# Serverkonfiguration

+

Klasse: 5bHELT

+

Email: + Christoph Haas +

+
+ +
+

Mario Stöckholzer

+

# Serverkonfiguration

+

# Scriptentwickung

+

Klasse: 5bHELT

+

Email: + Mario Stöckholzer +

+
+ +
+

Josua Kucher

+

# Beta-tester

+

# Serverbesitzer

+

# Art and Design

+

Klasse: 5bHELT

+

Email: + Josua Kucher +

+
+ +
+ +
+
+
+
+
+ diff --git a/Modules/Downloads/config/.htaccess b/Modules/Downloads/config/.htaccess new file mode 100755 index 0000000..e019832 --- /dev/null +++ b/Modules/Downloads/config/.htaccess @@ -0,0 +1 @@ +deny from all diff --git a/Modules/Downloads/config/.htusers.php b/Modules/Downloads/config/.htusers.php new file mode 100755 index 0000000..956afca --- /dev/null +++ b/Modules/Downloads/config/.htusers.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/Modules/Downloads/config/conf.php b/Modules/Downloads/config/conf.php new file mode 100755 index 0000000..3a2c209 --- /dev/null +++ b/Modules/Downloads/config/conf.php @@ -0,0 +1,37 @@ + Only (experimental) Zip-support + $GLOBALS["zip"] = false; //function_exists("gzcompress"); + $GLOBALS["tar"] = false; + $GLOBALS["tgz"] = false; + + // QuiXplorer version: + $GLOBALS["version"] = "2.3"; +//------------------------------------------------------------------------------ +// Global User Variables (used when $require_login==false) + + // the home directory for the filemanager: (use '/', not '\' or '\\', no trailing '/') + $GLOBALS["home_dir"] = db_getconfval("downdir"); + + // the url corresponding with the home directory: (no trailing '/') + $GLOBALS["home_url"] = "http://localhost/explorer"; + + // show hidden files in QuiXplorer: (hide files starting with '.', as in Linux/UNIX) + $GLOBALS["show_hidden"] = false; + + // filenames not allowed to access: (uses PCRE regex syntax) + $GLOBALS["no_access"] = "^\.ht"; + + // user permissions bitfield: (1=modify, 2=password, 4=admin, add the numbers) + $GLOBALS["permissions"] = 7; +?> diff --git a/Modules/Downloads/config/mimes.php b/Modules/Downloads/config/mimes.php new file mode 100755 index 0000000..282a85e --- /dev/null +++ b/Modules/Downloads/config/mimes.php @@ -0,0 +1,78 @@ + array($GLOBALS["mimes"]["dir"],"dir.gif"), + "exe" => array($GLOBALS["mimes"]["exe"],"exe.gif","\.exe$|\.com$|\.bin$"), + "file" => array($GLOBALS["mimes"]["file"],"file.gif") +); +$GLOBALS["used_mime_types"]=array( + // text + "text" => array($GLOBALS["mimes"]["text"],"txt.gif","\.txt$"), + + // programming + "php" => array($GLOBALS["mimes"]["php"],"php.gif","\.php$|\.php3$|\.phtml$|\.inc$"), + "sql" => array($GLOBALS["mimes"]["sql"],"src.gif","\.sql$"), + "perl" => array($GLOBALS["mimes"]["perl"],"pl.gif","\.pl$"), + "html" => array($GLOBALS["mimes"]["html"],"html.gif","\.htm$|\.html$|\.shtml$|\.dhtml$|\.xml$"), + "js" => array($GLOBALS["mimes"]["js"],"js.gif","\.js$"), + "css" => array($GLOBALS["mimes"]["css"],"src.gif","\.css$"), + "cgi" => array($GLOBALS["mimes"]["cgi"],"exe.gif","\.cgi$"), + //"py" => array($GLOBALS["mimes"]["py"],"py.gif","\.py$"), + //"sh" => array($GLOBALS["mimes"]["sh"],"sh.gif","\.sh$"), + // C++ + "cpps" => array($GLOBALS["mimes"]["cpps"],"cpp.gif","\.cpp$|\.c$|\.cc$|\.cxx$"), + "cpph" => array($GLOBALS["mimes"]["cpph"],"h.gif","\.hpp$|\.h$"), + // Java + "javas" => array($GLOBALS["mimes"]["javas"],"java.gif","\.java$"), + "javac" => array($GLOBALS["mimes"]["javac"],"java.gif","\.class$|\.jar$"), + // Pascal + "pas" => array($GLOBALS["mimes"]["pas"],"src.gif","\.p$|\.pas$"), + + // images + "gif" => array($GLOBALS["mimes"]["gif"],"image.gif","\.gif$"), + "jpg" => array($GLOBALS["mimes"]["jpg"],"image.gif","\.jpg$|\.jpeg$"), + "bmp" => array($GLOBALS["mimes"]["bmp"],"image.gif","\.bmp$"), + "png" => array($GLOBALS["mimes"]["png"],"image.gif","\.png$"), + + // compressed + "zip" => array($GLOBALS["mimes"]["zip"],"zip.gif","\.zip$"), + "tar" => array($GLOBALS["mimes"]["tar"],"tar.gif","\.tar$"), + "gzip" => array($GLOBALS["mimes"]["gzip"],"tgz.gif","\.tgz$|\.gz$"), + "bzip2" => array($GLOBALS["mimes"]["bzip2"],"tgz.gif","\.bz2$"), + "rar" => array($GLOBALS["mimes"]["rar"],"tgz.gif","\.rar$"), + //"deb" => array($GLOBALS["mimes"]["deb"],"package.gif","\.deb$"), + //"rpm" => array($GLOBALS["mimes"]["rpm"],"package.gif","\.rpm$"), + + // music + "mp3" => array($GLOBALS["mimes"]["mp3"],"mp3.gif","\.mp3$"), + "wav" => array($GLOBALS["mimes"]["wav"],"sound.gif","\.wav$"), + "midi" => array($GLOBALS["mimes"]["midi"],"midi.gif","\.mid$"), + "real" => array($GLOBALS["mimes"]["real"],"real.gif","\.rm$|\.ra$|\.ram$"), + //"play" => array($GLOBALS["mimes"]["play"],"mp3.gif","\.pls$|\.m3u$"), + + // movie + "mpg" => array($GLOBALS["mimes"]["mpg"],"video.gif","\.mpg$|\.mpeg$"), + "mov" => array($GLOBALS["mimes"]["mov"],"video.gif","\.mov$"), + "avi" => array($GLOBALS["mimes"]["avi"],"video.gif","\.avi$"), + "flash" => array($GLOBALS["mimes"]["flash"],"flash.gif","\.swf$"), + + // Micosoft / Adobe + "word" => array($GLOBALS["mimes"]["word"],"word.gif","\.doc$"), + "excel" => array($GLOBALS["mimes"]["excel"],"spread.gif","\.xls$"), + "pdf" => array($GLOBALS["mimes"]["pdf"],"pdf.gif","\.pdf$") +); +//------------------------------------------------------------------------------ +?> diff --git a/Modules/Downloads/getdown.php b/Modules/Downloads/getdown.php new file mode 100755 index 0000000..98dbc9a --- /dev/null +++ b/Modules/Downloads/getdown.php @@ -0,0 +1,10 @@ + diff --git a/Modules/Downloads/getfile.php b/Modules/Downloads/getfile.php new file mode 100755 index 0000000..0bef161 --- /dev/null +++ b/Modules/Downloads/getfile.php @@ -0,0 +1,123 @@ +DONT TRY TO HACK!
"; + echo "Your IP is logged, an administrator has been informed!
"; + echo "Script written by h44z"; + exit; +} +elseif(down_home($abs_dir)==true) +{ + $abs_dir = "DONTTRYTOHACK"; + echo "

DONT TRY TO HACK!


"; + echo "Your IP is logged, an administrator has been informed!
"; + echo "Script written by h44z"; + exit; +} +//SECURITY FIXX ------------------------------ +else +{ + $abs_dir = $abs_dir; +} + + +ob_start(); + $browser=id_browser(); + header('Content-Type: '.(($browser=='IE' || $browser=='OPERA')? + 'application/octetstream':'application/octet-stream')); + header('Expires: '.gmdate('D, d M Y H:i:s').' GMT'); + header('Content-Transfer-Encoding: binary'); + header('Content-Length: '.filesize($abs_item)); + if($browser=='IE') { + header('Content-Disposition: attachment; filename="'.$item.'"'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + } else { + header('Content-Disposition: attachment; filename="'.$item.'"'); + header('Cache-Control: no-cache, must-revalidate'); + header('Pragma: no-cache'); + } +ob_end_flush(); + + + +function get_abs_dir($dir) +{ // get absolute path + $abs_dir="/home/christoph/explorer"; + if($dir!="") $abs_dir.="/".$dir; + return $abs_dir; +} + +function get_abs_item($dir, $item) +{ // get absolute file+path + return get_abs_dir($dir)."/".$item; +} + +function id_browser() { + $browser=$GLOBALS['__SERVER']['HTTP_USER_AGENT']; + + if(ereg('Opera(/| )([0-9].[0-9]{1,2})', $browser)) { + return 'OPERA'; + } else if(ereg('MSIE ([0-9].[0-9]{1,2})', $browser)) { + return 'IE'; + } else if(ereg('OmniWeb/([0-9].[0-9]{1,2})', $browser)) { + return 'OMNIWEB'; + } else if(ereg('(Konqueror/)(.*)', $browser)) { + return 'KONQUEROR'; + } else if(ereg('Mozilla/([0-9].[0-9]{1,2})', $browser)) { + return 'MOZILLA'; + } else { + return 'OTHER'; + } +} + + +//String contains funktion +function contains($str, $content, $ignorecase=true) +{ + if ($ignorecase){ + $str = strtolower($str); + $content = strtolower($content); + } + return strpos($content,$str) ? true : false; +} + +function get_show_item($dir, $item) { // show this file? + if($item == "..") return false; + + if("^\.ht"!="" && @eregi("^\.ht",$item)) return false; + + if(false==false) { + $dirs=explode("/",$dir); + foreach($dirs as $i) if(substr($i,0,1)==".") return false; + } + + return true; +} + +function down_home($abs_dir) { // dir deeper than home? + $real_home = @realpath("/home/christoph/explorer"); + $real_dir = @realpath($abs_dir); + + if($real_home===false || $real_dir===false) { + if(@eregi("\\.\\.",$abs_dir)) return false; + } else if(strcmp($real_home,@substr($real_dir,0,strlen($real_home)))) { + return false; + } + return true; +} + +@readfile($abs_item); +exit; + +?> diff --git a/Modules/Downloads/img/_.gif b/Modules/Downloads/img/_.gif new file mode 100644 index 0000000..f44a942 Binary files /dev/null and b/Modules/Downloads/img/_.gif differ diff --git a/Modules/Downloads/img/__copy.gif b/Modules/Downloads/img/__copy.gif new file mode 100644 index 0000000..49c935f Binary files /dev/null and b/Modules/Downloads/img/__copy.gif differ diff --git a/Modules/Downloads/img/__cut.gif b/Modules/Downloads/img/__cut.gif new file mode 100644 index 0000000..6ea7928 Binary files /dev/null and b/Modules/Downloads/img/__cut.gif differ diff --git a/Modules/Downloads/img/__paste.gif b/Modules/Downloads/img/__paste.gif new file mode 100644 index 0000000..beb1cfb Binary files /dev/null and b/Modules/Downloads/img/__paste.gif differ diff --git a/Modules/Downloads/img/_archive.gif b/Modules/Downloads/img/_archive.gif new file mode 100644 index 0000000..a8bade5 Binary files /dev/null and b/Modules/Downloads/img/_archive.gif differ diff --git a/Modules/Downloads/img/_arrowdown.gif b/Modules/Downloads/img/_arrowdown.gif new file mode 100644 index 0000000..1191cc5 Binary files /dev/null and b/Modules/Downloads/img/_arrowdown.gif differ diff --git a/Modules/Downloads/img/_arrowup.gif b/Modules/Downloads/img/_arrowup.gif new file mode 100644 index 0000000..b7c7db6 Binary files /dev/null and b/Modules/Downloads/img/_arrowup.gif differ diff --git a/Modules/Downloads/img/_copy.gif b/Modules/Downloads/img/_copy.gif new file mode 100644 index 0000000..83e03c1 Binary files /dev/null and b/Modules/Downloads/img/_copy.gif differ diff --git a/Modules/Downloads/img/_copy_.gif b/Modules/Downloads/img/_copy_.gif new file mode 100644 index 0000000..9f623cd Binary files /dev/null and b/Modules/Downloads/img/_copy_.gif differ diff --git a/Modules/Downloads/img/_delete.gif b/Modules/Downloads/img/_delete.gif new file mode 100644 index 0000000..399146f Binary files /dev/null and b/Modules/Downloads/img/_delete.gif differ diff --git a/Modules/Downloads/img/_delete_.gif b/Modules/Downloads/img/_delete_.gif new file mode 100644 index 0000000..e5e8d02 Binary files /dev/null and b/Modules/Downloads/img/_delete_.gif differ diff --git a/Modules/Downloads/img/_download.gif b/Modules/Downloads/img/_download.gif new file mode 100644 index 0000000..81a4894 Binary files /dev/null and b/Modules/Downloads/img/_download.gif differ diff --git a/Modules/Downloads/img/_download_.gif b/Modules/Downloads/img/_download_.gif new file mode 100644 index 0000000..b6d62fb Binary files /dev/null and b/Modules/Downloads/img/_download_.gif differ diff --git a/Modules/Downloads/img/_edit.gif b/Modules/Downloads/img/_edit.gif new file mode 100644 index 0000000..b172f9a Binary files /dev/null and b/Modules/Downloads/img/_edit.gif differ diff --git a/Modules/Downloads/img/_edit_.gif b/Modules/Downloads/img/_edit_.gif new file mode 100644 index 0000000..2541e1e Binary files /dev/null and b/Modules/Downloads/img/_edit_.gif differ diff --git a/Modules/Downloads/img/_home.gif b/Modules/Downloads/img/_home.gif new file mode 100644 index 0000000..b32cf44 Binary files /dev/null and b/Modules/Downloads/img/_home.gif differ diff --git a/Modules/Downloads/img/_info.gif b/Modules/Downloads/img/_info.gif new file mode 100644 index 0000000..adb62fb Binary files /dev/null and b/Modules/Downloads/img/_info.gif differ diff --git a/Modules/Downloads/img/_logout.gif b/Modules/Downloads/img/_logout.gif new file mode 100644 index 0000000..c8247d8 Binary files /dev/null and b/Modules/Downloads/img/_logout.gif differ diff --git a/Modules/Downloads/img/_move.gif b/Modules/Downloads/img/_move.gif new file mode 100644 index 0000000..1769363 Binary files /dev/null and b/Modules/Downloads/img/_move.gif differ diff --git a/Modules/Downloads/img/_move_.gif b/Modules/Downloads/img/_move_.gif new file mode 100644 index 0000000..0a142aa Binary files /dev/null and b/Modules/Downloads/img/_move_.gif differ diff --git a/Modules/Downloads/img/_refresh.gif b/Modules/Downloads/img/_refresh.gif new file mode 100644 index 0000000..6c206d9 Binary files /dev/null and b/Modules/Downloads/img/_refresh.gif differ diff --git a/Modules/Downloads/img/_search.gif b/Modules/Downloads/img/_search.gif new file mode 100644 index 0000000..4165f4c Binary files /dev/null and b/Modules/Downloads/img/_search.gif differ diff --git a/Modules/Downloads/img/_up.gif b/Modules/Downloads/img/_up.gif new file mode 100644 index 0000000..9a8e55f Binary files /dev/null and b/Modules/Downloads/img/_up.gif differ diff --git a/Modules/Downloads/img/_upload.gif b/Modules/Downloads/img/_upload.gif new file mode 100644 index 0000000..7958f50 Binary files /dev/null and b/Modules/Downloads/img/_upload.gif differ diff --git a/Modules/Downloads/img/_upload_.gif b/Modules/Downloads/img/_upload_.gif new file mode 100644 index 0000000..a9f5f2f Binary files /dev/null and b/Modules/Downloads/img/_upload_.gif differ diff --git a/Modules/Downloads/img/cpp.gif b/Modules/Downloads/img/cpp.gif new file mode 100644 index 0000000..ae41e61 Binary files /dev/null and b/Modules/Downloads/img/cpp.gif differ diff --git a/Modules/Downloads/img/dir.gif b/Modules/Downloads/img/dir.gif new file mode 100644 index 0000000..4d0f352 Binary files /dev/null and b/Modules/Downloads/img/dir.gif differ diff --git a/Modules/Downloads/img/exe.gif b/Modules/Downloads/img/exe.gif new file mode 100644 index 0000000..b6b4123 Binary files /dev/null and b/Modules/Downloads/img/exe.gif differ diff --git a/Modules/Downloads/img/file.gif b/Modules/Downloads/img/file.gif new file mode 100644 index 0000000..fbdfa97 Binary files /dev/null and b/Modules/Downloads/img/file.gif differ diff --git a/Modules/Downloads/img/flash.gif b/Modules/Downloads/img/flash.gif new file mode 100644 index 0000000..2644783 Binary files /dev/null and b/Modules/Downloads/img/flash.gif differ diff --git a/Modules/Downloads/img/h.gif b/Modules/Downloads/img/h.gif new file mode 100644 index 0000000..9b43353 Binary files /dev/null and b/Modules/Downloads/img/h.gif differ diff --git a/Modules/Downloads/img/html.gif b/Modules/Downloads/img/html.gif new file mode 100644 index 0000000..734c9ac Binary files /dev/null and b/Modules/Downloads/img/html.gif differ diff --git a/Modules/Downloads/img/image.gif b/Modules/Downloads/img/image.gif new file mode 100644 index 0000000..e318124 Binary files /dev/null and b/Modules/Downloads/img/image.gif differ diff --git a/Modules/Downloads/img/java.gif b/Modules/Downloads/img/java.gif new file mode 100644 index 0000000..2a5a5ca Binary files /dev/null and b/Modules/Downloads/img/java.gif differ diff --git a/Modules/Downloads/img/js.gif b/Modules/Downloads/img/js.gif new file mode 100644 index 0000000..d8468a9 Binary files /dev/null and b/Modules/Downloads/img/js.gif differ diff --git a/Modules/Downloads/img/midi.gif b/Modules/Downloads/img/midi.gif new file mode 100644 index 0000000..8803fd1 Binary files /dev/null and b/Modules/Downloads/img/midi.gif differ diff --git a/Modules/Downloads/img/mp3.gif b/Modules/Downloads/img/mp3.gif new file mode 100644 index 0000000..93cb293 Binary files /dev/null and b/Modules/Downloads/img/mp3.gif differ diff --git a/Modules/Downloads/img/pdf.gif b/Modules/Downloads/img/pdf.gif new file mode 100644 index 0000000..53f2c6c Binary files /dev/null and b/Modules/Downloads/img/pdf.gif differ diff --git a/Modules/Downloads/img/php.gif b/Modules/Downloads/img/php.gif new file mode 100644 index 0000000..cc390a9 Binary files /dev/null and b/Modules/Downloads/img/php.gif differ diff --git a/Modules/Downloads/img/pl.gif b/Modules/Downloads/img/pl.gif new file mode 100644 index 0000000..e696888 Binary files /dev/null and b/Modules/Downloads/img/pl.gif differ diff --git a/Modules/Downloads/img/real.gif b/Modules/Downloads/img/real.gif new file mode 100644 index 0000000..7587902 Binary files /dev/null and b/Modules/Downloads/img/real.gif differ diff --git a/Modules/Downloads/img/sound.gif b/Modules/Downloads/img/sound.gif new file mode 100644 index 0000000..2dad21b Binary files /dev/null and b/Modules/Downloads/img/sound.gif differ diff --git a/Modules/Downloads/img/spacer.gif b/Modules/Downloads/img/spacer.gif new file mode 100644 index 0000000..1d11fa9 Binary files /dev/null and b/Modules/Downloads/img/spacer.gif differ diff --git a/Modules/Downloads/img/spread.gif b/Modules/Downloads/img/spread.gif new file mode 100644 index 0000000..05afecf Binary files /dev/null and b/Modules/Downloads/img/spread.gif differ diff --git a/Modules/Downloads/img/src.gif b/Modules/Downloads/img/src.gif new file mode 100644 index 0000000..726199b Binary files /dev/null and b/Modules/Downloads/img/src.gif differ diff --git a/Modules/Downloads/img/tar.gif b/Modules/Downloads/img/tar.gif new file mode 100644 index 0000000..5134e16 Binary files /dev/null and b/Modules/Downloads/img/tar.gif differ diff --git a/Modules/Downloads/img/tgz.gif b/Modules/Downloads/img/tgz.gif new file mode 100644 index 0000000..a8bade5 Binary files /dev/null and b/Modules/Downloads/img/tgz.gif differ diff --git a/Modules/Downloads/img/txt.gif b/Modules/Downloads/img/txt.gif new file mode 100644 index 0000000..428b469 Binary files /dev/null and b/Modules/Downloads/img/txt.gif differ diff --git a/Modules/Downloads/img/video.gif b/Modules/Downloads/img/video.gif new file mode 100644 index 0000000..4ab8dc8 Binary files /dev/null and b/Modules/Downloads/img/video.gif differ diff --git a/Modules/Downloads/img/word.gif b/Modules/Downloads/img/word.gif new file mode 100644 index 0000000..c9e3e66 Binary files /dev/null and b/Modules/Downloads/img/word.gif differ diff --git a/Modules/Downloads/img/zip.gif b/Modules/Downloads/img/zip.gif new file mode 100644 index 0000000..3658fa4 Binary files /dev/null and b/Modules/Downloads/img/zip.gif differ diff --git a/Modules/Downloads/include/.htaccess b/Modules/Downloads/include/.htaccess new file mode 100755 index 0000000..e019832 --- /dev/null +++ b/Modules/Downloads/include/.htaccess @@ -0,0 +1 @@ +deny from all diff --git a/Modules/Downloads/include/error.php b/Modules/Downloads/include/error.php new file mode 100755 index 0000000..eeecace --- /dev/null +++ b/Modules/Downloads/include/error.php @@ -0,0 +1,51 @@ +
".$GLOBALS["error_msg"]["error"].":"."

\n"; + echo $error."\n

"; + echo $GLOBALS["error_msg"]["back"].""; + if($extra!=NULL) echo " - ".$extra; + echo "

\n"; + exit; +} +//------------------------------------------------------------------------------ +?> \ No newline at end of file diff --git a/Modules/Downloads/include/fun_down.php b/Modules/Downloads/include/fun_down.php new file mode 100755 index 0000000..6089f29 --- /dev/null +++ b/Modules/Downloads/include/fun_down.php @@ -0,0 +1,32 @@ + diff --git a/Modules/Downloads/include/fun_extra.php b/Modules/Downloads/include/fun_extra.php new file mode 100755 index 0000000..95b0ee8 --- /dev/null +++ b/Modules/Downloads/include/fun_extra.php @@ -0,0 +1,259 @@ += 1073741824) { + $size = round($size / 1073741824 * 100) / 100 . " GB"; + } elseif($size >= 1048576) { + $size = round($size / 1048576 * 100) / 100 . " MB"; + } elseif($size >= 1024) { + $size = round($size / 1024 * 100) / 100 . " KB"; + } else $size = $size . " Bytes"; + if($size==0) $size="-"; + + return $size; +} +//------------------------------------------------------------------------------ +function get_file_date($dir, $item) { // file date + return @filemtime(get_abs_item($dir, $item)); +} +//------------------------------------------------------------------------------ +function parse_file_date($date) { // parsed file date + return @date($GLOBALS["date_fmt"],$date); +} +//------------------------------------------------------------------------------ +function get_is_image($dir, $item) { // is this file an image? + if(!get_is_file($dir, $item)) return false; + return @eregi($GLOBALS["images_ext"], $item); +} +//----------------------------------------------------------------------------- +function get_is_editable($dir, $item) { // is this file editable? + if(!get_is_file($dir, $item)) return false; + foreach($GLOBALS["editable_ext"] as $pat) if(@eregi($pat,$item)) return true; + return false; +} +//----------------------------------------------------------------------------- +function get_mime_type($dir, $item, $query) { // get file's mimetype + if(get_is_dir($dir, $item)) { // directory + $mime_type = $GLOBALS["super_mimes"]["dir"][0]; + $image = $GLOBALS["super_mimes"]["dir"][1]; + + if($query=="img") return $image; + else return $mime_type; + } + // mime_type + foreach($GLOBALS["used_mime_types"] as $mime) { + list($desc,$img,$ext) = $mime; + if(@eregi($ext,$item)) { + $mime_type = $desc; + $image = $img; + if($query=="img") return $image; + else return $mime_type; + } + } + + if((function_exists("is_executable") && + @is_executable(get_abs_item($dir,$item))) || + @eregi($GLOBALS["super_mimes"]["exe"][2],$item)) + { // executable + $mime_type = $GLOBALS["super_mimes"]["exe"][0]; + $image = $GLOBALS["super_mimes"]["exe"][1]; + } else { // unknown file + $mime_type = $GLOBALS["super_mimes"]["file"][0]; + $image = $GLOBALS["super_mimes"]["file"][1]; + } + + if($query=="img") return $image; + else return $mime_type; +} +//------------------------------------------------------------------------------ +function get_show_item($dir, $item) { // show this file? + if($item == "." || $item == ".." || + (substr($item,0,1)=="." && $GLOBALS["show_hidden"]==false)) return false; + + if($GLOBALS["no_access"]!="" && @eregi($GLOBALS["no_access"],$item)) return false; + + if($GLOBALS["show_hidden"]==false) { + $dirs=explode("/",$dir); + foreach($dirs as $i) if(substr($i,0,1)==".") return false; + } + + return true; +} +//------------------------------------------------------------------------------ +function copy_dir($source,$dest) { // copy dir + $ok = true; + + if(!@mkdir($dest,0777)) return false; + if(($handle=@opendir($source))===false) show_error(basename($source).": ".$GLOBALS["error_msg"]["opendir"]); + + while(($file=readdir($handle))!==false) { + if(($file==".." || $file==".")) continue; + + $new_source = $source."/".$file; + $new_dest = $dest."/".$file; + if(@is_dir($new_source)) { + $ok=copy_dir($new_source,$new_dest); + } else { + $ok=@copy($new_source,$new_dest); + } + } + closedir($handle); + return $ok; +} +//------------------------------------------------------------------------------ +function remove($item) { // remove file / dir + $ok = true; + if(@is_link($item) || @is_file($item)) $ok=@unlink($item); + elseif(@is_dir($item)) { + if(($handle=@opendir($item))===false) show_error(basename($item).": ".$GLOBALS["error_msg"]["opendir"]); + + while(($file=readdir($handle))!==false) { + if(($file==".." || $file==".")) continue; + + $new_item = $item."/".$file; + if(!@file_exists($new_item)) show_error(basename($item).": ".$GLOBALS["error_msg"]["readdir"]); + //if(!get_show_item($item, $new_item)) continue; + + if(@is_dir($new_item)) { + $ok=remove($new_item); + } else { + $ok=@unlink($new_item); + } + } + + closedir($handle); + $ok=@rmdir($item); + } + return $ok; +} +//------------------------------------------------------------------------------ +function get_max_file_size() { // get php max_upload_file_size + $max = get_cfg_var("upload_max_filesize"); + if(@eregi("G$",$max)) { + $max = substr($max,0,-1); + $max = round($max*1073741824); + } elseif(@eregi("M$",$max)) { + $max = substr($max,0,-1); + $max = round($max*1048576); + } elseif(@eregi("K$",$max)) { + $max = substr($max,0,-1); + $max = round($max*1024); + } + + return $max; +} +//------------------------------------------------------------------------------ +function down_home($abs_dir) { // dir deeper than home? + $real_home = @realpath($GLOBALS["home_dir"]); + $real_dir = @realpath($abs_dir); + + if($real_home===false || $real_dir===false) { + if(@eregi("\\.\\.",$abs_dir)) return false; + } else if(strcmp($real_home,@substr($real_dir,0,strlen($real_home)))) { + return false; + } + return true; +} +//------------------------------------------------------------------------------ +function id_browser() { + $browser=$GLOBALS['__SERVER']['HTTP_USER_AGENT']; + + if(ereg('Opera(/| )([0-9].[0-9]{1,2})', $browser)) { + return 'OPERA'; + } else if(ereg('MSIE ([0-9].[0-9]{1,2})', $browser)) { + return 'IE'; + } else if(ereg('OmniWeb/([0-9].[0-9]{1,2})', $browser)) { + return 'OMNIWEB'; + } else if(ereg('(Konqueror/)(.*)', $browser)) { + return 'KONQUEROR'; + } else if(ereg('Mozilla/([0-9].[0-9]{1,2})', $browser)) { + return 'MOZILLA'; + } else { + return 'OTHER'; + } +} +//------------------------------------------------------------------------------ +?> diff --git a/Modules/Downloads/include/fun_list.php b/Modules/Downloads/include/fun_list.php new file mode 100755 index 0000000..c983320 --- /dev/null +++ b/Modules/Downloads/include/fun_list.php @@ -0,0 +1,241 @@ + ".@readlink($abs_item); + if(is_dir($abs_item)) { + $link = make_link("list",get_rel_item($dir, $item),NULL); + } else { //if(get_is_editable($dir,$item) || get_is_image($dir,$item)) { + $link = make_link("download",$dir,$item); + $target = "_blank"; + } //else $link = ""; + + echo "\n"; + // Icon + Link + echo ""; + /*if($link!="") */ echo""; + //else echo ""; + echo "\"\" "; + $s_item=$item; if(strlen($s_item)>50) $s_item=substr($s_item,0,47)."..."; + echo htmlspecialchars($s_item)."\n"; // ...$extra... + // Size + echo "".parse_file_size(get_file_size($dir,$item))."\n"; + // Type + echo "".get_mime_type($dir, $item, "type")."\n"; + // Modified + echo "".parse_file_date(get_file_date($dir,$item))."\n"; + // Permissions +// echo ""; + +// echo parse_file_type($dir,$item).parse_file_perms(get_file_perms($dir,$item)); +// if($allow) echo ""; +// echo "\n"; + // Actions + echo "\n\n"; + // DOWNLOAD + if(get_is_file($dir,$item)) { + if($allow) { + echo "\n"; + } else if(!$allow) { + echo "\n"; + } + } else { + echo "\n"; + } + echo "
"; + echo "\"".$GLOBALS["messages"]["downlink"];\"".$GLOBALS["messages"]["downlink"];\"\"
\n\n"; + } +} +//------------------------------------------------------------------------------ +// MAIN FUNCTION +function list_dir($dir) { // list directory contents + $allow=($GLOBALS["permissions"]&01)==01; + $admin=((($GLOBALS["permissions"]&04)==04) || (($GLOBALS["permissions"]&02)==02)); + + $dir_up = dirname($dir); + if($dir_up==".") $dir_up = ""; + + if(!get_show_item($dir_up,basename($dir))) show_error($dir." : ".$GLOBALS["error_msg"]["accessdir"]); + + // make file & dir tables, & get total filesize & number of items + make_tables($dir, $dir_list, $file_list, $tot_file_size, $num_items); + + $s_dir=$dir; if(strlen($s_dir)>50) $s_dir="...".substr($s_dir,-47); + echo "Directory: /".get_rel_item("",$s_dir); + + // Javascript functions: + include $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/include/javascript.php"; + + + // Toolbar + echo "
\n"; + + echo "
\n"; + + // PARENT DIR + echo "\n"; + // HOME DIR + echo "\n"; + // RELOAD + echo "\n"; + + echo "
"; + echo ""; + echo "\"".$GLOBALS["messages"]["reloadlink"];
\n"; + + // End Toolbar + + + // Begin Table + Form for checkboxes + echo"\n"; + + // Table Header + echo "\n"; + echo "\n\n\n\n"; + echo "\n"; + echo "\n"; + + // make & print Table using lists + print_table($dir, make_list($dir_list, $file_list), $allow); + + // print number of items & total filesize + echo "\n"; + echo "\n"; + echo "\n"; + for($i=0;$i<3;++$i) echo""; + echo "\n

\n"; + echo $GLOBALS["messages"]["nameheader"]; + echo ""; + echo $GLOBALS["messages"]["sizeheader"]; + echo ""; + echo $GLOBALS["messages"]["typeheader"]; + echo ""; + echo $GLOBALS["messages"]["modifheader"]; + echo "".$GLOBALS["messages"]["actionheader"]."


".$num_items." ".$GLOBALS["messages"]["miscitems"]." ("; + if(function_exists("disk_free_space")) { + $free=parse_file_size(disk_free_space(get_abs_dir($dir))); + } elseif(function_exists("diskfreespace")) { + $free=parse_file_size(diskfreespace(get_abs_dir($dir))); + } else $free="?"; + // echo "Total: ".parse_file_size(disk_total_space(get_abs_dir($dir))).", "; + echo $GLOBALS["messages"]["miscfree"].": ".$free.")".parse_file_size($tot_file_size)."

\n"; + + +} +//------------------------------------------------------------------------------ +?> diff --git a/Modules/Downloads/include/init.php b/Modules/Downloads/include/init.php new file mode 100755 index 0000000..71eb568 --- /dev/null +++ b/Modules/Downloads/include/init.php @@ -0,0 +1,67 @@ +ERROR: Your PHP version is too old
". + "You need at least PHP 4.0.0, preferably PHP 4.3.1 or higher."); +} +//------------------------------------------------------------------------------ +// Get Action +$GLOBALS['__GET']["action"] = $GLOBALS['__GET']["uebergabe"]; + +if(isset($GLOBALS['__GET']["action"])) $GLOBALS["action"]=$GLOBALS['__GET']["action"]; +else $GLOBALS["action"]="list"; +if($GLOBALS["action"]=="post" && isset($GLOBALS['__POST']["do_action"])) { + $GLOBALS["action"]=$GLOBALS['__POST']["do_action"]; +} +if($GLOBALS["action"]=="") $GLOBALS["action"]="list"; +$GLOBALS["action"]=stripslashes($GLOBALS["action"]); +// Default Dir +if(isset($GLOBALS['__GET']["dir"])) $GLOBALS["dir"]=stripslashes($GLOBALS['__GET']["dir"]); +else $GLOBALS["dir"]=""; +if($GLOBALS["dir"]==".") $GLOBALS["dir"]==""; +// Get Item +if(isset($GLOBALS['__GET']["item"])) $GLOBALS["item"]=stripslashes($GLOBALS['__GET']["item"]); +else $GLOBALS["item"]=""; +// Get Sort +if(isset($GLOBALS['__GET']["order"])) $GLOBALS["order"]=stripslashes($GLOBALS['__GET']["order"]); +else $GLOBALS["order"]="name"; +if($GLOBALS["order"]=="") $GLOBALS["order"]=="name"; +// Get Sortorder (yes==up) +if(isset($GLOBALS['__GET']["srt"])) $GLOBALS["srt"]=stripslashes($GLOBALS['__GET']["srt"]); +else $GLOBALS["srt"]="yes"; +if($GLOBALS["srt"]=="") $GLOBALS["srt"]=="yes"; +// Get Language +if(isset($GLOBALS['__GET']["lang"])) $GLOBALS["lang"]=$GLOBALS['__GET']["lang"]; +elseif(isset($GLOBALS['__POST']["lang"])) $GLOBALS["lang"]=$GLOBALS['__POST']["lang"]; +//------------------------------------------------------------------------------ +// Necessary files +ob_start(); // prevent unwanted output +require $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/config/conf.php"; +if(isset($GLOBALS["lang"])) $GLOBALS["language"]=$GLOBALS["lang"]; +require $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/lang/".$GLOBALS["language"].".php"; +require $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/lang/".$GLOBALS["language"]."_mimes.php"; +require $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/config/mimes.php"; +require $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/include/fun_extra.php"; +require $_SERVER["DOCUMENT_ROOT"]."/Modules/Downloads/include/error.php"; +ob_end_clean(); // get rid of cached unwanted output +//------------------------------------------------------------------------------ +$abs_dir=get_abs_dir($GLOBALS["dir"]); +if(!@file_exists($GLOBALS["home_dir"])) { + $extra=NULL; + show_error($GLOBALS["error_msg"]["home"],$extra); +} +if(!down_home($abs_dir)) show_error($GLOBALS["dir"]." : ".$GLOBALS["error_msg"]["abovehome"]); +if(!is_dir($abs_dir)) show_error($GLOBALS["dir"]." : ".$GLOBALS["error_msg"]["direxist"]); +//------------------------------------------------------------------------------ +?> diff --git a/Modules/Downloads/include/javascript.php b/Modules/Downloads/include/javascript.php new file mode 100755 index 0000000..df0352f --- /dev/null +++ b/Modules/Downloads/include/javascript.php @@ -0,0 +1,137 @@ + \ No newline at end of file diff --git a/Modules/Downloads/index.php b/Modules/Downloads/index.php new file mode 100644 index 0000000..896966a --- /dev/null +++ b/Modules/Downloads/index.php @@ -0,0 +1,40 @@ + + +
+
+
+
+

+ Downloads +

+
+ +
+
+
+
+
+ + diff --git a/Modules/Downloads/lang/_info.php b/Modules/Downloads/lang/_info.php new file mode 100644 index 0000000..18821c9 --- /dev/null +++ b/Modules/Downloads/lang/_info.php @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Modules/Downloads/lang/de.php b/Modules/Downloads/lang/de.php new file mode 100644 index 0000000..546c448 --- /dev/null +++ b/Modules/Downloads/lang/de.php @@ -0,0 +1,158 @@ + "FEHLER", + "back" => "Zurück", + + // root + "home" => "Das Home-Verzeichnis existiert nicht, kontrollieren sie ihre Einstellungen.", + "abovehome" => "Das aktuelle Verzeichnis darf nicht höher liegen als das Home-Verzeichnis.", + "targetabovehome" => "Das Zielverzeichnis darf nicht höher liegen als das Home-Verzeichnis.", + + // exist + "direxist" => "Dieses Verzeichnis existiert nicht.", + //"filedoesexist" => "Diese Datei existiert bereits.", + "fileexist" => "Diese Datei existiert nicht.", + "itemdoesexist" => "Dieses Objekt existiert bereits.", + "itemexist" => "Dieses Objekt existiert nicht.", + "targetexist" => "Das Zielverzeichnis existiert nicht.", + "targetdoesexist" => "Das Zielobjekt existiert bereits.", + + // open + "opendir" => "Kann Verzeichnis nicht öffnen.", + "readdir" => "Kann Verzeichnis nicht lesen", + + // access + "accessdir" => "Zugriff auf dieses Verzeichnis verweigert.", + "accessfile" => "Zugriff auf diese Datei verweigert.", + "accessitem" => "Zugriff auf dieses Objekt verweigert.", + "accessfunc" => "Zugriff auf diese Funktion verweigert.", + "accesstarget" => "Zugriff auf das Zielverzeichnis verweigert.", + + // actions + "permread" => "Rechte lesen fehlgeschlagen.", + "permchange" => "Rechte ändern fehlgeschlagen.", + "openfile" => "Datei öffnen fehlgeschlagen.", + "savefile" => "Datei speichern fehlgeschlagen.", + "createfile" => "Datei anlegen fehlgeschlagen.", + "createdir" => "Verzeichnis anlegen fehlgeschlagen.", + "uploadfile" => "Datei hochladen fehlgeschlagen.", + "copyitem" => "Kopieren fehlgeschlagen.", + "moveitem" => "Versetzen fehlgeschlagen.", + "delitem" => "Löschen fehlgeschlagen.", + "chpass" => "Passwort ändern fehlgeschlagen.", + "deluser" => "Benutzer löschen fehlgeschlagen.", + "adduser" => "Benutzer hinzufügen fehlgeschlagen.", + "saveuser" => "Benutzer speichern fehlgeschlagen.", + "searchnothing" => "Sie müssen etwas zum suchen eintragen.", + + // misc + "miscnofunc" => "Funktion nicht vorhanden.", + "miscfilesize" => "Datei ist größer als die maximale Größe.", + "miscfilepart" => "Datei wurde nur zum Teil hochgeladen.", + "miscnoname" => "Sie müssen einen Namen eintragen", + "miscselitems" => "Sie haben keine Objekt(e) ausgewählt.", + "miscdelitems" => "Sollen die \"+num+\" markierten Objekt(e) gelöscht werden?", + "miscdeluser" => "Soll der Benutzer '\"+user+\"' gelöscht werden?", + "miscnopassdiff" => "Das neue und das heutige Passwort sind nicht verschieden.", + "miscnopassmatch" => "Passwörter sind nicht gleich.", + "miscfieldmissed" => "Sie haben ein wichtiges Eingabefeld vergessen auszufüllen", + "miscnouserpass" => "Benutzer oder Passwort unbekannt.", + "miscselfremove" => "Sie können sich selbst nicht löschen.", + "miscuserexist" => "Der Benutzer existiert bereits.", + "miscnofinduser" => "Kann Benutzer nicht finden.", +); +$GLOBALS["messages"] = array( + // links + "permlink" => "RECHTE ÄNDERN", + "editlink" => "BEARBEITEN", + "downlink" => "HERUNTERLADEN", + "uplink" => "HÖHER", + "homelink" => "HOME", + "reloadlink" => "ERNEUERN", + "copylink" => "KOPIEREN", + "movelink" => "VERSETZEN", + "dellink" => "LÖSCHEN", + "comprlink" => "ARCHIVIEREN", + "adminlink" => "ADMINISTRATION", + "logoutlink" => "ABMELDEN", + "uploadlink" => "HOCHLADEN", + "searchlink" => "SUCHEN", + + // list + "nameheader" => "Name", + "sizeheader" => "Größe", + "typeheader" => "Typ", + "modifheader" => "Geändert", + "permheader" => "Rechte", + "actionheader" => "Aktionen", + "pathheader" => "Pfad", + + // buttons + "btncancel" => "Abbrechen", + "btnsave" => "Speichern", + "btnchange" => "Ändern", + "btnreset" => "Zurücksetzen", + "btnclose" => "Schließen", + "btncreate" => "Anlegen", + "btnsearch" => "Suchen", + "btnupload" => "Hochladen", + "btncopy" => "Kopieren", + "btnmove" => "Verschieben", + "btnlogin" => "Anmelden", + "btnlogout" => "Abmelden", + "btnadd" => "Hinzufügen", + "btnedit" => "Ändern", + "btnremove" => "Löschen", + + // actions + "actdir" => "Verzeichnis", + "actperms" => "Rechte ändern", + "actedit" => "Datei bearbeiten", + "actsearchresults" => "Suchergebnisse", + "actcopyitems" => "Objekt(e) kopieren", + "actcopyfrom" => "Kopiere von /%s nach /%s ", + "actmoveitems" => "Objekt(e) verschieben", + "actmovefrom" => "Versetze von /%s nach /%s ", + "actlogin" => "Anmelden", + "actloginheader" => "Melden sie sich an um QuiXplorer zu benutzen", + "actadmin" => "Administration", + "actchpwd" => "Passwort ändern", + "actusers" => "Benutzer", + "actarchive" => "Objekt(e) archivieren", + "actupload" => "Datei(en) hochladen", + + // misc + "miscitems" => "Objekt(e)", + "miscfree" => "Freier Speicher", + "miscusername" => "Benutzername", + "miscpassword" => "Passwort", + "miscoldpass" => "Altes Passwort", + "miscnewpass" => "Neues Passwort", + "miscconfpass" => "Bestätige Passwort", + "miscconfnewpass" => "Bestätige neues Passwort", + "miscchpass" => "Ändere Passwort", + "mischomedir" => "Home-Verzeichnis", + "mischomeurl" => "Home URL", + "miscshowhidden" => "Versteckte Objekte anzeigen", + "mischidepattern" => "Versteck-Filter", + "miscperms" => "Rechte", + "miscuseritems" => "(Name, Home-Verzeichnis, versteckte Objekte anzeigen, Rechte, aktiviert)", + "miscadduser" => "Benutzer hinzufügen", + "miscedituser" => "Benutzer '%s' ändern", + "miscactive" => "Aktiviert", + "misclang" => "Sprache", + "miscnoresult" => "Suche ergebnislos.", + "miscsubdirs" => "Suche in Unterverzeichnisse", + "miscpermnames" => array("Nur ansehen","Ändern","Passwort ändern", + "Ändern & Passwort ändern","Administrator"), + "miscyesno" => array("Ja","Nein","J","N"), + "miscchmod" => array("Besitzer", "Gruppe", "Publik"), +); +?> \ No newline at end of file diff --git a/Modules/Downloads/lang/de_mimes.php b/Modules/Downloads/lang/de_mimes.php new file mode 100644 index 0000000..9a382da --- /dev/null +++ b/Modules/Downloads/lang/de_mimes.php @@ -0,0 +1,60 @@ + "Verzeichnis", + "exe" => "Programm", + "file" => "Datei", + + // text + "text" => "Text Dokument", + + // programming + "php" => "PHP Script", + "sql" => "SQL Datei", + "perl" => "PERL Script", + "html" => "HTML Seite", + "js" => "Javascript Datei", + "css" => "CSS Datei", + "cgi" => "CGI Script", + // C++ + "cpps" => "C++ Quellcode", + "cpph" => "C++ Header Datei", + // Java + "javas" => "Java Quellcode", + "javac" => "Java Klasse Datei", + // Pascal + "pas" => "Pascal Quellcode", + + // images + "gif" => "GIF Bild", + "jpg" => "JPG Bild", + "bmp" => "BMP Bild", + "png" => "PNG Bild", + + // compressed + "zip" => "ZIP Archiv", + "tar" => "TAR Archiv", + "gzip" => "GZIP Archiv", + "bzip2" => "BZIP2 Archiv", + "rar" => "RAR Archiv", + + // music + "mp3" => "MP3 Audio Datei", + "wav" => "WAV Audio Datei", + "midi" => "MIDI Audio Datei", + "real" => "RealAudio Datei", + + // movie + "mpg" => "MPG Video Datei", + "mov" => "Movie Datei", + "avi" => "AVI Video Datei", + "flash" => "Flash Movie Datei", + + // Micosoft / Adobe + "word" => "Word Dokument", + "excel" => "Excel Dokument", + "pdf" => "PDF Datei" +); ?> \ No newline at end of file diff --git a/Modules/Downloads/lang/en.php b/Modules/Downloads/lang/en.php new file mode 100644 index 0000000..384d09d --- /dev/null +++ b/Modules/Downloads/lang/en.php @@ -0,0 +1,158 @@ + "ERROR(S)", + "back" => "Go Back", + + // root + "home" => "The home directory doesn't exist, check your settings.", + "abovehome" => "The current directory may not be above the home directory.", + "targetabovehome" => "The target directory may not be above the home directory.", + + // exist + "direxist" => "This directory doesn't exist.", + //"filedoesexist" => "This file already exists.", + "fileexist" => "This file doesn't exist.", + "itemdoesexist" => "This item already exists.", + "itemexist" => "This item doesn't exist.", + "targetexist" => "The target directory doesn't exist.", + "targetdoesexist" => "The target item already exists.", + + // open + "opendir" => "Unable to open directory.", + "readdir" => "Unable to read directory.", + + // access + "accessdir" => "You are not allowed to access this directory.", + "accessfile" => "You are not allowed to access this file.", + "accessitem" => "You are not allowed to access this item.", + "accessfunc" => "You are not allowed to use this function.", + "accesstarget" => "You are not allowed to access the target directory.", + + // actions + "permread" => "Getting permissions failed.", + "permchange" => "Permission-change failed.", + "openfile" => "File opening failed.", + "savefile" => "File saving failed.", + "createfile" => "File creation failed.", + "createdir" => "Directory creation failed.", + "uploadfile" => "File upload failed.", + "copyitem" => "Copying failed.", + "moveitem" => "Moving failed.", + "delitem" => "Deleting failed.", + "chpass" => "Changing password failed.", + "deluser" => "Removing user failed.", + "adduser" => "Adding user failed.", + "saveuser" => "Saving user failed.", + "searchnothing" => "You must supply something to search for.", + + // misc + "miscnofunc" => "Function unavailable.", + "miscfilesize" => "File exceeds maximum size.", + "miscfilepart" => "File was only partially uploaded.", + "miscnoname" => "You must supply a name.", + "miscselitems" => "You haven't selected any item(s).", + "miscdelitems" => "Are you sure you want to delete these \"+num+\" item(s)?", + "miscdeluser" => "Are you sure you want to delete user '\"+user+\"'?", + "miscnopassdiff" => "New password doesn't differ from current.", + "miscnopassmatch" => "Passwords don't match.", + "miscfieldmissed" => "You missed an important field.", + "miscnouserpass" => "Username or password incorrect.", + "miscselfremove" => "You can't remove yourself.", + "miscuserexist" => "User already exists.", + "miscnofinduser" => "Can't find user.", +); +$GLOBALS["messages"] = array( + // links + "permlink" => "CHANGE PERMISSIONS", + "editlink" => "EDIT", + "downlink" => "DOWNLOAD", + "uplink" => "UP", + "homelink" => "HOME", + "reloadlink" => "RELOAD", + "copylink" => "COPY", + "movelink" => "MOVE", + "dellink" => "DELETE", + "comprlink" => "ARCHIVE", + "adminlink" => "ADMIN", + "logoutlink" => "LOGOUT", + "uploadlink" => "UPLOAD", + "searchlink" => "SEARCH", + + // list + "nameheader" => "Name", + "sizeheader" => "Size", + "typeheader" => "Type", + "modifheader" => "Modified", + "permheader" => "Perm's", + "actionheader" => "Actions", + "pathheader" => "Path", + + // buttons + "btncancel" => "Cancel", + "btnsave" => "Save", + "btnchange" => "Change", + "btnreset" => "Reset", + "btnclose" => "Close", + "btncreate" => "Create", + "btnsearch" => "Search", + "btnupload" => "Upload", + "btncopy" => "Copy", + "btnmove" => "Move", + "btnlogin" => "Login", + "btnlogout" => "Logout", + "btnadd" => "Add", + "btnedit" => "Edit", + "btnremove" => "Remove", + + // actions + "actdir" => "Directory", + "actperms" => "Change permissions", + "actedit" => "Edit file", + "actsearchresults" => "Search results", + "actcopyitems" => "Copy item(s)", + "actcopyfrom" => "Copy from /%s to /%s ", + "actmoveitems" => "Move item(s)", + "actmovefrom" => "Move from /%s to /%s ", + "actlogin" => "Login", + "actloginheader" => "Login to use QuiXplorer", + "actadmin" => "Administration", + "actchpwd" => "Change password", + "actusers" => "Users", + "actarchive" => "Archive item(s)", + "actupload" => "Upload file(s)", + + // misc + "miscitems" => "Item(s)", + "miscfree" => "Free", + "miscusername" => "Username", + "miscpassword" => "Password", + "miscoldpass" => "Old password", + "miscnewpass" => "New password", + "miscconfpass" => "Confirm password", + "miscconfnewpass" => "Confirm new password", + "miscchpass" => "Change password", + "mischomedir" => "Home directory", + "mischomeurl" => "Home URL", + "miscshowhidden" => "Show hidden items", + "mischidepattern" => "Hide pattern", + "miscperms" => "Permissions", + "miscuseritems" => "(name, home directory, show hidden items, permissions, active)", + "miscadduser" => "add user", + "miscedituser" => "edit user '%s'", + "miscactive" => "Active", + "misclang" => "Language", + "miscnoresult" => "No results available.", + "miscsubdirs" => "Search subdirectories", + "miscpermnames" => array("View only","Modify","Change password","Modify & Change password", + "Administrator"), + "miscyesno" => array("Yes","No","Y","N"), + "miscchmod" => array("Owner", "Group", "Public"), +); +?> \ No newline at end of file diff --git a/Modules/Downloads/lang/en_mimes.php b/Modules/Downloads/lang/en_mimes.php new file mode 100644 index 0000000..7aab230 --- /dev/null +++ b/Modules/Downloads/lang/en_mimes.php @@ -0,0 +1,60 @@ + "Directory", + "exe" => "Executable File", + "file" => "File", + + // text + "text" => "Text File", + + // programming + "php" => "PHP Script", + "sql" => "SQL File", + "perl" => "PERL Script", + "html" => "HTML Page", + "js" => "Javascript File", + "css" => "CSS File", + "cgi" => "CGI Script", + // C++ + "cpps" => "C++ Source File", + "cpph" => "C++ Header File", + // Java + "javas" => "Java Source File", + "javac" => "Java Class File", + // Pascal + "pas" => "Pascal File", + + // images + "gif" => "GIF Picture", + "jpg" => "JPG Picture", + "bmp" => "BMP Picture", + "png" => "PNG Picture", + + // compressed + "zip" => "ZIP Archive", + "tar" => "TAR Archive", + "gzip" => "GZIP Archive", + "bzip2" => "BZIP2 Archive", + "rar" => "RAR Archive", + + // music + "mp3" => "MP3 Audio File", + "wav" => "WAV Audio File", + "midi" => "MIDI Audio File", + "real" => "RealAudio File", + + // movie + "mpg" => "MPG Video File", + "mov" => "Movie File", + "avi" => "AVI Video File", + "flash" => "Flash Movie File", + + // Micosoft / Adobe + "word" => "Word Document", + "excel" => "Excel Document", + "pdf" => "PDF File" +); ?> \ No newline at end of file diff --git a/Modules/Downloads/lang/es.php b/Modules/Downloads/lang/es.php new file mode 100644 index 0000000..165d0a2 --- /dev/null +++ b/Modules/Downloads/lang/es.php @@ -0,0 +1,157 @@ + "ERROR(ES)", + "back" => "Ir Atrás", + + // root + "home" => "El directorio home no existe, revise su configuración.", + "abovehome" => "El directorio actual no puede estar arriba del directorio home.", + "targetabovehome" => "El directorio objetivo no puede estar arriba del directorio home.", + + // exist + "direxist" => "Este directorio no existe.", + //"filedoesexist" => "Este archivo ya existe.", + "fileexist" => "Este archivo no existe.", + "itemdoesexist" => "Este artículo ya existe.", + "itemexist" => "Este artículo no existe.", + "targetexist" => "El directorio objetivo no existe.", + "targetdoesexist" => "El artículo objetivo ya existe.", + + // open + "opendir" => "Incapaz de abrir directorio.", + "readdir" => "Incapaz de leer directorio.", + + // access + "accessdir" => "Ud. no está permitido accesar este directorio.", + "accessfile" => "Ud. no está permitido accesar a este archivo.", + "accessitem" => "Ud. no está permitido accesar a este artículo.", + "accessfunc" => "Ud. no está permitido usar esta funcion.", + "accesstarget" => "Ud. no está permitido accesar al directorio objetivo.", + + // actions + "permread" => "Fracaso reuniendo permisos.", + "permchange" => "Fracaso en Cambio de permisos.", + "openfile" => "Fracaso abriendo archivo.", + "savefile" => "Fracaso guardando archivo.", + "createfile" => "Fracaso creando archivo.", + "createdir" => "Fracaso creando Directorio.", + "uploadfile" => "Fracaso subiendo archivo.", + "copyitem" => "Fracaso Copiando.", + "moveitem" => "Fracaso Moviendo.", + "delitem" => "Fracaso Borrando.", + "chpass" => "Fracaso Cambiando password.", + "deluser" => "Fracaso Removiendo usuario.", + "adduser" => "Fracaso Agragando usuario.", + "saveuser" => "Fracaso Guardadno usuario.", + "searchnothing" => "Ud. debe suministrar algo para la busqueda.", + + // misc + "miscnofunc" => "Función no disponible.", + "miscfilesize" => "Archivo excede maximo tamaño.", + "miscfilepart" => "Archivo fue parcialmente subido.", + "miscnoname" => "Ud. debe suministrar un nombre.", + "miscselitems" => "Ud. no tiene seleccionado(s) ningun artículo.", + "miscdelitems" => "Está seguro de querer borrar este(os) \"+num+\" artículo(s)?", + "miscdeluser" => "Está seguro de querer borrar usuario '\"+user+\"'?", + "miscnopassdiff" => "Nuevo password no difiere del actual.", + "miscnopassmatch" => "No coinciden los Passwords.", + "miscfieldmissed" => "Ud. falló en un importante campo.", + "miscnouserpass" => "Usuario o password incorrecto.", + "miscselfremove" => "Ud. no puede borrarse a si mismo.", + "miscuserexist" => "Usuario ya existe.", + "miscnofinduser" => "No se puede encontrar usuario.", +); +$GLOBALS["messages"] = array( + // links + "permlink" => "PORMISOS CAMBIADOS", + "editlink" => "EDITAR", + "downlink" => "DESCARGAR", + "uplink" => "ARRIBA", + "homelink" => "HOME", + "reloadlink" => "RECARGAR", + "copylink" => "COPIAR", + "movelink" => "MOVER", + "dellink" => "BORRAR", + "comprlink" => "ARCHIVAR", + "adminlink" => "ADMINISTRAR", + "logoutlink" => "SALIR", + "uploadlink" => "SUBIR", + "searchlink" => "BÚSQUEDA", + + // list + "nameheader" => "Nombre", + "sizeheader" => "Tamaño", + "typeheader" => "Tipo", + "modifheader" => "Modificado", + "permheader" => "Permisos", + "actionheader" => "Acciones", + "pathheader" => "Ruta", + + // buttons + "btncancel" => "Cancelar", + "btnsave" => "Grabar", + "btnchange" => "Cambiar", + "btnreset" => "Restablecer", + "btnclose" => "Cerrar", + "btncreate" => "Crear", + "btnsearch" => "Buscar", + "btnupload" => "Subir", + "btncopy" => "Copiar", + "btnmove" => "Mover", + "btnlogin" => "Login", + "btnlogout" => "Salir", + "btnadd" => "Añadir", + "btnedit" => "Editar", + "btnremove" => "Remover", + + // actions + "actdir" => "Directorio", + "actperms" => "Cambiar permisos", + "actedit" => "Editar archivo", + "actsearchresults" => "Resultado de busqueda.", + "actcopyitems" => "Copiar artículos(s)", + "actcopyfrom" => "Copia de /%s a /%s ", + "actmoveitems" => "Mover artículo(s)", + "actmovefrom" => "Mover de /%s a /%s ", + "actlogin" => "Login", + "actloginheader" => "Login para usar QuiXplorer", + "actadmin" => "Administración", + "actchpwd" => "Cambiar password", + "actusers" => "Usuarios", + "actarchive" => "Archivar item(s)", + "actupload" => "Subir Archivo(s)", + + // misc + "miscitems" => "Artículo(s)", + "miscfree" => "Libre", + "miscusername" => "Nombre de usuario", + "miscpassword" => "Password", + "miscoldpass" => "Password Antiguo", + "miscnewpass" => "Password Nuevo", + "miscconfpass" => "Confirmar password", + "miscconfnewpass" => "Confirmar nuevo password", + "miscchpass" => "Cambiar password", + "mischomedir" => "Directorio Home", + "mischomeurl" => "URL Home", + "miscshowhidden" => "Mostrar artículos ocultos", + "mischidepattern" => "Ocultar patrón", + "miscperms" => "Permisos", + "miscuseritems" => "(nombre, directorio home, mostrar artículos ocultos, permisos, activar)", + "miscadduser" => "añadir usuario", + "miscedituser" => "editar usario '%s'", + "miscactive" => "Activar", + "misclang" => "Lenguaje", + "miscnoresult" => "Resultado(s) no disponible(s).", + "miscsubdirs" => "Búsqueda de subdirectorios", + "miscpermnames" => array("Solo ver","Modificar","Cambiar password","Modificar & Cambiar password", "Administrador"), + "miscyesno" => array("Si","No","S","N"), + "miscchmod" => array("Propietario", "Grupo", "Público"), +); +?> \ No newline at end of file diff --git a/Modules/Downloads/lang/es_mimes.php b/Modules/Downloads/lang/es_mimes.php new file mode 100644 index 0000000..0c2d8d6 --- /dev/null +++ b/Modules/Downloads/lang/es_mimes.php @@ -0,0 +1,60 @@ + "Directorio", + "exe" => "Archivo Ejecutable", + "file" => "Archivo", + + // text + "text" => "Archivo de Texto", + + // programming + "php" => "Script PHP", + "sql" => "Archivo SQL", + "perl" => "Script PERL", + "html" => "Pagina HTML", + "js" => "Archivo Javascript", + "css" => "Archivo CSS", + "cgi" => "Script CGI", + // C++ + "cpps" => "Archivo C++ Source", + "cpph" => "Archivo C++ Header", + // Java + "javas" => "Archivo Java Source", + "javac" => "Archivo Java Class", + // Pascal + "pas" => "Archivo Pascal", + + // images + "gif" => "Imagen GIF", + "jpg" => "Imagen JPG", + "bmp" => "Imagen BMP", + "png" => "Imagen PNG", + + // compressed + "zip" => "Archivo ZIP", + "tar" => "Archivo TAR", + "gzip" => "Archivo GZIP", + "bzip2" => "Archivo BZIP2", + "rar" => "Archivo RAR", + + // music + "mp3" => "Archivo MP3 Audio", + "wav" => "Archivo WAV Audio", + "midi" => "Archivo MIDI Audio", + "real" => "Archivo RealAudio", + + // movie + "mpg" => "Archivo MPG Video", + "mov" => "Archivo Movie", + "avi" => "Archivo AVI Video", + "flash" => "Archivo Flash Movie", + + // Micosoft / Adobe + "word" => "Documento Word", + "excel" => "Documento Excel", + "pdf" => "Archivo PDF" +); ?> diff --git a/Modules/Downloads/lang/fr.php b/Modules/Downloads/lang/fr.php new file mode 100644 index 0000000..4b3b010 --- /dev/null +++ b/Modules/Downloads/lang/fr.php @@ -0,0 +1,158 @@ + "ERREUR(S)", + "back" => "Page précédente", + + // root + "home" => "Le répertoire home n'existe pas, vérifiez vos préférences.", + "abovehome" => "Le répertoire courant n'a pas l'air d'etre au-dessus du répertoire home.", + "targetabovehome" => "Le répertoire cible n'a pas l'air d'etre au-dessus du répertoire home.", + + // exist + "direxist" => "Ce répertoire n'existe pas.", + //"filedoesexist" => "Ce fichier existe deja.", + "fileexist" => "Ce fichier n'existe pas.", + "itemdoesexist" => "Cet item existe deja.", + "itemexist" => "Cet item n'existe pas.", + "targetexist" => "Le répertoire cible n'existe pas.", + "targetdoesexist" => "L'item cible existe deja.", + + // open + "opendir" => "Impossible d'ouvrir le répertoire.", + "readdir" => "Impossible de lire le répertoire.", + + // access + "accessdir" => "Vous n'etes pas autorisé a acceder a ce répertoire.", + "accessfile" => "Vous n'etes pas autorisé a accéder a ce fichier.", + "accessitem" => "Vous n'etes pas autorisé a accéder a cet item.", + "accessfunc" => "Vous ne pouvez pas utiliser cette fonction.", + "accesstarget" => "Vous n'etes pas autorisé a accéder au repertoire cible.", + + // actions + "permread" => "Lecture des permissions échouée.", + "permchange" => "Changement des permissions échoué.", + "openfile" => "Ouverture du fichier échouée.", + "savefile" => "Sauvegarde du fichier échouée.", + "createfile" => "Création du fichier échouée.", + "createdir" => "Création du répertoire échouée.", + "uploadfile" => "Envoie du fichier échoué.", + "copyitem" => "La copie a échouée.", + "moveitem" => "Le déplacement a échoué.", + "delitem" => "La supression a échouée.", + "chpass" => "Le changement de mot de passe a échoué.", + "deluser" => "La supression de l'usager a échouée.", + "adduser" => "L'ajout de l'usager a échouée.", + "saveuser" => "La sauvegarde de l'usager a échouée.", + "searchnothing" => "Vous devez entrez quelquechose à chercher.", + + // misc + "miscnofunc" => "Fonctionalité non disponible.", + "miscfilesize" => "La taille du fichier excède la taille maximale autorisée.", + "miscfilepart" => "L'envoi du fichier n'a pas été complété.", + "miscnoname" => "Vous devez entrer un nom.", + "miscselitems" => "Vous n'avez sélectionné aucuns item(s).", + "miscdelitems" => "Êtes-vous certain de vouloir supprimer ces \"+num+\" item(s)?", + "miscdeluser" => "Êtes-vous certain de vouloir supprimer l'usager '\"+user+\"'?", + "miscnopassdiff" => "Le nouveau mot de passe est indentique au précédent.", + "miscnopassmatch" => "Les mots de passe diffèrent.", + "miscfieldmissed" => "Un champs requis n'a pas été rempli.", + "miscnouserpass" => "Nom d'usager ou mot de passe invalide.", + "miscselfremove" => "Vous ne pouvez pas supprimer votre compte.", + "miscuserexist" => "Ce nom d'usager existe déjà.", + "miscnofinduser" => "Usager non trouvé.", +); +$GLOBALS["messages"] = array( + // links + "permlink" => "CHANGER LES PERMISSIONS", + "editlink" => "ÉDITER", + "downlink" => "TÉLÉCHARGER", + "uplink" => "PARENT", + "homelink" => "HOME", + "reloadlink" => "RAFRAÎCHIR", + "copylink" => "COPIER", + "movelink" => "DÉPLACER", + "dellink" => "SUPPRIMER", + "comprlink" => "ARCHIVER", + "adminlink" => "ADMINISTRATION", + "logoutlink" => "DÉCONNECTER", + "uploadlink" => "ENVOYER", + "searchlink" => "RECHERCHER", + + // list + "nameheader" => "Nom", + "sizeheader" => "Taille", + "typeheader" => "Type", + "modifheader" => "Modifié", + "permheader" => "Perm's", + "actionheader" => "Actions", + "pathheader" => "Chemin", + + // buttons + "btncancel" => "Annuler", + "btnsave" => "Sauver", + "btnchange" => "Changer", + "btnreset" => "Réinitialiser", + "btnclose" => "Fermer", + "btncreate" => "Créer", + "btnsearch" => "Chercher", + "btnupload" => "Envoyer", + "btncopy" => "Copier", + "btnmove" => "Déplacer", + "btnlogin" => "Connecter", + "btnlogout" => "Déconnecter", + "btnadd" => "Ajouter", + "btnedit" => "Éditer", + "btnremove" => "Supprimer", + + // actions + "actdir" => "Répertoire", + "actperms" => "Changer les permissions", + "actedit" => "Éditer le fichier", + "actsearchresults" => "Résultats de la recherche", + "actcopyitems" => "Copier le(s) item(s)", + "actcopyfrom" => "Copier de /%s à /%s ", + "actmoveitems" => "Déplacer le(s) item(s)", + "actmovefrom" => "Déplacer de /%s à /%s ", + "actlogin" => "Connecter", + "actloginheader" => "Connecter pour utiliser QuiXplorer", + "actadmin" => "Administration", + "actchpwd" => "Changer le mot de passe", + "actusers" => "Usagers", + "actarchive" => "Archiver le(s) item(s)", + "actupload" => "Envoyer le(s) fichier(s)", + + // misc + "miscitems" => "Item(s)", + "miscfree" => "Disponible", + "miscusername" => "Usager", + "miscpassword" => "Mot de passe", + "miscoldpass" => "Ancien mot de passe", + "miscnewpass" => "Nouveau mot de passe", + "miscconfpass" => "Confirmer le mot de passe", + "miscconfnewpass" => "Confirmer le nouveau mot de passe", + "miscchpass" => "Changer le mot de passe", + "mischomedir" => "Répertoire home", + "mischomeurl" => "URL home", + "miscshowhidden" => "Voir les items cachés", + "mischidepattern" => "Cacher pattern", + "miscperms" => "Permissions", + "miscuseritems" => "(nom, répertoire home, Voir les items cachés, permissions, actif)", + "miscadduser" => "ajouter un usager", + "miscedituser" => "editer l'usager '%s'", + "miscactive" => "Actif", + "misclang" => "Langage", + "miscnoresult" => "Aucun résultats.", + "miscsubdirs" => "Rechercher dans les sous-répertoires", + "miscpermnames" => array("Lecture seulement","Modifier","Changement le mot de passe","Modifier & Changer le mot de passe", + "Administrateur"), + "miscyesno" => array("Oui","Non","O","N"), + "miscchmod" => array("Propriétaire", "Groupe", "Publique"), +); +?> \ No newline at end of file diff --git a/Modules/Downloads/lang/fr_mimes.php b/Modules/Downloads/lang/fr_mimes.php new file mode 100644 index 0000000..f880a52 --- /dev/null +++ b/Modules/Downloads/lang/fr_mimes.php @@ -0,0 +1,60 @@ + "Répertoire", + "exe" => "Exécutable", + "file" => "Fichier", + + // text + "text" => "Fichier texte", + + // programming + "php" => "Script PHP", + "sql" => "Fichier SQL", + "perl" => "Script PERL", + "html" => "Page HTML", + "js" => "Fichier Javascript", + "css" => "Fichier CSS", + "cgi" => "Script CGI", + // C++ + "cpps" => "Fichier source C++", + "cpph" => "Fichier source C++", + // Java + "javas" => "Fichier source Java", + "javac" => "Fichier classe Java", + // Pascal + "pas" => "Fichie Pascal", + + // images + "gif" => "Image GIF", + "jpg" => "Image JPG", + "bmp" => "Image BMP", + "png" => "Image PNG", + + // compressed + "zip" => "Archive ZIP", + "tar" => "Archive TAR", + "gzip" => "Archive GZIP", + "bzip2" => "Archive BZIP2", + "rar" => "Archive RAR", + + // music + "mp3" => "Fichier audio MP3", + "wav" => "Fichier audio WAV", + "midi" => "Fichier audio MIDI", + "real" => "Fichier RealAudio", + + // movie + "mpg" => "Fichier vidéo MPG", + "mov" => "Fichier Vidéo", + "avi" => "Fichier vidéo AVI", + "flash" => "Fichier vidéo Flash", + + // Micosoft / Adobe + "word" => "Document Word", + "excel" => "Document Excel", + "pdf" => "Fichier PDF" +); ?> \ No newline at end of file diff --git a/Modules/Downloads/lang/nl.php b/Modules/Downloads/lang/nl.php new file mode 100644 index 0000000..ca5e441 --- /dev/null +++ b/Modules/Downloads/lang/nl.php @@ -0,0 +1,158 @@ + "FOUT(EN)", + "back" => "Ga Terug", + + // root + "home" => "De thuis map bestaat niet, controleer uw instellingen.", + "abovehome" => "De huidige map mag niet hoger liggen dan de thuis map.", + "targetabovehome" => "De doel map mag niet hoger liggen dan de thuis map.", + + // exist + "direxist" => "Deze map bestaat niet.", + //"filedoesexist" => "Dit bestand bestaat al.", + "fileexist" => "Dit bestand bestaat niet.", + "itemdoesexist" => "Dit item bestaat al.", + "itemexist" => "Dit item bestaat niet.", + "targetexist" => "De doel map bestaat niet.", + "targetdoesexist" => "Het doel item bestaat al.", + + // open + "opendir" => "Kan map niet openen.", + "readdir" => "Kan map niet lezen.", + + // access + "accessdir" => "U hebt geen toegang tot deze map.", + "accessfile" => "U hebt geen toegang tot dit bestand.", + "accessitem" => "U hebt geen toegang tot dit item.", + "accessfunc" => "U hebt geen rechten deze functie te gebruiken.", + "accesstarget" => "U hebt geen toegang tot de doel map.", + + // actions + "permread" => "Rechten opvragen mislukt.", + "permchange" => "Rechten wijzigen mislukt.", + "openfile" => "Bestand openen mislukt.", + "savefile" => "Bestand opslaan mislukt.", + "createfile" => "Bestand maken mislukt.", + "createdir" => "Map maken mislukt.", + "uploadfile" => "Bestand uploaden mislukt.", + "copyitem" => "Kopiëren mislukt.", + "moveitem" => "Verplaatsen mislukt.", + "delitem" => "Verwijderen mislukt.", + "chpass" => "Wachtwoord wijzigen mislukt.", + "deluser" => "Gebruiker verwijderen mislukt.", + "adduser" => "Gebruiker toevoegen mislukt.", + "saveuser" => "Gebruiker opslaan mislukt.", + "searchnothing" => "U moet iets te zoeken opgeven.", + + // misc + "miscnofunc" => "Functie niet beschikbaar.", + "miscfilesize" => "Bestand is groter dan de maximum grootte.", + "miscfilepart" => "Bestand is maar gedeeltelijk geupload.", + "miscnoname" => "U moet een naam opgeven.", + "miscselitems" => "U hebt geen item(s) geselecteerd.", + "miscdelitems" => "Weet u zeker dat u deze \"+num+\" item(s) wilt verwijderen?", + "miscdeluser" => "Weet u zeker dat u gebruiker '\"+user+\"' wilt verwijderen?", + "miscnopassdiff" => "Het nieuwe wachtwoord verschilt niet van het huidige.", + "miscnopassmatch" => "Wachtwoorden komen niet overeen.", + "miscfieldmissed" => "U bent een belangrijk veld vergeten in te vullen.", + "miscnouserpass" => "Gebruiker of wachtwoord onjuist.", + "miscselfremove" => "U kunt zichzelf niet verwijderen.", + "miscuserexist" => "De gebruiker bestaat al.", + "miscnofinduser" => "Kan gebruiker niet vinden.", +); +$GLOBALS["messages"] = array( + // links + "permlink" => "RECHTEN WIJZIGEN", + "editlink" => "BEWERKEN", + "downlink" => "DOWNLOADEN", + "uplink" => "OMHOOG", + "homelink" => "THUIS", + "reloadlink" => "VERNIEUWEN", + "copylink" => "KOPIËREN", + "movelink" => "VERPLAATSEN", + "dellink" => "VERWIJDEREN", + "comprlink" => "ARCHIVEREN", + "adminlink" => "BEHEER", + "logoutlink" => "AFMELDEN", + "uploadlink" => "UPLOADEN", + "searchlink" => "ZOEKEN", + + // list + "nameheader" => "Naam", + "sizeheader" => "Grootte", + "typeheader" => "Type", + "modifheader" => "Gewijzigd", + "permheader" => "Rechten", + "actionheader" => "Acties", + "pathheader" => "Pad", + + // buttons + "btncancel" => "Annuleren", + "btnsave" => "Opslaan", + "btnchange" => "Wijzigen", + "btnreset" => "Opnieuw", + "btnclose" => "Sluiten", + "btncreate" => "Maken", + "btnsearch" => "Zoeken", + "btnupload" => "Uploaden", + "btncopy" => "Kopiëren", + "btnmove" => "Verplaatsen", + "btnlogin" => "Aanmelden", + "btnlogout" => "Afmelden", + "btnadd" => "Toevoegen", + "btnedit" => "Bewerken", + "btnremove" => "Verwijderen", + + // actions + "actdir" => "Map", + "actperms" => "Rechten wijzigen", + "actedit" => "Bestand bewerken", + "actsearchresults" => "Zoek resultaten", + "actcopyitems" => "Item(s) kopiëren", + "actcopyfrom" => "Kopieer van /%s naar /%s ", + "actmoveitems" => "Item(s) verplaatsen", + "actmovefrom" => "Verplaats van /%s naar /%s ", + "actlogin" => "Aanmelden", + "actloginheader" => "Meld u aan om QuiXplorer te gebruiken", + "actadmin" => "Beheer", + "actchpwd" => "Wachtwoord wijzigen", + "actusers" => "Gebruikers", + "actarchive" => "Item(s) archiveren", + "actupload" => "Bestand(en) uploaden", + + // misc + "miscitems" => "Item(s)", + "miscfree" => "Beschikbaar", + "miscusername" => "Gebruikersnaam", + "miscpassword" => "Wachtwoord", + "miscoldpass" => "Oud wachtwoord", + "miscnewpass" => "Nieuw wachtwoord", + "miscconfpass" => "Bevestig wachtwoord", + "miscconfnewpass" => "Bevestig nieuw wachtwoord", + "miscchpass" => "Wijzig wachtwoord", + "mischomedir" => "Thuismap", + "mischomeurl" => "Thuis URL", + "miscshowhidden" => "Verborgen items weergeven", + "mischidepattern" => "Verberg patroon", + "miscperms" => "Rechten", + "miscuseritems" => "(naam, thuis map, verborgen items weergeven, rechten, geactiveerd)", + "miscadduser" => "gebruiker toevoegen", + "miscedituser" => "gebruiker '%s' bewerken", + "miscactive" => "Geactiveerd", + "misclang" => "Taal", + "miscnoresult" => "Geen resultaten beschikbaar.", + "miscsubdirs" => "Zoek in subdirectories", + "miscpermnames" => array("Alleen kijken","Wijzigen","Wachtwoord wijzigen", + "Wijzigen & Wachtwoord wijzigen","Beheerder"), + "miscyesno" => array("Ja","Nee","J","N"), + "miscchmod" => array("Eigenaar", "Groep", "Publiek"), +); +?> \ No newline at end of file diff --git a/Modules/Downloads/lang/nl_mimes.php b/Modules/Downloads/lang/nl_mimes.php new file mode 100644 index 0000000..52960ec --- /dev/null +++ b/Modules/Downloads/lang/nl_mimes.php @@ -0,0 +1,60 @@ + "Map", + "exe" => "Programma", + "file" => "Bestand", + + // text + "text" => "Tekstbestand", + + // programming + "php" => "PHP Script", + "sql" => "SQL Bestand", + "perl" => "PERL Script", + "html" => "HTML Pagina", + "js" => "Javascript Bestand", + "css" => "CSS Bestand", + "cgi" => "CGI Script", + // C++ + "cpps" => "C++ Bronbestand", + "cpph" => "C++ Header Bestand", + // Java + "javas" => "Java Bronbestand", + "javac" => "Java Class Bestand", + // Pascal + "pas" => "Pascal Bestand", + + // images + "gif" => "GIF Afbeelding", + "jpg" => "JPG Afbeelding", + "bmp" => "BMP Afbeelding", + "png" => "PNG Afbeelding", + + // compressed + "zip" => "ZIP Archief", + "tar" => "TAR Archief", + "gzip" => "GZIP Archief", + "bzip2" => "BZIP2 Archief", + "rar" => "RAR Archief", + + // music + "mp3" => "MP3 Audio Bestand", + "wav" => "WAV Audio Bestand", + "midi" => "MIDI Audio Bestand", + "real" => "RealAudio Bestand", + + // movie + "mpg" => "MPG Video Bestand", + "mov" => "Movie Bestand", + "avi" => "AVI Video Bestand", + "flash" => "Flash Movie Bestand", + + // Micosoft / Adobe + "word" => "Word Document", + "excel" => "Excel Document", + "pdf" => "PDF Bestand" +); ?> \ No newline at end of file diff --git a/Modules/Downloads/lang/ru.php b/Modules/Downloads/lang/ru.php new file mode 100644 index 0000000..7044cb5 --- /dev/null +++ b/Modules/Downloads/lang/ru.php @@ -0,0 +1,158 @@ + "ÎØÈÁÊÀ(È)", + "back" => "Âåðíóòüñÿ", + + // root + "home" => "Äîìàøíÿÿ äèðåêòîðèÿ íå ñóùåñòâóåò! Ïðîâåðüòå íàñòðîéêè.", + "abovehome" => "Òåêóùàÿ äèðåêòîðèÿ íå ìîæåò íàõîäèòñÿ âûøå äîìàøíåãî êàòàëîãà.", + "targetabovehome" => "Çàïðîøåííàÿ äèðåêòîðèÿ íå ìîæåò íàõîäèòñÿ âûøå äîìàøíåãî êàòàëîãà.", + + // exist + "direxist" => "Äèðåêòîðèÿ íå ñóùåñòâóåò", + //"filedoesexist" => "Òàêîé ôàéë óæå ñóùåñòâóåò", + "fileexist" => "Òàêîãî ôàéëà íå ñóùåñòâóåò", + "itemdoesexist" => "Òàêîé îáúåêò óæå ñóùåñòâóåò", + "itemexist" => "Òàêîãî îáúåêòà ñóùåñòâóåò", + "targetexist" => "Íàçíà÷åííîé äèðåêòîðèè íå ñóùåñòâóåò", + "targetdoesexist" => "Íàçíà÷åííîãî îáúåêòà íå ñóùåñòâóåò", + + // open + "opendir" => "Íåâîçìîæíî îòêðûòü äèðåêòîðèþ", + "readdir" => "Íåâîçìîæíî ïðî÷èòàòü äèðåêòîðèþ", + + // access + "accessdir" => "Âàì çàïðåùåíî çàõîäèòü â äàííóþ äèðåêòîðèþ", + "accessfile" => "Âàì çàïðåùåíî èñïîëüçîâàòü äàííûé ôàéë", + "accessitem" => "Âàì çàïðåùåíî èñïîëüçîâàòü äàííûé îáúåêò", + "accessfunc" => "Âàì çàïðåùåíî èñïîëüçîâàòü äàííóþ ôóíêöèþ", + "accesstarget" => "Âàì çàïðåùåíî âõîäèòü â çàäàííóþ äèðåêòîðèþ", + + // actions + "permread" => "Îøèáêà â ïîëó÷åíèè ïðàâ äîñòóïà", + "permchange" => "Îøèáêà â ñìåíå ïðàâ äîñòóïà", + "openfile" => "Ïðîâàë â îòêðûòèè ôàéëà", + "savefile" => "Ïðîâàë â ñîõðàíåíèè ôàéëà", + "createfile" => "Ïðîâàë â ñîçäàíèè ôàéëà", + "createdir" => "Ïðîâàë â ñîçäàíèè äèðåêòîðèè", + "uploadfile" => "Ïðîâàë â çàãðóçêå ôàéëà", + "copyitem" => "Ïðîâàë â êîïèðîâàíèè", + "moveitem" => "Ïðîâàë â ïåðåèìåíîâàíèè", + "delitem" => "Ïðîâàë â óäàëåíèè", + "chpass" => "Ïðîâàë â ñìåíå ïàðîëÿ", + "deluser" => "Ïðîâàë â óäàëåíèè ïîëüçîâàòåëÿ", + "adduser" => "Ïðîâàë â óäàëåíèè ïîëüçîâàòåëÿ", + "saveuser" => "Ïðîâàë â ñîõðàíåíèè ïîëüçîâàòåëÿ", + "searchnothing" => "Ñòðîêà ïîèñêà íå äîëæíà áûòü ïóñòîé", + + // misc + "miscnofunc" => "Ôóíêöèÿ íåäîñòóïíà", + "miscfilesize" => "Ôàéë ïðåâûøàåò ìàêñèìàëüíûé ðàçìåð", + "miscfilepart" => "Ôàéë áûë çàãðóæåí ÷àñòè÷íî", + "miscnoname" => "Âû äîëæíû äàòü çàäàòü èìÿ", + "miscselitems" => "Âû íå âûáðàëè îáúåêò(û)", + "miscdelitems" => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü \"+num+\" îáúåêò(à/îâ)?", + "miscdeluser" => "Âû óâåðåíû, ÷òî õîòèòå óäàëèòü ïîëüçîâàòåëÿ '\"+user+\"'?", + "miscnopassdiff" => "Íîâûé ïàðîëü íå îòëè÷àåòñÿ îò òåêóùåãî", + "miscnopassmatch" => "Ïàðîëè íå ñîâïàäàþò", + "miscfieldmissed" => "Âû ïðîïóñòèëè âàæíîå ïîëå", + "miscnouserpass" => "Èìÿ ïîëüçîâàòåëÿ èëè ïàðîëü íå ïðàâèëüíû", + "miscselfremove" => "Âû íå ìîæåòå óäàëèòü ñàìîãî ñåáÿ", + "miscuserexist" => "Òàêîé ïîëüçîâàòåëü óæå ñóùåñòâóåò", + "miscnofinduser" => "Íåâîçìîæíî íàéòè ïîëüçîâàòåëÿ", +); +$GLOBALS["messages"] = array( + // links + "permlink" => "ÏÎÌÅÍßÒÜ ÏÐÀÂÀ ÄÎÑÒÓÏÀ", + "editlink" => "ÐÅÄÀÊÒÈÐÎÂÀÒÜ", + "downlink" => "ÑÊÀ×ÀÒÜ", + "uplink" => "ÍÀÂÅÐÕ", + "homelink" => "ÄÎÌÎÉ", + "reloadlink" => "ÎÁÍÎÂÈÒÜ", + "copylink" => "ÊÎÏÈÐÎÂÀÒÜ", + "movelink" => "ÏÅÐÅÌÅÑÒÈÒÜ", + "dellink" => "ÓÄÀËÈÒÜ", + "comprlink" => "ÀÐÕÈÂÈÐÎÂÀÒÜ", + "adminlink" => "ÀÄÌÈÍÈÑÒÐÈÐÎÂÀÍÈÅ", + "logoutlink" => "ÂÛÉÒÈ", + "uploadlink" => "ÇÀÊÀ×ÀÒÜ", + "searchlink" => "ÏÎÈÑÊ", + + // list + "nameheader" => "Ôàéë", + "sizeheader" => "Ðàçìåð", + "typeheader" => "Òèï", + "modifheader" => "Èçìåíåí", + "permheader" => "Ïðàâà", + "actionheader" => "Äåéñòâèÿ", + "pathheader" => "Ïóòü", + + // buttons + "btncancel" => "Îòìåíÿ", + "btnsave" => "Ñîõðàíèòü", + "btnchange" => "Èçìåíèòü", + "btnreset" => "Î÷èñòèòü", + "btnclose" => "Çàêðûòü", + "btncreate" => "Ñîçäàòü", + "btnsearch" => "Ïîèñê", + "btnupload" => "Çàêà÷àòü", + "btncopy" => "Êîïèðîâàòü", + "btnmove" => "Ïåðåìåñòèòü", + "btnlogin" => "Âîéòè", + "btnlogout" => "Âûéòè", + "btnadd" => "Äîáàâèòü", + "btnedit" => "Ðåäàêòèðîâàòü", + "btnremove" => "Óäàëèòü", + + // actions + "actdir" => "Ïàïêà", + "actperms" => "Ïîìåíÿòü ïðàâà", + "actedit" => "Ïðàâèò ôàéë", + "actsearchresults" => "Ðåçóëüòàòû ïîèñêà", + "actcopyitems" => "Êîïèðîâàòü îáúåêò(û)", + "actcopyfrom" => "Êîïèðîâàòü èç /%s â /%s ", + "actmoveitems" => "Ïåðåìåñòèòü îáúåêò(û)", + "actmovefrom" => "Ïåðåìåñòèòü èç /%s â /%s ", + "actlogin" => "Âîéòè", + "actloginheader" => "Âîéòè, ÷òîáû íà÷àòü èñïîëüçîâàòü QuiXplorer", + "actadmin" => "Àäìèíèñòðèðîâàíèå", + "actchpwd" => "Ñìåíèòü ïàðîëü", + "actusers" => "Ïîëüçîâàòåëè", + "actarchive" => "Çààðõèâèðîâàòü îáúåêò(û)", + "actupload" => "Çàêà÷àòü ôàéë(û)", + + // misc + "miscitems" => "Îáúåêò(à/îâ)", + "miscfree" => "Ñâîáîäíî", + "miscusername" => "Ïîëüçîâàòåëü", + "miscpassword" => "Ïàðîëü", + "miscoldpass" => "Ñòàðûé ïàðîëü", + "miscnewpass" => "Íîâûé ïàðîëü", + "miscconfpass" => "Ïîäòâåðäèòå ïàðîëü", + "miscconfnewpass" => "Ïîäòâåðäèòå íîâûé ïàðîëü", + "miscchpass" => "Ïîìåíÿòü ïàðîëü", + "mischomedir" => "Äîìàøíÿÿ äèðåêòîðèÿ", + "mischomeurl" => "Äîìàøíèé URL", + "miscshowhidden" => "Ïîêàçûâàòü ñïðÿòàííûå îáúåêòû", + "mischidepattern" => "Ïðÿòàòü ôàéëû", + "miscperms" => "Ïðàâà", + "miscuseritems" => "(èìÿ, äîìàøíÿÿ äèðåêòîðèÿ, ïîêàçûâàòü ñïðÿòàííûå îáúåêòû, ïðàâà äîñóòïà, àêòèâåí)", + "miscadduser" => "äîáàâèòü ïîëüçîâàòåëÿ", + "miscedituser" => "ðåäàêòèðîâàòü ïîëüçîâàòåëÿ '%s'", + "miscactive" => "Àêòèâåí", + "misclang" => "ßçûê", + "miscnoresult" => "Íåò ðåçóëüòàòîâ", + "miscsubdirs" => "Èñêàòü â ïîääèðåêòîðèÿõ", + "miscpermnames" => array("Òîëüêî ïðîñìîòð","Ðåäàêòèðîâàíèå","Ñìåíÿ ïàðîëÿ","Ïðàâêà è ñìåíà ïàðîëÿ", + "Àäìèíèñòðàòîð"), + "miscyesno" => array("Äà","Íåò","Ä","Í"), + "miscchmod" => array("Âëàäåëåö", "Ãðóïïà", "Èíòåðíåò"), +); +?> diff --git a/Modules/Downloads/lang/ru_mimes.php b/Modules/Downloads/lang/ru_mimes.php new file mode 100644 index 0000000..436380b --- /dev/null +++ b/Modules/Downloads/lang/ru_mimes.php @@ -0,0 +1,60 @@ + "Äèðåêòîðèÿ", + "exe" => "Èñïîëíÿåìûé ôàéë", + "file" => "Ôàéë", + + // text + "text" => "Òåêñòîâûé ôàéë", + + // programming + "php" => "PHP ñêðèïò", + "sql" => "ôàéë SQL", + "perl" => "PERL ñêðèïò", + "html" => "ñòðàíèöà HTML", + "js" => "ôàéë Javascript", + "css" => "CSS ñòèëü", + "cgi" => "CGI ñêðèïò", + // C++ + "cpps" => "èñõîäíûé êîä C++", + "cpph" => "çàãîëîâîê êîäà C++", + // Java + "javas" => "èñõîäíûé êîä Java", + "javac" => "èñõîäíûé êîä Java class", + // Pascal + "pas" => "ôàéë Pascal", + + // images + "gif" => "èçîáðàæåíèå GIF", + "jpg" => "èçîáðàæåíèå JPG", + "bmp" => "èçîáðàæåíèå BMP", + "png" => "èçîáðàæåíèå PNG", + + // compressed + "zip" => "àðõèâ ZIP", + "tar" => "àðõèâ TAR", + "gzip" => "àðõèâ GZIP", + "bzip2" => "àðõèâ BZIP2e", + "rar" => "àðõèâ RAR", + + // music + "mp3" => "ôàéë MP3", + "wav" => "ôàéë WAV", + "midi" => "ôàéë MIDI", + "real" => "ôàéë RealAudio", + + // movie + "mpg" => "âèäåî-ôàéë MPG", + "mov" => "âèäåî-ôàéë Movie", + "avi" => "âèäåî-ôàéë AVI", + "flash" => "Flash ôàéë", + + // Micosoft / Adobe + "word" => "äîêóìåíò Word", + "excel" => "äîêóìåíò Excel", + "pdf" => "ôàéë PDF" +); ?> diff --git a/Modules/Forum/add_answer.php b/Modules/Forum/add_answer.php new file mode 100755 index 0000000..747a31b --- /dev/null +++ b/Modules/Forum/add_answer.php @@ -0,0 +1,96 @@ +FAIL]
"); +} + +// Get value of id that sent from hidden field +$id=mysql_real_escape_string($_POST['id']); + +// Find highest answer number. +$sql="SELECT MAX(a_id) AS Maxa_id FROM ". $tbl_name ." WHERE question_id='".$id."'"; +$result=mysql_query($sql); +$rows=mysql_fetch_array($result); +// add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1 +if ($rows) +{ + $Max_id = $rows['Maxa_id']+1; +} +else +{ + $Max_id = 1; +} + +//----------------- Uploads +if($type == "php" || $type == "application/x-httpd-php" || $type == "htm" || $type == "html" || $type == "text/html") + die("NO HTML OR PHP FILES ALLOWED!"); +if($tempname != "" && $name != "") +{ + move_uploaded_file($tempname, $_SERVER["DOCUMENT_ROOT"]."/Modules/Forum/uploads/".$id."-".$Max_id."-".$name); +} +//die("tmP:".$tempname." name:".$name); + +//----------------- + + +// get values that sent from form +$a_name=mysql_real_escape_string($_SESSION["user_nickname"]); +if($a_name == "" || !$_SESSION['user_nickname']) +{ + $a_name = "guest"; +} +$a_avatar=mysql_real_escape_string($_SESSION["user_avatar"]); +$a_answer=mysql_real_escape_string($_POST['a_answer']); + +$datetime=date("d-m-y H:i:s"); // create date and time + +if($tempname != "" && $tempname != "") +{ + $dbeintrag= $id.'-'.$Max_id.'-'.$name; +} +else +{ + $dbeintrag = ""; +} +if($a_answer != "") +{ + // Insert answer + $sql2="INSERT INTO $tbl_name(question_id, a_id, a_name, a_avatar, a_answer, a_datetime, a_attachment)VALUES('$id', '$Max_id', '$a_name', '$a_avatar', '$a_answer', '$datetime', '$dbeintrag')"; + $result2=mysql_query($sql2); + + if($result2) + { + // If added new answer, add value +1 in reply column + $tbl_name2="forum_question"; + $sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'"; + $result3=mysql_query($sql3); + $datetime=date('Y-m-d H:i:s'); + $sql3="UPDATE $tbl_name2 SET `lastupdate` = NOW( ) WHERE `forum_question`.`id`='$id'"; + $result3=mysql_query($sql3); + header ("Location: ".$moduleurl."&uebergabe=1&uebergabe2=".$id); + } + else + { + echo "ERROR"; + } +} +else +{ + header ("Location: ".$moduleurl."&uebergabe=1&uebergabe2=".$id); +} +mysql_close(); +?> diff --git a/Modules/Forum/add_topic.php b/Modules/Forum/add_topic.php new file mode 100755 index 0000000..b73a9ba --- /dev/null +++ b/Modules/Forum/add_topic.php @@ -0,0 +1,52 @@ +FAIL]
"); +} + +// get data that sent from form +$topic=mysql_real_escape_string($_POST['topic']); +$writeperm=mysql_real_escape_string($_POST['writeperm']); +$readperm=mysql_real_escape_string($_POST['readperm']); +$detail=mysql_real_escape_string($_POST['detail']); +$name=mysql_real_escape_string($_SESSION['user_nickname']); +$avatar=mysql_real_escape_string($_SESSION['user_avatar']); + +$datetime=date("d-m-y H:i:s"); //create date time +if($topic != "" && $detail != "") +{ + $sql="INSERT INTO $tbl_name(topic, detail, name, avatar, w_adminonly, w_guest, r_adminonly, r_guest, datetime)VALUES('$topic', '$detail', '$name', '$avatar', "; + if($writeperm=="admin"){$sql=$sql."1, ";}else{$sql=$sql."0, ";} + if($writeperm=="any"){$sql=$sql."1, ";}else{$sql=$sql."0, ";} + if($readperm=="admin"){$sql=$sql."1, ";}else{$sql=$sql."0, ";} + if($readperm=="any"){$sql=$sql."1, ";}else{$sql=$sql."0, ";} + $sql=$sql."'$datetime')"; + //echo $sql; + $result=mysql_query($sql); + + if($result) + { + header ("Location: ".$moduleurl."&uebergabe=0"); + } + else + { + echo "ERROR"; + } +} +else +{ + header ("Location: ".$moduleurl."&uebergabe=0"); +} +mysql_close(); +?> diff --git a/Modules/Forum/avatar/0.png b/Modules/Forum/avatar/0.png new file mode 100755 index 0000000..fc42fda Binary files /dev/null and b/Modules/Forum/avatar/0.png differ diff --git a/Modules/Forum/avatar/1.png b/Modules/Forum/avatar/1.png new file mode 100755 index 0000000..4133a65 Binary files /dev/null and b/Modules/Forum/avatar/1.png differ diff --git a/Modules/Forum/avatar/10.png b/Modules/Forum/avatar/10.png new file mode 100755 index 0000000..4f5deee Binary files /dev/null and b/Modules/Forum/avatar/10.png differ diff --git a/Modules/Forum/avatar/100.png b/Modules/Forum/avatar/100.png new file mode 100755 index 0000000..eaf72cf Binary files /dev/null and b/Modules/Forum/avatar/100.png differ diff --git a/Modules/Forum/avatar/101.png b/Modules/Forum/avatar/101.png new file mode 100755 index 0000000..9f0cb47 Binary files /dev/null and b/Modules/Forum/avatar/101.png differ diff --git a/Modules/Forum/avatar/102.png b/Modules/Forum/avatar/102.png new file mode 100644 index 0000000..39403d8 Binary files /dev/null and b/Modules/Forum/avatar/102.png differ diff --git a/Modules/Forum/avatar/11.png b/Modules/Forum/avatar/11.png new file mode 100755 index 0000000..2fdd6af Binary files /dev/null and b/Modules/Forum/avatar/11.png differ diff --git a/Modules/Forum/avatar/12.png b/Modules/Forum/avatar/12.png new file mode 100755 index 0000000..77efa74 Binary files /dev/null and b/Modules/Forum/avatar/12.png differ diff --git a/Modules/Forum/avatar/13.png b/Modules/Forum/avatar/13.png new file mode 100755 index 0000000..908df22 Binary files /dev/null and b/Modules/Forum/avatar/13.png differ diff --git a/Modules/Forum/avatar/14.png b/Modules/Forum/avatar/14.png new file mode 100755 index 0000000..328c482 Binary files /dev/null and b/Modules/Forum/avatar/14.png differ diff --git a/Modules/Forum/avatar/15.png b/Modules/Forum/avatar/15.png new file mode 100755 index 0000000..2efd329 Binary files /dev/null and b/Modules/Forum/avatar/15.png differ diff --git a/Modules/Forum/avatar/16.png b/Modules/Forum/avatar/16.png new file mode 100755 index 0000000..145d414 Binary files /dev/null and b/Modules/Forum/avatar/16.png differ diff --git a/Modules/Forum/avatar/17.png b/Modules/Forum/avatar/17.png new file mode 100755 index 0000000..52f1aee Binary files /dev/null and b/Modules/Forum/avatar/17.png differ diff --git a/Modules/Forum/avatar/18.png b/Modules/Forum/avatar/18.png new file mode 100755 index 0000000..9e5fd65 Binary files /dev/null and b/Modules/Forum/avatar/18.png differ diff --git a/Modules/Forum/avatar/19.png b/Modules/Forum/avatar/19.png new file mode 100755 index 0000000..50976a4 Binary files /dev/null and b/Modules/Forum/avatar/19.png differ diff --git a/Modules/Forum/avatar/2.png b/Modules/Forum/avatar/2.png new file mode 100755 index 0000000..2188a14 Binary files /dev/null and b/Modules/Forum/avatar/2.png differ diff --git a/Modules/Forum/avatar/20.png b/Modules/Forum/avatar/20.png new file mode 100755 index 0000000..6aab1f9 Binary files /dev/null and b/Modules/Forum/avatar/20.png differ diff --git a/Modules/Forum/avatar/21.png b/Modules/Forum/avatar/21.png new file mode 100755 index 0000000..b55dc06 Binary files /dev/null and b/Modules/Forum/avatar/21.png differ diff --git a/Modules/Forum/avatar/22.png b/Modules/Forum/avatar/22.png new file mode 100755 index 0000000..2cf1cab Binary files /dev/null and b/Modules/Forum/avatar/22.png differ diff --git a/Modules/Forum/avatar/23.png b/Modules/Forum/avatar/23.png new file mode 100755 index 0000000..7998f26 Binary files /dev/null and b/Modules/Forum/avatar/23.png differ diff --git a/Modules/Forum/avatar/24.png b/Modules/Forum/avatar/24.png new file mode 100755 index 0000000..15b9e43 Binary files /dev/null and b/Modules/Forum/avatar/24.png differ diff --git a/Modules/Forum/avatar/25.png b/Modules/Forum/avatar/25.png new file mode 100755 index 0000000..a5e788a Binary files /dev/null and b/Modules/Forum/avatar/25.png differ diff --git a/Modules/Forum/avatar/26.png b/Modules/Forum/avatar/26.png new file mode 100755 index 0000000..cc6c02a Binary files /dev/null and b/Modules/Forum/avatar/26.png differ diff --git a/Modules/Forum/avatar/27.png b/Modules/Forum/avatar/27.png new file mode 100755 index 0000000..d62c199 Binary files /dev/null and b/Modules/Forum/avatar/27.png differ diff --git a/Modules/Forum/avatar/28.png b/Modules/Forum/avatar/28.png new file mode 100755 index 0000000..06ea5d8 Binary files /dev/null and b/Modules/Forum/avatar/28.png differ diff --git a/Modules/Forum/avatar/29.png b/Modules/Forum/avatar/29.png new file mode 100755 index 0000000..6ac3406 Binary files /dev/null and b/Modules/Forum/avatar/29.png differ diff --git a/Modules/Forum/avatar/3.png b/Modules/Forum/avatar/3.png new file mode 100755 index 0000000..9632282 Binary files /dev/null and b/Modules/Forum/avatar/3.png differ diff --git a/Modules/Forum/avatar/30.png b/Modules/Forum/avatar/30.png new file mode 100755 index 0000000..7776566 Binary files /dev/null and b/Modules/Forum/avatar/30.png differ diff --git a/Modules/Forum/avatar/31.png b/Modules/Forum/avatar/31.png new file mode 100755 index 0000000..ec2beb9 Binary files /dev/null and b/Modules/Forum/avatar/31.png differ diff --git a/Modules/Forum/avatar/32.png b/Modules/Forum/avatar/32.png new file mode 100755 index 0000000..5178f30 Binary files /dev/null and b/Modules/Forum/avatar/32.png differ diff --git a/Modules/Forum/avatar/33.png b/Modules/Forum/avatar/33.png new file mode 100755 index 0000000..e867158 Binary files /dev/null and b/Modules/Forum/avatar/33.png differ diff --git a/Modules/Forum/avatar/34.png b/Modules/Forum/avatar/34.png new file mode 100755 index 0000000..5297142 Binary files /dev/null and b/Modules/Forum/avatar/34.png differ diff --git a/Modules/Forum/avatar/35.png b/Modules/Forum/avatar/35.png new file mode 100755 index 0000000..8eddaea Binary files /dev/null and b/Modules/Forum/avatar/35.png differ diff --git a/Modules/Forum/avatar/36.png b/Modules/Forum/avatar/36.png new file mode 100755 index 0000000..f8efe75 Binary files /dev/null and b/Modules/Forum/avatar/36.png differ diff --git a/Modules/Forum/avatar/37.png b/Modules/Forum/avatar/37.png new file mode 100755 index 0000000..ee9f822 Binary files /dev/null and b/Modules/Forum/avatar/37.png differ diff --git a/Modules/Forum/avatar/38.png b/Modules/Forum/avatar/38.png new file mode 100755 index 0000000..e96ce26 Binary files /dev/null and b/Modules/Forum/avatar/38.png differ diff --git a/Modules/Forum/avatar/39.png b/Modules/Forum/avatar/39.png new file mode 100755 index 0000000..9c51d27 Binary files /dev/null and b/Modules/Forum/avatar/39.png differ diff --git a/Modules/Forum/avatar/4.png b/Modules/Forum/avatar/4.png new file mode 100755 index 0000000..22d443a Binary files /dev/null and b/Modules/Forum/avatar/4.png differ diff --git a/Modules/Forum/avatar/40.png b/Modules/Forum/avatar/40.png new file mode 100755 index 0000000..c8eea7b Binary files /dev/null and b/Modules/Forum/avatar/40.png differ diff --git a/Modules/Forum/avatar/41.png b/Modules/Forum/avatar/41.png new file mode 100755 index 0000000..4dfbe0e Binary files /dev/null and b/Modules/Forum/avatar/41.png differ diff --git a/Modules/Forum/avatar/42.png b/Modules/Forum/avatar/42.png new file mode 100755 index 0000000..8079609 Binary files /dev/null and b/Modules/Forum/avatar/42.png differ diff --git a/Modules/Forum/avatar/43.png b/Modules/Forum/avatar/43.png new file mode 100755 index 0000000..f169393 Binary files /dev/null and b/Modules/Forum/avatar/43.png differ diff --git a/Modules/Forum/avatar/44.png b/Modules/Forum/avatar/44.png new file mode 100755 index 0000000..a634ab1 Binary files /dev/null and b/Modules/Forum/avatar/44.png differ diff --git a/Modules/Forum/avatar/45.png b/Modules/Forum/avatar/45.png new file mode 100755 index 0000000..d224134 Binary files /dev/null and b/Modules/Forum/avatar/45.png differ diff --git a/Modules/Forum/avatar/46.png b/Modules/Forum/avatar/46.png new file mode 100755 index 0000000..caf7342 Binary files /dev/null and b/Modules/Forum/avatar/46.png differ diff --git a/Modules/Forum/avatar/47.png b/Modules/Forum/avatar/47.png new file mode 100755 index 0000000..36963a3 Binary files /dev/null and b/Modules/Forum/avatar/47.png differ diff --git a/Modules/Forum/avatar/48.png b/Modules/Forum/avatar/48.png new file mode 100755 index 0000000..608d0da Binary files /dev/null and b/Modules/Forum/avatar/48.png differ diff --git a/Modules/Forum/avatar/49.png b/Modules/Forum/avatar/49.png new file mode 100755 index 0000000..9732452 Binary files /dev/null and b/Modules/Forum/avatar/49.png differ diff --git a/Modules/Forum/avatar/5.png b/Modules/Forum/avatar/5.png new file mode 100755 index 0000000..56135e0 Binary files /dev/null and b/Modules/Forum/avatar/5.png differ diff --git a/Modules/Forum/avatar/50.png b/Modules/Forum/avatar/50.png new file mode 100755 index 0000000..1881fa0 Binary files /dev/null and b/Modules/Forum/avatar/50.png differ diff --git a/Modules/Forum/avatar/51.png b/Modules/Forum/avatar/51.png new file mode 100755 index 0000000..4824dd7 Binary files /dev/null and b/Modules/Forum/avatar/51.png differ diff --git a/Modules/Forum/avatar/52.png b/Modules/Forum/avatar/52.png new file mode 100755 index 0000000..0adaaba Binary files /dev/null and b/Modules/Forum/avatar/52.png differ diff --git a/Modules/Forum/avatar/53.png b/Modules/Forum/avatar/53.png new file mode 100755 index 0000000..19e2b0c Binary files /dev/null and b/Modules/Forum/avatar/53.png differ diff --git a/Modules/Forum/avatar/54.png b/Modules/Forum/avatar/54.png new file mode 100755 index 0000000..e86d1f6 Binary files /dev/null and b/Modules/Forum/avatar/54.png differ diff --git a/Modules/Forum/avatar/55.png b/Modules/Forum/avatar/55.png new file mode 100755 index 0000000..eea0f5c Binary files /dev/null and b/Modules/Forum/avatar/55.png differ diff --git a/Modules/Forum/avatar/56.png b/Modules/Forum/avatar/56.png new file mode 100755 index 0000000..0e81c8e Binary files /dev/null and b/Modules/Forum/avatar/56.png differ diff --git a/Modules/Forum/avatar/57.png b/Modules/Forum/avatar/57.png new file mode 100755 index 0000000..f374503 Binary files /dev/null and b/Modules/Forum/avatar/57.png differ diff --git a/Modules/Forum/avatar/58.png b/Modules/Forum/avatar/58.png new file mode 100755 index 0000000..1093a6a Binary files /dev/null and b/Modules/Forum/avatar/58.png differ diff --git a/Modules/Forum/avatar/59.png b/Modules/Forum/avatar/59.png new file mode 100755 index 0000000..b3a09d2 Binary files /dev/null and b/Modules/Forum/avatar/59.png differ diff --git a/Modules/Forum/avatar/6.png b/Modules/Forum/avatar/6.png new file mode 100755 index 0000000..1c25806 Binary files /dev/null and b/Modules/Forum/avatar/6.png differ diff --git a/Modules/Forum/avatar/60.png b/Modules/Forum/avatar/60.png new file mode 100755 index 0000000..3d88424 Binary files /dev/null and b/Modules/Forum/avatar/60.png differ diff --git a/Modules/Forum/avatar/61.png b/Modules/Forum/avatar/61.png new file mode 100755 index 0000000..647360a Binary files /dev/null and b/Modules/Forum/avatar/61.png differ diff --git a/Modules/Forum/avatar/62.png b/Modules/Forum/avatar/62.png new file mode 100755 index 0000000..f25b492 Binary files /dev/null and b/Modules/Forum/avatar/62.png differ diff --git a/Modules/Forum/avatar/63.png b/Modules/Forum/avatar/63.png new file mode 100755 index 0000000..92ba811 Binary files /dev/null and b/Modules/Forum/avatar/63.png differ diff --git a/Modules/Forum/avatar/64.png b/Modules/Forum/avatar/64.png new file mode 100755 index 0000000..bf30ddc Binary files /dev/null and b/Modules/Forum/avatar/64.png differ diff --git a/Modules/Forum/avatar/65.png b/Modules/Forum/avatar/65.png new file mode 100755 index 0000000..ca84a23 Binary files /dev/null and b/Modules/Forum/avatar/65.png differ diff --git a/Modules/Forum/avatar/66.png b/Modules/Forum/avatar/66.png new file mode 100755 index 0000000..62bf62e Binary files /dev/null and b/Modules/Forum/avatar/66.png differ diff --git a/Modules/Forum/avatar/67.png b/Modules/Forum/avatar/67.png new file mode 100755 index 0000000..348ff78 Binary files /dev/null and b/Modules/Forum/avatar/67.png differ diff --git a/Modules/Forum/avatar/68.png b/Modules/Forum/avatar/68.png new file mode 100755 index 0000000..c5b503a Binary files /dev/null and b/Modules/Forum/avatar/68.png differ diff --git a/Modules/Forum/avatar/69.png b/Modules/Forum/avatar/69.png new file mode 100755 index 0000000..2667eb1 Binary files /dev/null and b/Modules/Forum/avatar/69.png differ diff --git a/Modules/Forum/avatar/7.png b/Modules/Forum/avatar/7.png new file mode 100755 index 0000000..a89a9b4 Binary files /dev/null and b/Modules/Forum/avatar/7.png differ diff --git a/Modules/Forum/avatar/70.png b/Modules/Forum/avatar/70.png new file mode 100755 index 0000000..ad666fa Binary files /dev/null and b/Modules/Forum/avatar/70.png differ diff --git a/Modules/Forum/avatar/71.png b/Modules/Forum/avatar/71.png new file mode 100755 index 0000000..d56824d Binary files /dev/null and b/Modules/Forum/avatar/71.png differ diff --git a/Modules/Forum/avatar/72.png b/Modules/Forum/avatar/72.png new file mode 100755 index 0000000..6d682bf Binary files /dev/null and b/Modules/Forum/avatar/72.png differ diff --git a/Modules/Forum/avatar/73.png b/Modules/Forum/avatar/73.png new file mode 100755 index 0000000..bb9cec3 Binary files /dev/null and b/Modules/Forum/avatar/73.png differ diff --git a/Modules/Forum/avatar/74.png b/Modules/Forum/avatar/74.png new file mode 100755 index 0000000..39ddbdc Binary files /dev/null and b/Modules/Forum/avatar/74.png differ diff --git a/Modules/Forum/avatar/75.png b/Modules/Forum/avatar/75.png new file mode 100755 index 0000000..71ba052 Binary files /dev/null and b/Modules/Forum/avatar/75.png differ diff --git a/Modules/Forum/avatar/76.png b/Modules/Forum/avatar/76.png new file mode 100755 index 0000000..7dda130 Binary files /dev/null and b/Modules/Forum/avatar/76.png differ diff --git a/Modules/Forum/avatar/77.png b/Modules/Forum/avatar/77.png new file mode 100755 index 0000000..3425184 Binary files /dev/null and b/Modules/Forum/avatar/77.png differ diff --git a/Modules/Forum/avatar/78.png b/Modules/Forum/avatar/78.png new file mode 100755 index 0000000..a94ad77 Binary files /dev/null and b/Modules/Forum/avatar/78.png differ diff --git a/Modules/Forum/avatar/79.png b/Modules/Forum/avatar/79.png new file mode 100755 index 0000000..c5fd4cf Binary files /dev/null and b/Modules/Forum/avatar/79.png differ diff --git a/Modules/Forum/avatar/8.png b/Modules/Forum/avatar/8.png new file mode 100755 index 0000000..dea998b Binary files /dev/null and b/Modules/Forum/avatar/8.png differ diff --git a/Modules/Forum/avatar/80.png b/Modules/Forum/avatar/80.png new file mode 100755 index 0000000..ab94fcb Binary files /dev/null and b/Modules/Forum/avatar/80.png differ diff --git a/Modules/Forum/avatar/81.png b/Modules/Forum/avatar/81.png new file mode 100755 index 0000000..7ab3804 Binary files /dev/null and b/Modules/Forum/avatar/81.png differ diff --git a/Modules/Forum/avatar/82.png b/Modules/Forum/avatar/82.png new file mode 100755 index 0000000..d7eaadf Binary files /dev/null and b/Modules/Forum/avatar/82.png differ diff --git a/Modules/Forum/avatar/83.png b/Modules/Forum/avatar/83.png new file mode 100755 index 0000000..69f3013 Binary files /dev/null and b/Modules/Forum/avatar/83.png differ diff --git a/Modules/Forum/avatar/84.png b/Modules/Forum/avatar/84.png new file mode 100755 index 0000000..fa067a7 Binary files /dev/null and b/Modules/Forum/avatar/84.png differ diff --git a/Modules/Forum/avatar/85.png b/Modules/Forum/avatar/85.png new file mode 100755 index 0000000..2f49dd7 Binary files /dev/null and b/Modules/Forum/avatar/85.png differ diff --git a/Modules/Forum/avatar/86.png b/Modules/Forum/avatar/86.png new file mode 100755 index 0000000..b743ccf Binary files /dev/null and b/Modules/Forum/avatar/86.png differ diff --git a/Modules/Forum/avatar/87.png b/Modules/Forum/avatar/87.png new file mode 100755 index 0000000..b518f21 Binary files /dev/null and b/Modules/Forum/avatar/87.png differ diff --git a/Modules/Forum/avatar/88.png b/Modules/Forum/avatar/88.png new file mode 100755 index 0000000..87a7017 Binary files /dev/null and b/Modules/Forum/avatar/88.png differ diff --git a/Modules/Forum/avatar/89.png b/Modules/Forum/avatar/89.png new file mode 100755 index 0000000..a27da68 Binary files /dev/null and b/Modules/Forum/avatar/89.png differ diff --git a/Modules/Forum/avatar/9.png b/Modules/Forum/avatar/9.png new file mode 100755 index 0000000..964bb42 Binary files /dev/null and b/Modules/Forum/avatar/9.png differ diff --git a/Modules/Forum/avatar/90.png b/Modules/Forum/avatar/90.png new file mode 100755 index 0000000..b17a24d Binary files /dev/null and b/Modules/Forum/avatar/90.png differ diff --git a/Modules/Forum/avatar/91.png b/Modules/Forum/avatar/91.png new file mode 100755 index 0000000..2a1c619 Binary files /dev/null and b/Modules/Forum/avatar/91.png differ diff --git a/Modules/Forum/avatar/92.png b/Modules/Forum/avatar/92.png new file mode 100755 index 0000000..10b9041 Binary files /dev/null and b/Modules/Forum/avatar/92.png differ diff --git a/Modules/Forum/avatar/93.png b/Modules/Forum/avatar/93.png new file mode 100755 index 0000000..2f58451 Binary files /dev/null and b/Modules/Forum/avatar/93.png differ diff --git a/Modules/Forum/avatar/94.png b/Modules/Forum/avatar/94.png new file mode 100755 index 0000000..45af18e Binary files /dev/null and b/Modules/Forum/avatar/94.png differ diff --git a/Modules/Forum/avatar/95.png b/Modules/Forum/avatar/95.png new file mode 100755 index 0000000..fc61c93 Binary files /dev/null and b/Modules/Forum/avatar/95.png differ diff --git a/Modules/Forum/avatar/96.png b/Modules/Forum/avatar/96.png new file mode 100755 index 0000000..69ff15f Binary files /dev/null and b/Modules/Forum/avatar/96.png differ diff --git a/Modules/Forum/avatar/97.png b/Modules/Forum/avatar/97.png new file mode 100755 index 0000000..c8c9520 Binary files /dev/null and b/Modules/Forum/avatar/97.png differ diff --git a/Modules/Forum/avatar/98.png b/Modules/Forum/avatar/98.png new file mode 100755 index 0000000..23ab98b Binary files /dev/null and b/Modules/Forum/avatar/98.png differ diff --git a/Modules/Forum/avatar/99.png b/Modules/Forum/avatar/99.png new file mode 100755 index 0000000..c18dbc8 Binary files /dev/null and b/Modules/Forum/avatar/99.png differ diff --git a/Modules/Forum/close_topic.php b/Modules/Forum/close_topic.php new file mode 100755 index 0000000..1c7aa67 --- /dev/null +++ b/Modules/Forum/close_topic.php @@ -0,0 +1,31 @@ +FAIL]
"); +} + +// get data that sent from form +$topic=$_POST['topicid']; + +$sql="UPDATE $tbl_name SET closed ='1' WHERE id ='$topic'"; +$result=mysql_query($sql); + +if($result) +{ + header ("Location: ".$moduleurl."&uebergabe=0&uebergabe2=1&uebergabe3=1"); +} +else +{ + echo "ERROR"; +} +mysql_close(); +?> diff --git a/Modules/Forum/delete_answer.php b/Modules/Forum/delete_answer.php new file mode 100755 index 0000000..8969d69 --- /dev/null +++ b/Modules/Forum/delete_answer.php @@ -0,0 +1,44 @@ +FAIL]
"); +} +$tbl_name="forum_answer"; + +$sql = "SELECT a_name FROM $tbl_name WHERE question_id='".$topic."' AND a_id='".$answer."'"; +$result = mysql_query ($sql); +$user=mysql_fetch_array ($result); + +//die($user[0]); + +if($_SESSION["user_nickname"] == $user[0] || $_SESSION["user_admin"] == "1") +{ + $sql="DELETE FROM ". $tbl_name ." WHERE question_id='".$topic."' AND a_id='".$answer."'"; + $result1=mysql_query($sql); +} +else +{ + die("ERROR!!!"); +} + +if($result && $result1) +{ + header ("Location: ".$moduleurl."&uebergabe=1&uebergabe2=".$topic."&uebergabe3=1"); +} +else +{ + echo "ERROR"; +} +mysql_close(); +?> diff --git a/Modules/Forum/delete_topic.php b/Modules/Forum/delete_topic.php new file mode 100755 index 0000000..f8339f6 --- /dev/null +++ b/Modules/Forum/delete_topic.php @@ -0,0 +1,36 @@ +FAIL]
"); +} + +// get data that sent from form +$topic=$_POST['topicid']; + +$sql="DELETE FROM ". $tbl_name ." WHERE id='".$topic."'"; +$result=mysql_query($sql); + +$tbl_name="forum_answer"; +$sql="DELETE FROM ". $tbl_name ." WHERE question_id='".$topic."'"; +$result1=mysql_query($sql); + +if($result && $result1) +{ + header ("Location: ".$moduleurl."&uebergabe=0&uebergabe2=2&uebergabe3=1"); +} +else +{ + echo "ERROR"; +} +mysql_close(); +?> diff --git a/Modules/Forum/getattachment.php b/Modules/Forum/getattachment.php new file mode 100755 index 0000000..9e849f8 --- /dev/null +++ b/Modules/Forum/getattachment.php @@ -0,0 +1,32 @@ + diff --git a/Modules/Forum/img/dislike.png b/Modules/Forum/img/dislike.png new file mode 100644 index 0000000..91f042d Binary files /dev/null and b/Modules/Forum/img/dislike.png differ diff --git a/Modules/Forum/img/dislikegrey.png b/Modules/Forum/img/dislikegrey.png new file mode 100755 index 0000000..12dff15 Binary files /dev/null and b/Modules/Forum/img/dislikegrey.png differ diff --git a/Modules/Forum/img/dislikegreykl.png b/Modules/Forum/img/dislikegreykl.png new file mode 100755 index 0000000..4659860 Binary files /dev/null and b/Modules/Forum/img/dislikegreykl.png differ diff --git a/Modules/Forum/img/dislikekl.png b/Modules/Forum/img/dislikekl.png new file mode 100644 index 0000000..76b416a Binary files /dev/null and b/Modules/Forum/img/dislikekl.png differ diff --git a/Modules/Forum/img/like.png b/Modules/Forum/img/like.png new file mode 100644 index 0000000..b3612de Binary files /dev/null and b/Modules/Forum/img/like.png differ diff --git a/Modules/Forum/img/likegrey.png b/Modules/Forum/img/likegrey.png new file mode 100755 index 0000000..e8ae1f8 Binary files /dev/null and b/Modules/Forum/img/likegrey.png differ diff --git a/Modules/Forum/img/likegreykl.png b/Modules/Forum/img/likegreykl.png new file mode 100755 index 0000000..aef6a6c Binary files /dev/null and b/Modules/Forum/img/likegreykl.png differ diff --git a/Modules/Forum/img/likekl.png b/Modules/Forum/img/likekl.png new file mode 100644 index 0000000..3fb0745 Binary files /dev/null and b/Modules/Forum/img/likekl.png differ diff --git a/Modules/Forum/img/undecidedkl.png b/Modules/Forum/img/undecidedkl.png new file mode 100644 index 0000000..405f841 Binary files /dev/null and b/Modules/Forum/img/undecidedkl.png differ diff --git a/Modules/Forum/img/undicidedcolor.png b/Modules/Forum/img/undicidedcolor.png new file mode 100644 index 0000000..a6dcee7 Binary files /dev/null and b/Modules/Forum/img/undicidedcolor.png differ diff --git a/Modules/Forum/include/addtopic.php b/Modules/Forum/include/addtopic.php new file mode 100755 index 0000000..57c329d --- /dev/null +++ b/Modules/Forum/include/addtopic.php @@ -0,0 +1,65 @@ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + - Back - + +
Create New Topic
Topic:
Text:
+ Write permissions: + + +
+ Read permissions: + + +
   +
+
+
"; +?> diff --git a/Modules/Forum/include/dislike.php b/Modules/Forum/include/dislike.php new file mode 100755 index 0000000..2070bb6 --- /dev/null +++ b/Modules/Forum/include/dislike.php @@ -0,0 +1,69 @@ +FAIL]
"); +} + +// get data that sent from form +$topic=mysql_real_escape_string($_REQUEST['topic']); +$answer=mysql_real_escape_string($_REQUEST['answer']); +$user=mysql_real_escape_string($_REQUEST['user']); + +$datetime=date("d/m/y H:i:s"); //create date time +if($user != $_SESSION["user_nickname"]) + die("THIS IS NOT ALLOWED!"); + +if($topic != "") +{ + if($answer=="0") + { + $sql = "SELECT `dislike` FROM forum_question WHERE `id` = '".$topic."'"; + $result2 = mysql_query ($sql); + $like=mysql_fetch_array ($result2); + + if($like[0] == "") + $like[0] = 0; + $sql="UPDATE forum_question SET `dislike`='".($like[0]+1)."' WHERE `id` = '".$topic."'"; + mysql_query($sql); + } + else + { + $sql = "SELECT `a_dislike` FROM forum_answer WHERE `question_id` = '".$topic."' AND `a_id` = '".$answer."'"; + $result2 = mysql_query ($sql); + $like=mysql_fetch_array ($result2); + if($like[0] == "") + $like[0] = 0; + $sql="UPDATE forum_answer SET `a_dislike`='".($like[0]+1)."' WHERE `question_id`= '".$topic."' AND `a_id` = '".$answer."'"; + mysql_query($sql); + } + + + $sql="INSERT INTO $tbl_name (`question`, `answer`, `nickname`, `datetime`, `like`) VALUES ('$topic', '$answer', '$user', '$datetime', 'dislike');"; + //echo $sql; + $result=mysql_query($sql); + + if($result) + { + header ("Location: ".$moduleurl."&uebergabe=1&uebergabe2=".$topic); + } + else + { + echo "ERROR: ".$sql; + } +} +else +{ + header ("Location: ".$moduleurl."&uebergabe=1&uebergabe2=".$topic); +} +mysql_close(); +?> diff --git a/Modules/Forum/include/like.php b/Modules/Forum/include/like.php new file mode 100755 index 0000000..47f52cc --- /dev/null +++ b/Modules/Forum/include/like.php @@ -0,0 +1,68 @@ +FAIL]
"); +} + +// get data that sent from form +$topic=mysql_real_escape_string($_REQUEST['topic']); +$answer=mysql_real_escape_string($_REQUEST['answer']); +$user=mysql_real_escape_string($_REQUEST['user']); + +$datetime=date("d/m/y H:i:s"); //create date time +if($user != $_SESSION["user_nickname"]) + die("THIS IS NOT ALLOWED!"); + +if($topic != "") +{ + if($answer=="0") + { + + $sql = "SELECT `like` FROM forum_question WHERE id = '".$topic."'"; + $result2 = mysql_query ($sql); + $like=mysql_fetch_array ($result2); + if($like[0] == "") + $like[0] = 0; + $sql="UPDATE forum_question SET `like`='".($like[0]+1)."' WHERE `id` = '".$topic."'"; + mysql_query($sql); + } + else + { + $sql = "SELECT `a_like` FROM forum_answer WHERE `question_id` = '".$topic."' AND `a_id` = '".$answer."'"; + $result2 = mysql_query ($sql); + $like=mysql_fetch_array ($result2); + if($like[0] == "") + $like[0] = 0; + $sql="UPDATE forum_answer SET `a_like`='".($like[0]+1)."' WHERE `question_id`= '".$topic."' AND `a_id` = '".$answer."'"; + mysql_query($sql); + } + + $sql="INSERT INTO $tbl_name(`question`, `answer`, `nickname`, `datetime`, `like`)VALUES('$topic', '$answer', '$user', '$datetime', 'like')"; + //echo $sql; + $result=mysql_query($sql); + + if($result) + { + header ("Location: ".$moduleurl."&uebergabe=1&uebergabe2=".$topic); + } + else + { + echo "ERROR"; + } +} +else +{ + header ("Location: ".$moduleurl."&uebergabe=1&uebergabe2=".$topic); +} +mysql_close(); +?> diff --git a/Modules/Forum/include/viewforum.php b/Modules/Forum/include/viewforum.php new file mode 100755 index 0000000..4a60979 --- /dev/null +++ b/Modules/Forum/include/viewforum.php @@ -0,0 +1,221 @@ +FAIL]
"); + } + + echo "
"; + switch($uebergabe2) + { + case 1: + echo "
Topic successfully closed!
"; + break; + case 2: + echo "
Topic successfully deleted!
"; + break; + case 3: + echo "
Topic successfully reopened!
"; + break; + default: + break; + } + + if($uebergabe3 == "1") + { + echo "
Admin Mode!
"; + $admin = 1; + } + + if(preg_match("/[A-Z | a-z]+/",$_POST["search"])) + { + $search = mysql_real_escape_string($_POST["search"]); + } + else + { + $search = ""; + } + if(preg_match("/[A-Z | a-z]+/",$_POST["sort"])) + { + $sort = mysql_real_escape_string($_POST["sort"]); + } + else + { + $sort = "lastupdate"; + } + + echo "
+ + + + + +
+
+ + + + +
+ Sort: + + + +
+
+
+
+ + + + +
+ Search: + + +
+
+
+
"; + + $tbl_name="forum_question"; // Table name + + $sql="SELECT * FROM $tbl_name WHERE topic LIKE '%".$search."%' ORDER BY ".$sort." DESC"; + // OREDER BY id DESC is order result by descending + $result=mysql_query($sql); + + echo " + + + + + + + + "; + + if($admin=="1" && $_SESSION["user_admin"]=="1") + { + echo ""; + } + if($admin=="1" && $_SESSION["user_admin"]=="1") + { + echo ""; + } + if($admin=="1" && $_SESSION["user_admin"]=="1") + { + echo ""; + } + echo ""; + + while($rows=mysql_fetch_array($result)) + { + if (($_SESSION["user_admin"]=="1" && $rows["r_adminonly"] == "1") || + $rows["r_guest"] == "1" || + ($rows["r_adminonly"] == "0" &&(isset ($_SESSION["user_id"])))) + { + echo " + + + + + + + "; + if($admin=="1" && $_SESSION["user_admin"]=="1") + { + echo "", + " + "; + } + if($admin=="1" && $_SESSION["user_admin"]=="1") + { + if($rows['closed']!=1) + { + echo "", + ""; + } + else + echo ""; + } + if($admin=="1" && $_SESSION["user_admin"]=="1") + { + if($rows['closed']==1) + { + echo "", + ""; + } + else + echo ""; + } + + echo ""; + + // Exit looping and close connection + } + } + mysql_close(); + + echo ""; + + if (isset ($_SESSION["user_admin"])&& $_SESSION["user_admin"]=="1") + { + if($admin != 1) + { + echo ""; + } + else + { + echo ""; + } + } + else + { + echo ""; + } + + if (isset ($_SESSION["user_id"])) + { + echo ""; + } + else + { + echo ""; + } + + echo "
#TopicViewsRepliesLikeDate/TimeLast changeDeleteCloseOpen
".$rows['id'].""; + if($rows['closed']==1) + echo "[CLOSED]"; + + echo "".$rows['topic']." + ".$rows['view']."".$rows['reply'].""; + if($rows["like"] > $rows["dislike"]) + { + echo ""; + } + if($rows["like"] < $rows["dislike"]) + { + echo ""; + } + if($rows["like"] == $rows["dislike"]) + { + echo ""; + } + echo "".$rows['datetime']."".$rows['lastupdate']."
", + "", + "
", + "", + "
", + "", + "
+ Go Admin! + Leave Admin Mode! + Create New Topic

"; +?> diff --git a/Modules/Forum/include/viewtopic.php b/Modules/Forum/include/viewtopic.php new file mode 100755 index 0000000..54fd226 --- /dev/null +++ b/Modules/Forum/include/viewtopic.php @@ -0,0 +1,305 @@ +Answer deleted!"; + break; + default: + break; + } + +echo "
"; +$tbl_name="forum_question"; // Table name + +// Connect to server and select database. +include ($_SERVER["DOCUMENT_ROOT"]."/Config/_dbconfig_.php"); +@$y = mysql_connect($MYSQL_HOST,$MYSQL_USER,$MYSQL_PASS); +@$x = mysql_select_db($MYSQL_DATABASE); +if (empty($x)) +{ + die ("Keine Verbindung zur Datenbank! [FAIL]
"); +} +// get value of id that sent from address bar +$id=mysql_real_escape_string($uebergabe2); + +$sql="SELECT * FROM $tbl_name WHERE id='$id'"; +$result=mysql_query($sql); + +$rows=mysql_fetch_array($result); +$settings = $rows; +if (($_SESSION["user_admin"]=="1" && $rows["r_adminonly"] == "1") || + $rows["r_guest"] == "1" || + ($rows["r_adminonly"] == "0" &&(isset ($_SESSION["user_id"])))) +{ + if($rows["like"] == "") + { + $rows["like"] = "0"; + } + if($rows["dislike"] == "") + { + $rows["dislike"] = "0"; + } + + if(isset($_GET['success'])) + { + echo "
Answer successfully created!
"; + } + echo " + + + + +
+ + + + + + + +
+ # Forum Home +
+ # Forum Home +
+
+ + + + + +
"; + $sql = "SELECT Avatar FROM userdata WHERE Nickname = '".$rows["name"]."'"; + $result = mysql_query ($sql); + $Avatar=mysql_fetch_array ($result); + echo"\n"; + echo " + + + + + + + + + + +
".$rows['topic']."
". $rows['detail'] ."
+ + + + + +
+ By:".$rows['name']." Date: ".$rows['datetime']." + + "; + if(isset($_SESSION["user_id"])) + { + $sql = "SELECT * FROM forum_like WHERE question = '".$id."' AND answer = '0'"; + $result = mysql_query ($sql); + $liked = false; + $disliked = false; + while($Like=mysql_fetch_array($result)) + { + if($Like[2]==$_SESSION["user_nickname"]) + { + $liked = true; + $disliked = true; + } + } + + if(!$liked) + echo $rows['like'].""; + else + echo $rows['like'].""; + if(!$disliked) + echo $rows['dislike'].""; + else + echo $rows['dislike'].""; + } + else + { + echo $rows['like']."". + $rows['dislike'].""; + } + echo " +
+
+
+
+
"; + $tbl_name2="forum_answer"; // Switch to table "forum_answer" + $sql2="SELECT * FROM $tbl_name2 WHERE question_id='$id' ORDER BY a_id ASC"; + $result2=mysql_query($sql2); + + while($rows=mysql_fetch_array($result2)) + { + echo " + + + + + +
"; + + $sql = "SELECT Avatar FROM userdata WHERE Nickname = '".$rows["a_name"]."'"; + $result = mysql_query ($sql); + $Avatar=mysql_fetch_array ($result); + if($rows["a_name"] == "") + { + $rows["a_name"] = "guest"; + } + + if($rows["a_like"] == "") + { + $rows["a_like"] = "0"; + } + if($rows["a_dislike"] == "") + { + $rows["a_dislike"] = "0"; + } + + echo" \n + + + + + + + + "; + + if($rows['a_attachment'] != "") + { + $pos1 = strpos($rows['a_attachment'], "-"); + $pos2 = strpos($rows['a_attachment'], "-",$pos1+1); + $attname = substr($rows['a_attachment'], $pos2+1); + echo " + + + "; + } + echo " + + + +
#". $rows['a_id']." , by:".$rows['a_name']; + + if(($_SESSION["user_nickname"] == $rows["a_name"] && $settings["closed"] != 1)|| $_SESSION["user_admin"]=="1") + { + echo "
"; + echo "X"; + echo "
"; + } + echo "
". $rows['a_answer']. "
Attachment: + ".$attname."
+ + + + + +
+ Date: ".$rows['a_datetime']." + + "; + if(isset($_SESSION["user_id"])) + { + $sql = "SELECT * FROM forum_like WHERE question = '".$id."' AND answer = '".$rows["a_id"]."'"; + $result = mysql_query ($sql); + $liked = false; + $disliked = false; + while($Like=mysql_fetch_array($result)) + { + if($Like[2]==$_SESSION["user_nickname"]) + { + $liked = true; + $disliked = true; + } + } + + if(!$liked) + echo $rows['a_like'].""; + else + echo $rows['a_like'].""; + if(!$disliked) + echo $rows['a_dislike'].""; + else + echo $rows['a_dislike'].""; + } + else + { + echo $rows['a_like']."". + $rows['a_dislike'].""; + } + echo " + +
+
+
+
"; + } + + $sql3="SELECT view FROM $tbl_name WHERE id='$id'"; + $result3=mysql_query($sql3); + + $rows=mysql_fetch_array($result3); + $view=$rows['view']; + + // if have no counter value set counter = 1 + if(empty($view)) + { + $view=1; + $sql4="INSERT INTO $tbl_name(view) VALUES('$view') WHERE id='$id'"; + $result4=mysql_query($sql4); + } + + // count more value + $addview=$view+1; + $sql5="update $tbl_name set view='$addview' WHERE id='$id'"; + $result5=mysql_query($sql5); + + mysql_close(); + echo " +
+
"; + + if (((isset ($_SESSION["user_id"]) && $settings["w_adminonly"]== "0") || + $settings["w_guest"]=="1" || + ($_SESSION["user_admin"]=="1"&&$settings["w_adminonly"]== "1")) + && $settings["closed"] != "1") + { + echo" + + + + +
+
+ + + + + + "; + if (isset ($_SESSION["user_id"])) + { + echo " + + + + + "; + } + echo " + + + + + +
Answer:
Attachment:
 
+
+
"; + } +} +?> diff --git a/Modules/Forum/index.php b/Modules/Forum/index.php new file mode 100755 index 0000000..efe4789 --- /dev/null +++ b/Modules/Forum/index.php @@ -0,0 +1,43 @@ + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } + if($_SERVER["REQUEST_URI"] == "/" || is_null($_SERVER["REQUEST_URI"])) + { + $moduleurl = "/index.php?site=1"; + } +} +$moduleurl1 = $moduleurl; + +switch($uebergabe) +{ +//----------------------------------------------------------------------------------------------------------------------------------------------------------- +case "0": + include($_SERVER["DOCUMENT_ROOT"]."/Modules/Forum/include/viewforum.php"); + break; +//------------------------------------------------------------------------------------------------------------------------- +//view topic--------------------------------------------------------------------------------------------------------------- +case "1": + include($_SERVER["DOCUMENT_ROOT"]."/Modules/Forum/include/viewtopic.php"); + break; +//------------------------------------------------------------------------------------------------------------------------- +//add topic---------------------------------------------------------------------------------------------------------------- +case "2": + include($_SERVER["DOCUMENT_ROOT"]."/Modules/Forum/include/addtopic.php"); + break; +//------------------------------------------------------------------------------------------------------------------------- +//------------------------------------------------------------------------------------------------------------------------- +default: + include($_SERVER["DOCUMENT_ROOT"]."/Modules/Forum/include/viewforum.php"); + break; +} + diff --git a/Modules/Forum/reopen_topic.php b/Modules/Forum/reopen_topic.php new file mode 100755 index 0000000..5ab1174 --- /dev/null +++ b/Modules/Forum/reopen_topic.php @@ -0,0 +1,31 @@ +FAIL]
"); +} + +// get data that sent from form +$topic=$_POST['topicid']; + +$sql="UPDATE $tbl_name SET closed ='0' WHERE id ='$topic'"; +$result=mysql_query($sql); + +if($result) +{ + header ("Location: ".$moduleurl."&uebergabe=0&uebergabe2=3&uebergabe3=1"); +} +else +{ + echo "ERROR"; +} +mysql_close(); +?> diff --git a/Modules/Forum/uploads/11-3-Daumen_hoch_90.JPG.zip b/Modules/Forum/uploads/11-3-Daumen_hoch_90.JPG.zip new file mode 100755 index 0000000..79f9d32 Binary files /dev/null and b/Modules/Forum/uploads/11-3-Daumen_hoch_90.JPG.zip differ diff --git a/Modules/Forum/uploads/19-1-h44z_64 b/Modules/Forum/uploads/19-1-h44z_64 new file mode 100644 index 0000000..101d8f1 Binary files /dev/null and b/Modules/Forum/uploads/19-1-h44z_64 differ diff --git a/Modules/Forum/uploads/19-2-h44z_32 b/Modules/Forum/uploads/19-2-h44z_32 new file mode 100755 index 0000000..8a3c923 Binary files /dev/null and b/Modules/Forum/uploads/19-2-h44z_32 differ diff --git a/Modules/Forum/uploads/2-19-altium-printoutsV1.1.OutJob b/Modules/Forum/uploads/2-19-altium-printoutsV1.1.OutJob new file mode 100755 index 0000000..86c4257 --- /dev/null +++ b/Modules/Forum/uploads/2-19-altium-printoutsV1.1.OutJob @@ -0,0 +1,142 @@ +[OutputJobFile] +Version=1.0 + +[OutputGroup1] +Name=altium-printoutsV1.0.OutJob +Description= +TargetOutputMedium=Generate Files +IncludedInRelease=0 +TargetPrinter=Microsoft XPS Document Writer +PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintWhat=1 +OutputMedium1=Publish To PDF +OutputMedium1_Type=Publish +OutputMedium2=Generate Files +OutputMedium2_Type=GeneratedFiles +OutputType1=Schematic Print +OutputName1=Schematic Ausdrucke +OutputDocumentPath1=[Project Physical Documents] +OutputVariantName1=[No Variations] +OutputEnabled1=0 +OutputEnabled1_OutputMedium1=1 +OutputEnabled1_OutputMedium2=0 +OutputDefault1=0 +PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=2|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +Configuration1_Name1=OutputConfigurationParameter1 +Configuration1_Item1=Record=SchPrintView|ShowNoERC=True|ShowParamSet=True|ShowProbe=True|ExpandDesignator=True|ExpandNetLabel=False|ExpandPort=False|ExpandSheetNum=False|ExpandDocNum=False +OutputType2=BOM_PartType +OutputName2=Stückliste +OutputDocumentPath2= +OutputVariantName2= +OutputEnabled2=1 +OutputEnabled2_OutputMedium1=0 +OutputEnabled2_OutputMedium2=3 +OutputDefault2=0 +PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=0|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=1 +Configuration2_Name1=Filter +Configuration2_Item1=545046300E5446696C74657257726170706572000D46696C7465722E416374697665090F46696C7465722E43726974657269610A04000000000000000000 +Configuration2_Name2=General +Configuration2_Item2=OpenExported=False|AddToProject=True|ForceFit=True|Database=False|IncludePCBData=False|ShowExportOptions=True|TemplateFilename=|BatchMode=0|FormWidth=904|FormHeight=633 +Configuration2_Name3=GroupOrder +Configuration2_Item3=Comment=True|Footprint=True +Configuration2_Name4=OutputConfigurationParameter1 +Configuration2_Item4=Record=BOMPrintView|ShowNoERC=True|ShowParamSet=True|ShowProbe=True|ExpandDesignator=True|ExpandNetLabel=False|ExpandPort=False|ExpandSheetNum=False|ExpandDocNum=False +Configuration2_Name5=PCBDocument +Configuration2_Item5= +Configuration2_Name6=SortOrder +Configuration2_Item6=Quantity=Up +Configuration2_Name7=VisibleOrder +Configuration2_Item7=Designator=100|Value=100|Comment=100|Quantity=100|Footprint=100|Description=100 +OutputType3=Gerber +OutputName3=Gerber Files +OutputDocumentPath3= +OutputVariantName3= +OutputEnabled3=1 +OutputEnabled3_OutputMedium1=0 +OutputEnabled3_OutputMedium2=1 +OutputDefault3=0 +Configuration3_Name1=OutputConfigurationParameter1 +Configuration3_Item1=AddToAllPlots_Mechanical 1=False|AddToAllPlots_Mechanical 10=False|AddToAllPlots_Mechanical 11=False|AddToAllPlots_Mechanical 12=False|AddToAllPlots_Mechanical 13=False|AddToAllPlots_Mechanical 14=False|AddToAllPlots_Mechanical 15=False|AddToAllPlots_Mechanical 16=False|AddToAllPlots_Mechanical 2=False|AddToAllPlots_Mechanical 3=False|AddToAllPlots_Mechanical 4=True|AddToAllPlots_Mechanical 5=False|AddToAllPlots_Mechanical 6=False|AddToAllPlots_Mechanical 7=False|AddToAllPlots_Mechanical 8=False|AddToAllPlots_Mechanical 9=False|CentrePlots=False|DrillDrawingSymbol=GraphicsSymbol|DrillDrawingSymbolSize=500000|EmbeddedApertures=True|FilmBorderSize=10000000|FilmXSize=200000000|FilmYSize=160000000|FlashAllFills=False|FlashPadShapes=True|G54OnApertureChange=False|GenerateDRCRulesFile=True|GenerateReliefShapes=True|GerberUnit=Imperial|IncludeUnconnectedMidLayerPads=False|LeadingAndTrailingZeroesMode=SuppressLeadingZeroes|MaxApertureSize=2500000|MinusApertureTolerance=50|MirrorBottomLayerPlot=False|MirrorBottomOverlayPlot=False|MirrorBottomPadMasterPlot=False|MirrorBottomPastePlot=False|MirrorBottomSolderPlot=False|MirrorDrillDrawingPlots=False|MirrorDrillGuidePlots=False|MirrorInternalPlane10Plot=False|MirrorInternalPlane11Plot=False|MirrorInternalPlane12Plot=False|MirrorInternalPlane13Plot=False|MirrorInternalPlane14Plot=False|MirrorInternalPlane15Plot=False|MirrorInternalPlane16Plot=False|MirrorInternalPlane1Plot=False|MirrorInternalPlane2Plot=False|MirrorInternalPlane3Plot=False|MirrorInternalPlane4Plot=False|MirrorInternalPlane5Plot=False|MirrorInternalPlane6Plot=False|MirrorInternalPlane7Plot=False|MirrorInternalPlane8Plot=False|MirrorInternalPlane9Plot=False|MirrorKeepOutLayerPlot=False|MirrorMechanical10Plot=False|MirrorMechanical11Plot=False|MirrorMechanical12Plot=False|MirrorMechanical13Plot=False|MirrorMechanical14Plot=False|MirrorMechanical15Plot=False|MirrorMechanical16Plot=False|MirrorMechanical1Plot=False|MirrorMechanical2Plot=False|MirrorMechanical3Plot=False|MirrorMechanical4Plot=False|MirrorMechanical5Plot=False|MirrorMechanical6Plot=False|MirrorMechanical7Plot=False|MirrorMechanical8Plot=False|MirrorMechanical9Plot=False|MirrorMidLayer10Plot=False|MirrorMidLayer11Plot=False|MirrorMidLayer12Plot=False|MirrorMidLayer13Plot=False|MirrorMidLayer14Plot=False|MirrorMidLayer15Plot=False|MirrorMidLayer16Plot=False|MirrorMidLayer17Plot=False|MirrorMidLayer18Plot=False|MirrorMidLayer19Plot=False|MirrorMidLayer1Plot=False|MirrorMidLayer20Plot=False|MirrorMidLayer21Plot=False|MirrorMidLayer22Plot=False|MirrorMidLayer23Plot=False|MirrorMidLayer24Plot=False|MirrorMidLayer25Plot=False|MirrorMidLayer26Plot=False|MirrorMidLayer27Plot=False|MirrorMidLayer28Plot=False|MirrorMidLayer29Plot=False|MirrorMidLayer2Plot=False|MirrorMidLayer30Plot=False|MirrorMidLayer3Plot=False|MirrorMidLayer4Plot=False|MirrorMidLayer5Plot=False|MirrorMidLayer6Plot=False|MirrorMidLayer7Plot=False|MirrorMidLayer8Plot=False|MirrorMidLayer9Plot=False|MirrorTopLayerPlot=False|MirrorTopOverlayPlot=False|MirrorTopPadMasterPlot=False|MirrorTopPastePlot=False|MirrorTopSolderPlot=False|NumberOfDecimals=3|OptimizeChangeLocationCommands=True|OriginPosition=Absolute|Panelize=False|PlotBottomLayerPlot=True|PlotBottomOverlayPlot=False|PlotBottomPadMasterPlot=False|PlotBottomPastePlot=False|PlotBottomSolderPlot=False|PlotInternalPlane10Plot=False|PlotInternalPlane11Plot=False|PlotInternalPlane12Plot=False|PlotInternalPlane13Plot=False|PlotInternalPlane14Plot=False|PlotInternalPlane15Plot=False|PlotInternalPlane16Plot=False|PlotInternalPlane1Plot=False|PlotInternalPlane2Plot=False|PlotInternalPlane3Plot=False|PlotInternalPlane4Plot=False|PlotInternalPlane5Plot=False|PlotInternalPlane6Plot=False|PlotInternalPlane7Plot=False|PlotInternalPlane8Plot=False|PlotInternalPlane9Plot=False|PlotKeepOutLayerPlot=False|PlotMechanical10Plot=False|PlotMechanical11Plot=False|PlotMechanical12Plot=False|PlotMechanical13Plot=False|PlotMechanical14Plot=False|PlotMechanical15Plot=False|PlotMechanical16Plot=False|PlotMechanical1Plot=False|PlotMechanical2Plot=False|PlotMechanical3Plot=False|PlotMechanical4Plot=False|PlotMechanical5Plot=False|PlotMechanical6Plot=False|PlotMechanical7Plot=False|PlotMechanical8Plot=False|PlotMechanical9Plot=False|PlotMidLayer10Plot=False|PlotMidLayer11Plot=False|PlotMidLayer12Plot=False|PlotMidLayer13Plot=False|PlotMidLayer14Plot=False|PlotMidLayer15Plot=False|PlotMidLayer16Plot=False|PlotMidLayer17Plot=False|PlotMidLayer18Plot=False|PlotMidLayer19Plot=False|PlotMidLayer1Plot=False|PlotMidLayer20Plot=False|PlotMidLayer21Plot=False|PlotMidLayer22Plot=False|PlotMidLayer23Plot=False|PlotMidLayer24Plot=False|PlotMidLayer25Plot=False|PlotMidLayer26Plot=False|PlotMidLayer27Plot=False|PlotMidLayer28Plot=False|PlotMidLayer29Plot=False|PlotMidLayer2Plot=False|PlotMidLayer30Plot=False|PlotMidLayer3Plot=False|PlotMidLayer4Plot=False|PlotMidLayer5Plot=False|PlotMidLayer6Plot=False|PlotMidLayer7Plot=False|PlotMidLayer8Plot=False|PlotMidLayer9Plot=False|PlotPositivePlaneLayers=False|PlotTopLayerPlot=True|PlotTopOverlayPlot=True|PlotTopPadMasterPlot=False|PlotTopPastePlot=False|PlotTopSolderPlot=False|PlotUsedDrillDrawingLayerPairs=False|PlotUsedDrillGuideLayerPairs=False|PlusApertureTolerance=50|Record=GerberView|SoftwareArcs=False|Sorted=False +OutputType4=NC Drill +OutputName4=NC Drill Files +OutputDocumentPath4= +OutputVariantName4= +OutputEnabled4=1 +OutputEnabled4_OutputMedium1=0 +OutputEnabled4_OutputMedium2=2 +OutputDefault4=0 +Configuration4_Name1=OutputConfigurationParameter1 +Configuration4_Item1=BoardEdgeRoutToolDia=2000000|GenerateBoardEdgeRout=False|GenerateDrilledSlotsG85=False|GenerateSeparatePlatedNonPlatedFiles=False|NumberOfDecimals=3|NumberOfUnits=2|OptimizeChangeLocationCommands=True|OriginPosition=Absolute|Record=DrillView|Units=Imperial|ZeroesMode=SuppressLeadingZeroes +OutputType5=Final +OutputName5=PCB Ausdrucke +OutputDocumentPath5= +OutputVariantName5= +OutputEnabled5=0 +OutputEnabled5_OutputMedium1=2 +OutputEnabled5_OutputMedium2=0 +OutputDefault5=0 +PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=2|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PaperKind=A4|PrintScaleMode=0 +Configuration5_Name1=OutputConfigurationParameter1 +Configuration5_Item1=PrintArea=DesignExtent|PrintAreaLowerLeftCornerX=0|PrintAreaLowerLeftCornerY=0|PrintAreaUpperRightCornerX=0|PrintAreaUpperRightCornerY=0|Record=PcbPrintView +Configuration5_Name2=OutputConfigurationParameter2 +Configuration5_Item2=IncludeBottomLayerComponents=True|IncludeMultiLayerComponents=True|IncludeTopLayerComponents=True|Index=0|Mirror=False|Name=Top Layer (Kupfer)|PadNumberFontSize=14|Record=PcbPrintOut|ShowHoles=True|ShowPadNets=False|ShowPadNumbers=False|SubstituteFonts=False +Configuration5_Name3=OutputConfigurationParameter3 +Configuration5_Item3=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=MultiLayer|Polygon=Full|PrintOutIndex=0|Record=PcbPrintLayer +Configuration5_Name4=OutputConfigurationParameter4 +Configuration5_Item4=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=TopLayer|Polygon=Full|PrintOutIndex=0|Record=PcbPrintLayer +Configuration5_Name5=OutputConfigurationParameter5 +Configuration5_Item5=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=Mechanical4|Polygon=Full|PrintOutIndex=0|Record=PcbPrintLayer +Configuration5_Name6=OutputConfigurationParameter6 +Configuration5_Item6=IncludeBottomLayerComponents=True|IncludeMultiLayerComponents=True|IncludeTopLayerComponents=True|Index=1|Mirror=True|Name=Bottom Layer (Kupfer)|PadNumberFontSize=14|Record=PcbPrintOut|ShowHoles=True|ShowPadNets=False|ShowPadNumbers=False|SubstituteFonts=False +Configuration5_Name7=OutputConfigurationParameter7 +Configuration5_Item7=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=MultiLayer|Polygon=Full|PrintOutIndex=1|Record=PcbPrintLayer +Configuration5_Name8=OutputConfigurationParameter8 +Configuration5_Item8=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=BottomLayer|Polygon=Full|PrintOutIndex=1|Record=PcbPrintLayer +Configuration5_Name9=OutputConfigurationParameter9 +Configuration5_Item9=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=Mechanical4|Polygon=Full|PrintOutIndex=1|Record=PcbPrintLayer +Configuration5_Name10=OutputConfigurationParameter10 +Configuration5_Item10=IncludeBottomLayerComponents=True|IncludeMultiLayerComponents=True|IncludeTopLayerComponents=True|Index=2|Mirror=False|Name=Bestückungsplan Top Layer|PadNumberFontSize=14|Record=PcbPrintOut|ShowHoles=False|ShowPadNets=False|ShowPadNumbers=False|SubstituteFonts=False +Configuration5_Name11=OutputConfigurationParameter11 +Configuration5_Item11=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=TopOverlay|Polygon=Full|PrintOutIndex=2|Record=PcbPrintLayer +Configuration5_Name12=OutputConfigurationParameter12 +Configuration5_Item12=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=Mechanical4|Polygon=Full|PrintOutIndex=2|Record=PcbPrintLayer +Configuration5_Name13=OutputConfigurationParameter13 +Configuration5_Item13=IncludeBottomLayerComponents=True|IncludeMultiLayerComponents=True|IncludeTopLayerComponents=True|Index=3|Mirror=True|Name=Bestückungsplan Bottom Layer|PadNumberFontSize=14|Record=PcbPrintOut|ShowHoles=False|ShowPadNets=False|ShowPadNumbers=False|SubstituteFonts=False +Configuration5_Name14=OutputConfigurationParameter14 +Configuration5_Item14=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=BottomOverlay|Polygon=Full|PrintOutIndex=3|Record=PcbPrintLayer +Configuration5_Name15=OutputConfigurationParameter15 +Configuration5_Item15=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=Mechanical4|Polygon=Full|PrintOutIndex=3|Record=PcbPrintLayer +Configuration5_Name16=OutputConfigurationParameter16 +Configuration5_Item16=IncludeBottomLayerComponents=True|IncludeMultiLayerComponents=True|IncludeTopLayerComponents=True|Index=4|Mirror=True|Name=Bohrplan (Ansicht von Bottom)|PadNumberFontSize=14|Record=PcbPrintOut|ShowHoles=False|ShowPadNets=False|ShowPadNumbers=False|SubstituteFonts=False +Configuration5_Name17=OutputConfigurationParameter17 +Configuration5_Item17=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=DrillDrawing|Polygon=Full|PrintOutIndex=4|Record=PcbPrintLayer +Configuration5_Name18=OutputConfigurationParameter18 +Configuration5_Item18=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=Mechanical4|Polygon=Full|PrintOutIndex=4|Record=PcbPrintLayer + +[PublishSettings] +PublishMethod1=0 +OpenOutput1=1 +PromptOverwrite1=1 +ZoomLevel1=50 +FitSCHPrintSizeToDoc1=1 +FitPCBPrintSizeToDoc1=1 +GenerateNetsInfo1=1 +MarkPins1=1 +MarkNetLabels1=1 +MarkPortsId1=1 +OutputFilePath1= + +[GeneratedFilesSettings] +RelativeOutputPath2= +OpenOutputs2=0 +AddToProject2=1 +TimestampFolder2=0 +SeparateFolderForEachOutput2=1 +UseOutputName2=1 + +[CAMtasticOutputs] +OpenODBOutput=False +OpenGerberOutput=False +OpenNCDrillOutput=False +OpenIPCOutput=False +EnableReload=False + diff --git a/Modules/Forum/uploads/3-5-hydra.restore b/Modules/Forum/uploads/3-5-hydra.restore new file mode 100755 index 0000000..f424752 Binary files /dev/null and b/Modules/Forum/uploads/3-5-hydra.restore differ diff --git a/Modules/Forum/uploads/Daumenh.JPG b/Modules/Forum/uploads/Daumenh.JPG new file mode 100755 index 0000000..c11c82a Binary files /dev/null and b/Modules/Forum/uploads/Daumenh.JPG differ diff --git a/Modules/Forum/uploads/Daumenr.jpg b/Modules/Forum/uploads/Daumenr.jpg new file mode 100755 index 0000000..2ad8ad1 Binary files /dev/null and b/Modules/Forum/uploads/Daumenr.jpg differ diff --git a/Modules/Forum/uploads/index.php b/Modules/Forum/uploads/index.php new file mode 100755 index 0000000..91eefb3 --- /dev/null +++ b/Modules/Forum/uploads/index.php @@ -0,0 +1,3 @@ + diff --git a/Modules/Home/img/01.png b/Modules/Home/img/01.png new file mode 100755 index 0000000..4469a39 Binary files /dev/null and b/Modules/Home/img/01.png differ diff --git a/Modules/Home/img/02.png b/Modules/Home/img/02.png new file mode 100755 index 0000000..f44b541 Binary files /dev/null and b/Modules/Home/img/02.png differ diff --git a/Modules/Home/img/03.png b/Modules/Home/img/03.png new file mode 100755 index 0000000..1839083 Binary files /dev/null and b/Modules/Home/img/03.png differ diff --git a/Modules/Home/img/apache_logo.gif b/Modules/Home/img/apache_logo.gif new file mode 100755 index 0000000..0db293e Binary files /dev/null and b/Modules/Home/img/apache_logo.gif differ diff --git a/Modules/Home/img/contact.jpg b/Modules/Home/img/contact.jpg new file mode 100755 index 0000000..05dca75 Binary files /dev/null and b/Modules/Home/img/contact.jpg differ diff --git a/Modules/Home/img/debian_logo.png b/Modules/Home/img/debian_logo.png new file mode 100755 index 0000000..7a31582 Binary files /dev/null and b/Modules/Home/img/debian_logo.png differ diff --git a/Modules/Home/img/mysql_logo.png b/Modules/Home/img/mysql_logo.png new file mode 100755 index 0000000..5c1e3b4 Binary files /dev/null and b/Modules/Home/img/mysql_logo.png differ diff --git a/Modules/Home/img/openvpn_logo.png b/Modules/Home/img/openvpn_logo.png new file mode 100755 index 0000000..4ea1df5 Binary files /dev/null and b/Modules/Home/img/openvpn_logo.png differ diff --git a/Modules/Home/img/schulvpn.png b/Modules/Home/img/schulvpn.png new file mode 100755 index 0000000..517589b Binary files /dev/null and b/Modules/Home/img/schulvpn.png differ diff --git a/Modules/Home/img/ubuntu_logo.png b/Modules/Home/img/ubuntu_logo.png new file mode 100755 index 0000000..ed938ca Binary files /dev/null and b/Modules/Home/img/ubuntu_logo.png differ diff --git a/Modules/Home/index.php b/Modules/Home/index.php new file mode 100755 index 0000000..c8f0fdd --- /dev/null +++ b/Modules/Home/index.php @@ -0,0 +1,105 @@ +
+ +
+
+
+

+ Welcome +

+
+ +

Infos über das Projekt:

+
+

Mit Hilfe von OpenVPN wird der gesamte Netzwerkverkehr der ueber das WLAN uebertragen wird verschluesselt. + Dies hat den Vorteil, dass private Daten, wie z.B Login-Informationen usw., wirklich privat bleiben.

+

In der HTL wird ein Verschluesselter Tunnel von einem Client (z.B. Schueler-Laptop) zum VPN-Server aufgebaut. Der VPN Server Leitet dann den gesamten + Traffic direkt an den Hauptrouter/Proxy der HTL weiter. Die Verbindung vom VPN-Server zum Router erfolgt direkt ueber Kabel und wird somit als "sicher" + bezeichnet.

+ + + + + + + + +
+
+
+
+
+
+
Mitmachen
+
+
+
+ an image +

Besteht interresse an einem Account fuer SchulVPN? Dann melde dich einfach + bei einen von den Administratoren! +

+ +
+
+
+
+
+
+
+
+
+
+
Development
+
+
+
+ an image +

Du wuerdest gerne mithelfen oder hast Fehler und Anregungen zu melden? Sende uns eine Email oder erstelle einen Forenbeitrag!

+ +
+
+
+
+
+ +

Powered by:

+ + + + + + + + + + + + + + + + + +
+ + + Ubuntu 10.04 LTS Server Linux +
+ + + Apache 2 Webserver +
+ + + MySQL 5.1 Datenbank +
+ + + OpenVPN 2.1 Server +
+
+
+
+ +
+
+
diff --git a/Modules/Privacy/index.php b/Modules/Privacy/index.php new file mode 100755 index 0000000..3a85083 --- /dev/null +++ b/Modules/Privacy/index.php @@ -0,0 +1,65 @@ + + +
+
+
+
+

+ Privacy Information +

+
+ +

Consent to Collection of Your Personal Information

+ +When you visit this site, certain kinds of non-personal information, such as the website that referred you to us, your IP address, browser type and language, and access times, may be collected automatically as part of the site's operation. We also may collect navigational information, including information about the pages you view, the links you click, and other actions taken in connection with the site. Demographic information (e.g., your occupation, hobbies, gender, or interests) may also be collected and may be linked to your personal information. + +We only collect personal information about you after you have provided us with your consent to collect that specific information. By voluntarily providing this information to us, you consent to the collection and use of your personal information as set out in this privacy policy. + +

Personal information includes:

+Information collected when you place the order including your name, billing address, email address, and phone number. + +

Please note:

we do not collect the credit card details, because we use payment gateways to process your order(s). + +You may always choose not to provide personal information, but if you so choose, the offered products and services may not be available to you. + +

Use of Your Personal Information

+ +We collect and use your personal information to: +

* process your transactions;

+

* provide customer service;

+

* perform research and analysis aimed at improving our products, services and technologies;

+

* to display content that is customized to your interests and preferences;

+

* to run contests, select entrants, and choose prize winners;

+

* to communicate with you about your transactions, new products and services. We may send transaction-related communications such as welcome letters, billing reminders, and purchase confirmations. We may also send you surveys or marketing communications to inform you of new products or services or other information or offers that may be of interest.

+ +

Disclosing Your Personal Information

+ +Except as set out in this privacy policy, we do not disclose or sell your personal information to any third-parties. + +We may disclose your personal information to third-party service providers who perform services on our behalf. For example, we may hire other companies to handle the processing of payments, to provide data storage, to host websites, to fulfill orders and shipments, to assist in marketing, to conduct audits, etc. Those third-party service providers (i) shall be permitted to obtain only the personal information they need to provide the service, (ii) must protect personal information to the same extent as FlashMint, and (iii) shall be prohibited from using it for any other purpose. + +We reserve the right to disclose your personal information if required or permitted to do so by law. + +

Security of Your Personal Information

+ +The security of your personal information is important to us. We follow generally accepted industry standards to help protect your personal information including without limitation: +

* limiting access to your personal information to those of our employees who require it to provide services to you;

+

* requiring employees to sign confidentiality agreements to protect customer and other confidential information;

+

* ensuring that third-party service providers sign confidentiality agreements to maintain the confidentiality of your personal information and not to use it for any unauthorized purposes;

+

* storing your personal information in secure computer systems which protect it from unauthorized access or use.

+ +No method of transmission over the Internet, or method of electronic storage, is 100% secure. Therefore, while we strive to protect your personal information, we cannot guarantee its absolute security. + +

Changes to This Privacy Policy

+ +We reserve the right to change the terms of this privacy policy at any time. When we make changes, we will revise the "last updated" date at the top of the policy. If there are material changes to this statement or in how we will use your personal information, we will notify you by prominently posting a notice of such changes here or on our home page, or by sending you an email. We encourage you to review this policy whenever you visit one of our sites. + + + +Last update: 6. Nov 2009 +
+
+
+
+
+ diff --git a/Modules/ServerTraffic/index.php b/Modules/ServerTraffic/index.php new file mode 100644 index 0000000..da2462e --- /dev/null +++ b/Modules/ServerTraffic/index.php @@ -0,0 +1,215 @@ +"; + exit; + } + + $by = "id"; //$_GET["by"]; + if($_POST["dirsort"] != "") + { + $sort = mysql_real_escape_string($_POST["dirsort"]); + } + else + { + $sort = $_POST["dirsort"]; + } + if($_POST["table"] != "") + { + $table = mysql_real_escape_string($_POST["table"]); + } + else + { + $table = $_POST["table"]; + } + +function Potenz($sent_sum) +{ + if($sent_sum>1024) + { + $sent_sum_anz=round($sent_sum/1024,2) . "kiB"; + + if($sent_sum>1024*1024) + { + $sent_sum_anz=round($sent_sum/(1024*1024),2) . "MiB"; + + if($sent_sum>1024*1024*1024) + { + $sent_sum_anz=round($sent_sum/(1024*1024*1024),2) . "GiB"; + } + } + } + else + { + $sent_sum_anz=$sent_sum . "Byte"; + } + return $sent_sum_anz; +} +?> + + +
+
+ + + + + +
+ + +"; + if($table=='connections') + { + echo "Start TimeStop TimeClient IPDownload + Upload\n"; + } + else if($table=='month') + { + echo "MonthYearConnection TimeDownload + Upload\n"; + } + else if($table=='year') + { + echo "YearConnection TimeDownload + Upload\n"; + } + else + { + } +// ------------------------------------------------ Mysql lesen + if ($result) + { +//Zusammenzaehlen + $time_sum=0; + $month=0; + $year=0; + + $sent_sum=0; + $received_sum=0; + + while ($ar=mysql_fetch_array($result,MYSQL_ASSOC)) + { + if($table=='connections') + { + if($ar["stop"] != 0) + { + $stop = date("r",$ar["stop"]); + } + else + { + $stop = "running session"; + } + echo "",date("r",$ar["start"]),"",$stop,"",$ar["ip"], + "",Potenz($ar["sent"]),"",Potenz($ar["received"]), + "\n"; + } + else if($table=='month') + { + if($month!=$ar["month"] && $month!=0) + { + $hour = floor($time_sum/3600); + $min = floor($time_sum/60 - $hour *60); + $sec = $time_sum-$hour*3600-$min*60; + $timestring = $hour .":". $min .":". $sec; + + $sent_sum_anz = Potenz($sent_sum); + $received_sum_anz = Potenz($received_sum); + + echo "",$month,"",$year,"",$timestring, + "",$sent_sum_anz,"",$received_sum_anz, + "\n"; + $sent_sum=0; + $received_sum=0; + $time_sum=0; + } + else + { + } + $month=$ar["month"]; + $year=$ar["year"]; + $time_sum += $ar["time"]; + $sent_sum += $ar["sent"]; + $received_sum += $ar["received"]; + } + else if($table=='year') + { + if($year!=$ar["year"] && $year!=0) + { + $hour = floor($time_sum/3600); + $min = floor($time_sum/60 - $hour *60); + $sec = $time_sum-$hour*3600-$min*60; + $timestring = $hour .":". $min .":". $sec; + + $sent_sum_anz = Potenz($sent_sum); + $received_sum_anz = Potenz($received_sum); + + echo "",$year,"",$timestring, + "",$sent_sum_anz,"",$received_sum_anz, + "\n"; + $sent_sum=0; + $received_sum=0; + $time_sum=0; + } + else + { + } + $year=$ar["year"]; + $time_sum += $ar["time"]; + $sent_sum += $ar["sent"]; + $received_sum += $ar["received"]; + } + else + { + } + } +//letzen Datensatz ausgeben + $hour = floor($time_sum/3600); + $min = floor($time_sum/60 - $hour *60); + $sec = $time_sum-$hour*3600-$min*60; + $timestring = $hour .":". $min .":". $sec; + + $sent_sum_anz = Potenz($sent_sum); + $received_sum_anz = Potenz($received_sum); + + + if($table=='year') + { + echo "",$year,"",$timestring, + "",$sent_sum_anz,"",$received_sum_anz, + "\n"; + } + else if($table=='month') + { + echo "",$month,"",$year,"",$timestring, + "",$sent_sum_anz,"",$received_sum_anz, + "\n"; + } + $sent_sum=0; + $received_sum=0; + $time_sum=0; +//--------------------------------- + } + else + { + echo "
"; + } + echo ""; + mysql_close(); +?> + diff --git a/Modules/Services/download/certinstall.sh b/Modules/Services/download/certinstall.sh new file mode 100755 index 0000000..6c8cd41 --- /dev/null +++ b/Modules/Services/download/certinstall.sh @@ -0,0 +1,232 @@ +#!/bin/bash + +echo "Config-Installationsprogramm für SchulVPN" + +if [ $USER != "root" ]; +then +echo Root-Rechte benoetigt! +read +exit 0 +fi + + +echo "Geben Sie das Standard-Wireless Interface ein: " +read WLAN +echo "Geben Sie die ESSID an, bei dem OpenVPN nicht verbinden soll: " +read NOVPNESSID +echo "Geben Sie das Interface an, bei dem OpvenVPN nicht verbinden soll: " +read NOVPNINT +echo "Geben Sie Ihren Benutzernamen ein: " +read BENUTZER + +mkdir $HOME/.vpn +mkdir $HOME/.vpn/keys + +##------------------------------------------------------------------------------ +#/etc/NetworkManager/dispatcher.d/02vpn +##------------------------------------------------------------------------------ +echo "#!/bin/bash + +INTERFACE=\$1 +ACTION=\$2 + +ESSID=\$(iwconfig "$WLAN" | grep ESSID | cut -d':' -f2 | sed -e 's/Nickname//g' | sed -e 's/\"//g'| sed -e 's/ //g') + +echo '\$ESSID + \$INTERFACE + \$ACTION' >> /var/log/vpnscript.log + +case \$ACTION in + up) + if [ \$ESSID != "$NOVPNESSID" ]; then + if [ \$INTERFACE != "$NOVPNINT" ]; then + echo 'starte script' >> /var/log/vpnscript.log + + "$HOME"/.vpn/scriptconn.sh + fi + fi + ;; + + down) + if [ '\$(pidof openvpn)' ]; then + echo 'killall openvpn' >> /var/log/vpnscript.log + killall openvpn + fi + ;; + + pre-up) + ;; + + post-down) + ;; + + *) + echo 'Usage: \$0 {up|down|pre-up|post-down}' + echo 'finish' >> /var/log/vpnscript.log + exit 1 +esac +" > /etc/NetworkManager/dispatcher.d/02vpn +chown root:root /etc/NetworkManager/dispatcher.d/02vpn +chmod +x /etc/NetworkManager/dispatcher.d/02vpn + +##------------------------------------------------------------------------------ +#~/.vpn/scriptconn.sh +##------------------------------------------------------------------------------ + +echo "#!/bin/bash + +echo 'Starte Openvpn' >> /var/log/vpnscript.log +openvpn --config "$HOME"/.vpn/schulvpn.ovpn & + +#sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbindung wird hergestellt!' 4 --display :0 +#echo 'Dialog angezeit - fin' >> /var/log/vpnscript.log + +exit 0 +" > $HOME/.vpn/scriptconn.sh +##------------------------------------------------------------------------------ +#~/.vpn/scriptstate.sh +##------------------------------------------------------------------------------ + +echo "#!/bin/bash + +if [ \$1 = 'connected' ] + then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbunden!' 4 --display :0 + elif [ \$1 = 'disconnected' ] + then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbindung getrennt!' 4 --display :0 + else + echo 'fail' +echo 'scriptconn started' >> /var/log/vpnlog.log +fi + +exit 0 +" > $HOME/.vpn/scriptstate.sh + +##------------------------------------------------------------------------------ +#CertCopy +##------------------------------------------------------------------------------ + +cert=$(ls *.key |cut -d "." -f1 |cut -d "/" -f3) +#cert=$(echo $cert | cut -d " " -f1) + +controll="0" + +if [ -z "$cert" ]; +then +echo "Es wurde kein Zertifikat gefunden" +controll="1" +else +echo "Es wurde ein Zertifikat gefunden: "$cert".key" + +cp $cert.key $HOME/.vpn/keys/$cert.key +cp $cert.crt $HOME/.vpn/keys/$cert.crt +cp ca.crt $HOME/.vpn/keys/ca.crt +fi + +if [ $controll == "0" ] +then + +test -e "$HOME/.vpn/keys/$cert.crt" +if [ 1 == $? ]; +then +echo $cert.crt nicht richtig kopiert +controll="1" +fi + + +test -e "$HOME/.vpn/keys/$cert.key" +if [ 1 == $? ]; +then +echo $cert.key nicht richtig kopiert +controll="1" +fi + + +test -e "$HOME/.vpn/keys/ca.crt" +if [ 1 == $? ]; +then +echo ca.crt nicht richtig kopiert +controll="1" +fi + + +if [ 0 == $controll ]; +then +echo "#Konfiguriert by Christoph Haas +#Copyleft CyberLabs 2008-09 +#Veraendern auf EIGENE GEFAHR... + +#Start + +########################################################## +# AENDERUNGEN START +########################################################## +#Zertifikate +ca "$HOME"/.vpn/keys/ca.crt +cert "$HOME"/.vpn/keys/"$cert".crt +key "$HOME"/.vpn/keys/"$cert".key + +########################################################## +# AENDERUNGEN ENDE +######################################################### +#Modus +client + +#IP Modus +float + +#Tunnel Modus/Device +dev tap + +#MTU laenge +tun-mtu 1500 + +#probleme mit windoof clients verhindern +;fragment 1500 #udp only +mssfix + +#LAN Adapter Name (optional^^) +;dev-node my-tap + +#Protokoll fuern Tunnel (in da schule tcp) +proto tcp-client + +#Pushs vom Server abarbeiten +pull + +#Server IP / PORT +remote 10.10.63.60 1194 + +#Server COMMON Name +#tls-remote VPNServer + +#Authentifizierung/Encryption +;auth SHA1 +cipher aes-256-cbc + +#Adress bind verhindern +nobind + +#Komprimierung +comp-lzo + +#LINUX/UNIX only +;persist-key +;persist-tun + +script-security 2 + +# eventuelle kde4 integration +;route-up '"$HOME"/.vpn/scriptstate.sh connected' +;down '"$HOME"/.vpn/scriptstate.sh disconnected' + +#Ende +" > $HOME/.vpn/schulvpn.ovpn +chmod +x $HOME/.vpn/* +echo SchulVPN ist jetzt verwendbar! +read +exit 0 +else +echo "Überprüfen Sie, ob das zip paket richtig entpackt wurde!" +echo "Führen Sie anschließend das Setup nocheinmal aus!" +read +exit 1 +fi +fi diff --git a/Modules/Services/download/certinstall.sh.bak b/Modules/Services/download/certinstall.sh.bak new file mode 100755 index 0000000..a7ea012 --- /dev/null +++ b/Modules/Services/download/certinstall.sh.bak @@ -0,0 +1,232 @@ +#!/bin/bash + +echo "Config-Installationsprogramm für SchulVPN" + +if [ $USER != "root" ]; +then +echo Root-Rechte benoetigt! +read +exit 0 +fi + + +echo "Geben Sie das Standard-Wireless Interface ein: " +read WLAN +echo "Geben Sie die ESSID an, bei dem OpenVPN nicht verbinden soll: " +read NOVPNESSID +echo "Geben Sie das Interface an, bei dem OpvenVPN nicht verbinden soll: " +read NOVPNINT + +mkdir $HOME/.vpn +mkdir $HOME/.vpn/keys + +##------------------------------------------------------------------------------ +#/etc/NetworkManager/dispatcher.d/02vpn +##------------------------------------------------------------------------------ +echo "#!/bin/bash + +INTERFACE=\$1 +ACTION=\$2 + +ESSID=\$(iwconfig "$WLAN" | grep ESSID | cut -d':' -f2 | sed -e 's/Nickname//g' | sed -e 's/\"//g'| sed -e 's/ //g') + +echo '\$ESSID + \$INTERFACE + \$ACTION' >> /var/log/vpnscript.log + +case \$ACTION in + up) + if [ \$ESSID != \""$NOVPNESSID"\" ]; then + if [ \$INTERFACE != \""$NOVPNINT"\" ]; then + echo 'starte script' >> /var/log/vpnscript.log + + "$HOME"/.vpn/scriptconn.sh + fi + fi + ;; + + down) + if [ '\$(pidof openvpn)' ]; then + echo 'killall openvpn' >> /var/log/vpnscript.log + killall openvpn + fi + ;; + + pre-up) + ;; + + post-down) + ;; + + *) + echo $'Usage: \$0 {up|down|pre-up|post-down}' + echo 'finish' >> /var/log/vpnscript.log + exit 1 +esac +" > /etc/NetworkManager/dispatcher.d/02vpn +chown root:root /etc/NetworkManager/dispatcher.d/02vpn +chmod +x /etc/NetworkManager/dispatcher.d/02vpn + +##------------------------------------------------------------------------------ +#~/.vpn/scriptconn.sh +##------------------------------------------------------------------------------ + +echo "#!/bin/bash + +echo 'Starte Openvpn' >> /var/log/vpnscript.log +openvpn --config "$HOME"/.vpn/schulvpn.ovpn & + +#sudo -u "$USER" kdialog --title 'OpenVPN' --passivepopup 'OpenVPN - Verbindung wird hergestellt!' 4 --display :0 + +#echo 'Dialog angezeit - fin' >> /var/log/vpnscript.log +exit 0 +" > $HOME/.vpn/scriptconn.sh +##------------------------------------------------------------------------------ +#~/.vpn/scriptstate.sh +##------------------------------------------------------------------------------ + +echo "#!/bin/bash + +BENUTZER=$(cat /etc/passwd |grep 1000 |cut -d ':' -f1) + +if [ $1 = 'connected' ] + then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'OpenVPN - Verbunden!' 4 --display :0 + elif [ $1 = 'disconnected' ] + then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'OpenVPN - Verbindung getrennt!' 4 --display :0 + else + echo 'fail' +echo 'scriptconn started' >> /var/log/vpnlog.log +fi + +exit 0 +" > $HOME/.vpn/scriptstate.sh + +##------------------------------------------------------------------------------ +#CertCopy +##------------------------------------------------------------------------------ + +cert=$(ls *.key |cut -d "." -f1 |cut -d "/" -f3) +#cert=$(echo $cert | cut -d " " -f1) + +controll="0" + +if [ -z "$cert" ]; +then +echo "Es wurde kein Zertifikat gefunden" +controll="1" +else +echo "Es wurde ein Zertifikat gefunden: "$cert".key" + +cp $cert.key $HOME/.vpn/keys/$cert.key +cp $cert.crt $HOME/.vpn/keys/$cert.crt +cp ca.crt $HOME/.vpn/keys/ca.crt +fi + +if [ $controll == "0" ] +then + +test -e "$HOME/.vpn/keys/$cert.crt" +if [ 1 == $? ]; +then +echo $cert.crt nicht richtig kopiert +controll="1" +fi + + +test -e "$HOME/.vpn/keys/$cert.key" +if [ 1 == $? ]; +then +echo $cert.key nicht richtig kopiert +controll="1" +fi + + +test -e "$HOME/.vpn/keys/ca.crt" +if [ 1 == $? ]; +then +echo ca.crt nicht richtig kopiert +controll="1" +fi + + +if [ 0 == $controll ]; +then +echo "#Konfiguriert by Christoph Haas +#Copyleft CyberLabs 2008-09 +#Veraendern auf EIGENE GEFAHR... + +#Start + +########################################################## +# AENDERUNGEN START +########################################################## +#Zertifikate +ca "$HOME"/.vpn/keys/ca.crt +cert "$HOME"/.vpn/keys/"$cert".crt +key "$HOME"/.vpn/keys/"$cert".key + +########################################################## +# AENDERUNGEN ENDE +######################################################### +#Modus +client + +#IP Modus +float + +#Tunnel Modus/Device +dev tap + +#MTU laenge +tun-mtu 1500 + +#probleme mit windoof clients verhindern +;fragment 1500 #udp only +mssfix + +#LAN Adapter Name (optional^^) +;dev-node my-tap + +#Protokoll fuern Tunnel (in da schule tcp) +proto tcp-client + +#Pushs vom Server abarbeiten +pull + +#Server IP / PORT +remote 10.10.63.60 1194 + +#Server COMMON Name +#tls-remote VPNServer + +#Authentifizierung/Encryption +;auth SHA1 +cipher aes-256-cbc + +#Adress bind verhindern +nobind + +#Komprimierung +comp-lzo + +#LINUX/UNIX only +;persist-key +;persist-tun + +script-security 2 + +# eventuelle kde4 integration +;route-up '"$HOME"/.vpn/scriptstate.sh connected' +;down '"$HOME"/.vpn/scriptstate.sh disconnected' + +#Ende +" > $HOME/.vpn/schulvpn.ovpn +chmod +x $HOME/.vpn/* +echo SchulVPN ist jetzt verwendbar! +read +exit 0 +else +echo "Überprüfen Sie, ob das zip paket richtig entpackt wurde!" +echo "Führen Sie anschließend das Setup nocheinmal aus!" +read +exit 1 +fi +fi diff --git a/Modules/Services/download/logger.zip b/Modules/Services/download/logger.zip new file mode 100755 index 0000000..ebb54e4 Binary files /dev/null and b/Modules/Services/download/logger.zip differ diff --git a/Modules/Services/download/openvpn-2.2-beta3-install.exe b/Modules/Services/download/openvpn-2.2-beta3-install.exe new file mode 100644 index 0000000..8d00737 Binary files /dev/null and b/Modules/Services/download/openvpn-2.2-beta3-install.exe differ diff --git a/Modules/Services/download/readme.txt b/Modules/Services/download/readme.txt new file mode 100755 index 0000000..d108d95 --- /dev/null +++ b/Modules/Services/download/readme.txt @@ -0,0 +1,19 @@ +LINUX: +openvpn installieren (am besten über apt-get oder synaptic) + +und einfach: + chmod +x certinstall.sh // Script ausfuehrbar machen + sudo ./certinstall.sh // Installation starten +ausfuehren. + +WINDOWS: +OpenVPN-Client herunterladen +EXE-Ausführen +Alle Keyfiles ("number".key, "number".crt, ca.crt) ins (evt zuvor angelegte) "keys" Directory im "SchulVPN\config\" Ordner kopieren. (Keys liegen dann zb. unter "C:/Programme/SchulVPN/config/keys/") +Anschließend die schulvpn.ovpn nach "SchulVPN/config" kopieren und darin die Pfade und Nummern anpassen. + +Bsp ordnerstruktur: +"C:/Programme/SchulVPN/config/schulvpn.ovpn" +"C:/Programme/SchulVPN/config/keys/01.crt" +"C:/Programme/SchulVPN/config/keys/01.key" +"C:/Programme/SchulVPN/config/keys/ca.crt" diff --git a/Modules/Services/download/schul-vpn-gui-1_1_0_src.tar.gz b/Modules/Services/download/schul-vpn-gui-1_1_0_src.tar.gz new file mode 100755 index 0000000..8b12714 Binary files /dev/null and b/Modules/Services/download/schul-vpn-gui-1_1_0_src.tar.gz differ diff --git a/Modules/Services/download/schulvpn-2.1-gui-1.1.1-install.exe b/Modules/Services/download/schulvpn-2.1-gui-1.1.1-install.exe new file mode 100755 index 0000000..16eb933 Binary files /dev/null and b/Modules/Services/download/schulvpn-2.1-gui-1.1.1-install.exe differ diff --git a/Modules/Services/download/schulvpn.ovpn b/Modules/Services/download/schulvpn.ovpn new file mode 100755 index 0000000..f109aa8 --- /dev/null +++ b/Modules/Services/download/schulvpn.ovpn @@ -0,0 +1,69 @@ +#Konfiguriert by Christoph Haas +#Copyleft CyberLabs 2008-10 +#Veraendern auf EIGENE GEFAHR... + +#Start + +########################################################## +# AENDERUNGEN START +########################################################## +#Zertifikate (evt pfad anpassen) +ca /pfad/zur/config/ca.crt # pfad anpassen! +cert /pfad/zur/config/muster.crt # pfad anpassen! & muster zu nummer aendern! +key /pfad/zur/config/muster.key # pfad anpassen! & muster zu nummer aendern! + +########################################################## +# AENDERUNGEN ENDE +######################################################### +#Modus +client + +#IP Modus +float + +#Tunnel Modus/Device +dev tap + +#MTU laenge +tun-mtu 1500 + +#probleme mit windoof clients verhindern +;fragment 1500 #udp only +mssfix + +#LAN Adapter Name (optional^^) +;dev-node my-tap + +#Protokoll fuern Tunnel (in da schule tcp) +proto tcp-client + +#Pushs vom Server abarbeiten +pull + +#Server IP / PORT +remote 10.10.63.60 1194 + +#Server COMMON Name +#tls-remote VPNServer + +#Authentifizierung/Encryption +;auth SHA1 +cipher aes-256-cbc + +#Adress bind verhindern +nobind + +#Komprimierung +comp-lzo + +#LINUX/UNIX only +;persist-key +;persist-tun + +script-security 2 + +# kde4 notification +# route-up "/home/christoph/.vpn/scriptstate.sh connected" +# down "/home/christoph/.vpn/scriptstate.sh disconnected" + +#Ende diff --git a/Modules/Services/download/schulvpn_1-1-0_install_src.tar.gz b/Modules/Services/download/schulvpn_1-1-0_install_src.tar.gz new file mode 100755 index 0000000..028d8bc Binary files /dev/null and b/Modules/Services/download/schulvpn_1-1-0_install_src.tar.gz differ diff --git a/Modules/Services/download/vpn_maverick32.zip b/Modules/Services/download/vpn_maverick32.zip new file mode 100644 index 0000000..675d570 Binary files /dev/null and b/Modules/Services/download/vpn_maverick32.zip differ diff --git a/Modules/Services/download/vpn_maverick64.zip b/Modules/Services/download/vpn_maverick64.zip new file mode 100644 index 0000000..77a9aab Binary files /dev/null and b/Modules/Services/download/vpn_maverick64.zip differ diff --git a/Modules/Services/img/Abbildung2.png b/Modules/Services/img/Abbildung2.png new file mode 100755 index 0000000..0a7fbde Binary files /dev/null and b/Modules/Services/img/Abbildung2.png differ diff --git a/Modules/Services/img/Abbildung2.xcf b/Modules/Services/img/Abbildung2.xcf new file mode 100755 index 0000000..32af6ba Binary files /dev/null and b/Modules/Services/img/Abbildung2.xcf differ diff --git a/Modules/Services/img/HTLinn_logo.gif b/Modules/Services/img/HTLinn_logo.gif new file mode 100755 index 0000000..9ae44b1 Binary files /dev/null and b/Modules/Services/img/HTLinn_logo.gif differ diff --git a/Modules/Services/index.php b/Modules/Services/index.php new file mode 100755 index 0000000..5888708 --- /dev/null +++ b/Modules/Services/index.php @@ -0,0 +1,78 @@ + +
+
+
+
+

+ Service & Information +

+ -- OpenVPN -- | -- Proxy -- | -- Download -- +
+
+

OpenVPN Service

+ + + + + +
+ OpenVPN + +

+ Durch den VPN-Tunnel wird es einem Sniffer nicht mehr gelingen die Daten die über das WLAN versendet werden mit zu lesen. +

+

Einen Client fuer SchulVPN gibt es hier:

+

# Windows XP und älter

+

# Windows Vista, 7, x64

+

# Ubuntu 10.10 x32

+

# Ubuntu 10.10 x64

+ + +
Source Code:
+

SchulVPN Gui Source

+

SchulVPN Gui Installer Source

+

Server Logger Source

+
+
+

Server Daten:

+

HP ProLiant DL320 Blade Server mit gemoddeter Kühlung

+

Prozessor: Intel Pentium 4 @ 2,26 GHz

+

RAM: 2GHz Dualchannel DDR400

+

HDD: 40GB 7200 ATA Platten | RAID 1

+

Netzwerk anbindung: 1000MBit/s switched

+

Operating System: Ubuntu Server 10.04 LTS

+

Software: OpenVPN 2.1, Apache2, MySQL, PHP

+
+
+






+
+

Download Service

+

+ Wir haben neben dem eigentlichen VPN Projekt auch einen kleinen /Modules/Services/downloaderver installiert. Über diesen kann man aktuelle Linux-Distributionen oder Software für den Unterrichtsgebrauch beziehen. + Als Unterbau dient uns hier eine Leicht modifizierte Version von QuiXplorer. + QuiXplorer Website +

+

***NEU***: Ab sofort ist in der Download-Sektion auch jede Menge Quellcode zum Download vorhanden!
+ Also zuschlagen bevor wir dies Aufgrund von Lehrern wieder vom Netz nehmen müssen xD +

+ +
+

+
+


+
+

Proxy Service

+

Wer SchulVPN benützt hat auch die möglichkeit unseren Proxy Server zu verwenden! Dieser übernimmt die Authentifikation am Schulproxy und er hebt das Downloadlimit im Prinzip auf! (Jeder der SchulVPN benutzt stellt sein Downloadvolumen bereit, der Proxy verwendet dann alle Accounts und betreibt ein "loadbalancing". -> User was nicht so viel downloaden "spenden" ihr Downloadvolumen für andere. +

+

+ Proxy Info:
+ IP Adresse: 10.8.0.1
+ Port: 8080
+ Lokale Adressen müssen aus dem Proxy ausgenommen werden! (zb: 10.10.63.0/24, moodle, luke usw.)
+

+
+
+
+
+
+ diff --git a/Modules/TermesOfUse/index.php b/Modules/TermesOfUse/index.php new file mode 100755 index 0000000..3590544 --- /dev/null +++ b/Modules/TermesOfUse/index.php @@ -0,0 +1,18 @@ + + +

PLEASE READ THE TERMS AND CONDITIONS OF USE CAREFULLY BEFORE USING THIS SITE.

+

This site is free to use by our visitors. And by using this site, you the user are agreeing to comply with and be bound by the following terms of use. After reviewing the following terms and conditions thoroughly, if you do not agree to the terms and conditions, please do not use this site.

+ +

1. Acceptance of Agreement. You agree to the terms and conditions outlined in this Terms and Conditions of use Agreement (Agreement) with respect to our site (the Site). This Agreement constitutes the entire and only agreement between us and you, and supersedes all prior or contemporaneous agreements, representations, warranties and understandings with respect to the Site, the content, free product samples or freebie offers or services provided by or listed on the Site, and the subject matter of this Agreement. This Agreement may be amended by us at any time and at any frequency without specific notice to you. The latest Agreement will be posted on the Site, and you should review this Agreement prior to using the Site.

+

2. Copyright. The content, organization, graphics, design, and other matters related to the Site are protected under applicable copyrights and other proprietary laws, including but not limited to intellectual property laws. The copying, reproduction, use, modification or publication by you of any such matters or any part of the Site is strictly prohibited, without our express prior written permission.

+

3. Deleting and Modification. We reserve the right in our sole discretion, without any obligation and without any notice requirement to you, to edit or delete any documents, information or other content appearing on the Site, including this Agreement.

+

4. Indemnification. You agree to indemnify, defend and hold us, our officers, our share holders, our partners, attorneys and employees harmless from any and all liability, loss, damages, claim and expense, including reasonable attorney's fees, related to your violation of this Agreement or use of the Site.

+

5. Disclaimer. THE CONTENT, SERVICES, FREE PRODUCT SAMPLES AND FREEBIE OFFERS FROM OR LISTED THROUGH THE SITE ARE PROVIDED "AS-IS," "AS AVAILABLE," AND ALL WARRANTIES, EXPRESS OR IMPLIED, ARE DISCLAIMED, INCLUDING BUT NOT LIMITED TO THE DISCLAIMER OF ANY IMPLIED WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, QUALITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THIS SITE AND ANY WEBSITE WITH WHICH IT IS LINKED. THE INFORMATION AND SERVICES MAY CONTAIN BUGS, ERRORS, PROBLEMS OR OTHER LIMITATIONS. WE HAVE NO LIABILITY WHATSOEVER FOR YOUR USE OF ANY INFORMATION OR SERVICE. IN PARTICULAR, BUT NOT AS A LIMITATION, WE ARE NOT LIABLE FOR ANY INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS, LOSS OF PROFITS, LOSS OF MONEY, LITIGATION, OR THE LIKE), WHETHER BASED ON BREACH OF CONTRACT, BREACH OF WARRANTY, NEGLIGENCE, PRODUCT LIABILITY OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE NEGATION OF DAMAGES SET FORTH ABOVE ARE FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN US AND YOU THE USER. THIS SITE AND THE INFORMATION WOULD NOT BE PROVIDED WITHOUT SUCH LIMITATIONS. NO ADVICE OR INFORMATION, WHETHER ORAL OR WRITTEN, OBTAINED BY YOU FROM US THROUGH THE SITE SHALL CREATE ANY WARRANTY, REPRESENTATION OR GUARANTEE NOT EXPRESSLY STATED IN THIS AGREEMENT. THE INFORMATION AND ALL OTHER MATERIALS ON THE SITE ARE PROVIDED FOR GENERAL INFORMATION PURPOSES ONLY AND DO NOT CONSTITUTE PROFESSIONAL ADVICE. IT IS YOUR RESPONSIBILITY TO EVALUATE THE ACCURACY AND COMPLETENESS OF ALL INFORMATION AVAILABLE ON THIS SITE OR ANY WEBSITE WITH WHICH IT IS LINKED.

+

6. Limits. All responsibility or liability for any damages caused by viruses contained within the electronic file containing the form or document is disclaimed. We will not be liable to you for any incidental, special or consequential damages of any kind that may result from use of or inability to use the site.

+

7. Third-Party Website. All rules, terms and conditions, other policies (including privacy policies) and operating procedures of third-party linked websites will apply to you while on such websites. We are not responsible for the content, accuracy or opinions express in such Websites, and such Websites are not investigated, monitored or checked for accuracy or completeness by us. Inclusion of any linked Website on our Site does not imply approval or endorsement of the linked Website by us. This Site and the third-party linked websites are independent entities and neither party has authority to make any representations or commitments on behalf of the other. If you decide to leave our Site and access these third-party linked sites, you do so at your own risk.

+

8. Third-Party Products and Services. We advertise third-party linked websites from which you may purchase or otherwise obtain certain sample goods, freebie offerings or free trial services. You understand that we do not operate or control the products, free offerings or services offered by third-party linked websites. Third-party linked websites are responsible for all aspects of order processing, fulfillment, billing and customer service. We are not a party to the transactions entered into between you and third-party linked websites. You agree that use of such third-party linked websites is at your sole risk and is without warranties of any kind by us, expressed, implied or otherwise. Under no circumstances are we liable for any damages arising from the transactions between you and third-party linked websites or for any information appearing on third-party linked websites or any other site linked to or from our site.

+

9. Submissions. All suggestions, ideas, notes, concepts and other information you may send to us (collectively, "Submissions") shall be deemed and shall remain our sole property and shall not be subject to any obligation of confidence on our part. Without limiting the foregoing, we shall be deemed to own all known and hereafter existing rights of every kind and nature regarding the Submissions and shall be entitled to unrestricted use of the Submissions for any purpose, without compensation to the provider of the Submissions.

+

10. General. You agree that all actions or proceedings arising directly or indirectly out of this agreement, or your use of the site or any sample products, freebie offers or services obtained by you through such use, shall be litigated in the circuit court of Los Angeles County, California or the United States District Court for the Central District of California. you are expressly submitting and consenting in advance to such jurisdiction in any action or proceeding in any of such courts, and are waiving any claim that Los Angeles, California or the central district of California is an inconvenient forum or an improper forum based on lack of venue. This site is controlled by Perfect Insight, Inc. in the State of California, USA. As such, the laws of California will govern the terms and conditions contained in this Agreement and elsewhere throughout the Site, without giving effect to any principles of conflicts of laws.

+
+

Last update: 21.06.2010

+ diff --git a/Modules/UserControl/avatar/0.png b/Modules/UserControl/avatar/0.png new file mode 100755 index 0000000..fc42fda Binary files /dev/null and b/Modules/UserControl/avatar/0.png differ diff --git a/Modules/UserControl/avatar/1.png b/Modules/UserControl/avatar/1.png new file mode 100755 index 0000000..4133a65 Binary files /dev/null and b/Modules/UserControl/avatar/1.png differ diff --git a/Modules/UserControl/avatar/10.png b/Modules/UserControl/avatar/10.png new file mode 100755 index 0000000..4f5deee Binary files /dev/null and b/Modules/UserControl/avatar/10.png differ diff --git a/Modules/UserControl/avatar/100.png b/Modules/UserControl/avatar/100.png new file mode 100755 index 0000000..eaf72cf Binary files /dev/null and b/Modules/UserControl/avatar/100.png differ diff --git a/Modules/UserControl/avatar/101.png b/Modules/UserControl/avatar/101.png new file mode 100755 index 0000000..9f0cb47 Binary files /dev/null and b/Modules/UserControl/avatar/101.png differ diff --git a/Modules/UserControl/avatar/102.png b/Modules/UserControl/avatar/102.png new file mode 100644 index 0000000..39403d8 Binary files /dev/null and b/Modules/UserControl/avatar/102.png differ diff --git a/Modules/UserControl/avatar/11.png b/Modules/UserControl/avatar/11.png new file mode 100755 index 0000000..2fdd6af Binary files /dev/null and b/Modules/UserControl/avatar/11.png differ diff --git a/Modules/UserControl/avatar/12.png b/Modules/UserControl/avatar/12.png new file mode 100755 index 0000000..77efa74 Binary files /dev/null and b/Modules/UserControl/avatar/12.png differ diff --git a/Modules/UserControl/avatar/13.png b/Modules/UserControl/avatar/13.png new file mode 100755 index 0000000..908df22 Binary files /dev/null and b/Modules/UserControl/avatar/13.png differ diff --git a/Modules/UserControl/avatar/14.png b/Modules/UserControl/avatar/14.png new file mode 100755 index 0000000..328c482 Binary files /dev/null and b/Modules/UserControl/avatar/14.png differ diff --git a/Modules/UserControl/avatar/15.png b/Modules/UserControl/avatar/15.png new file mode 100755 index 0000000..2efd329 Binary files /dev/null and b/Modules/UserControl/avatar/15.png differ diff --git a/Modules/UserControl/avatar/16.png b/Modules/UserControl/avatar/16.png new file mode 100755 index 0000000..145d414 Binary files /dev/null and b/Modules/UserControl/avatar/16.png differ diff --git a/Modules/UserControl/avatar/17.png b/Modules/UserControl/avatar/17.png new file mode 100755 index 0000000..52f1aee Binary files /dev/null and b/Modules/UserControl/avatar/17.png differ diff --git a/Modules/UserControl/avatar/18.png b/Modules/UserControl/avatar/18.png new file mode 100755 index 0000000..9e5fd65 Binary files /dev/null and b/Modules/UserControl/avatar/18.png differ diff --git a/Modules/UserControl/avatar/19.png b/Modules/UserControl/avatar/19.png new file mode 100755 index 0000000..50976a4 Binary files /dev/null and b/Modules/UserControl/avatar/19.png differ diff --git a/Modules/UserControl/avatar/2.png b/Modules/UserControl/avatar/2.png new file mode 100755 index 0000000..2188a14 Binary files /dev/null and b/Modules/UserControl/avatar/2.png differ diff --git a/Modules/UserControl/avatar/20.png b/Modules/UserControl/avatar/20.png new file mode 100755 index 0000000..6aab1f9 Binary files /dev/null and b/Modules/UserControl/avatar/20.png differ diff --git a/Modules/UserControl/avatar/21.png b/Modules/UserControl/avatar/21.png new file mode 100755 index 0000000..b55dc06 Binary files /dev/null and b/Modules/UserControl/avatar/21.png differ diff --git a/Modules/UserControl/avatar/22.png b/Modules/UserControl/avatar/22.png new file mode 100755 index 0000000..2cf1cab Binary files /dev/null and b/Modules/UserControl/avatar/22.png differ diff --git a/Modules/UserControl/avatar/23.png b/Modules/UserControl/avatar/23.png new file mode 100755 index 0000000..7998f26 Binary files /dev/null and b/Modules/UserControl/avatar/23.png differ diff --git a/Modules/UserControl/avatar/24.png b/Modules/UserControl/avatar/24.png new file mode 100755 index 0000000..15b9e43 Binary files /dev/null and b/Modules/UserControl/avatar/24.png differ diff --git a/Modules/UserControl/avatar/25.png b/Modules/UserControl/avatar/25.png new file mode 100755 index 0000000..a5e788a Binary files /dev/null and b/Modules/UserControl/avatar/25.png differ diff --git a/Modules/UserControl/avatar/26.png b/Modules/UserControl/avatar/26.png new file mode 100755 index 0000000..cc6c02a Binary files /dev/null and b/Modules/UserControl/avatar/26.png differ diff --git a/Modules/UserControl/avatar/27.png b/Modules/UserControl/avatar/27.png new file mode 100755 index 0000000..d62c199 Binary files /dev/null and b/Modules/UserControl/avatar/27.png differ diff --git a/Modules/UserControl/avatar/28.png b/Modules/UserControl/avatar/28.png new file mode 100755 index 0000000..06ea5d8 Binary files /dev/null and b/Modules/UserControl/avatar/28.png differ diff --git a/Modules/UserControl/avatar/29.png b/Modules/UserControl/avatar/29.png new file mode 100755 index 0000000..6ac3406 Binary files /dev/null and b/Modules/UserControl/avatar/29.png differ diff --git a/Modules/UserControl/avatar/3.png b/Modules/UserControl/avatar/3.png new file mode 100755 index 0000000..9632282 Binary files /dev/null and b/Modules/UserControl/avatar/3.png differ diff --git a/Modules/UserControl/avatar/30.png b/Modules/UserControl/avatar/30.png new file mode 100755 index 0000000..7776566 Binary files /dev/null and b/Modules/UserControl/avatar/30.png differ diff --git a/Modules/UserControl/avatar/31.png b/Modules/UserControl/avatar/31.png new file mode 100755 index 0000000..ec2beb9 Binary files /dev/null and b/Modules/UserControl/avatar/31.png differ diff --git a/Modules/UserControl/avatar/32.png b/Modules/UserControl/avatar/32.png new file mode 100755 index 0000000..5178f30 Binary files /dev/null and b/Modules/UserControl/avatar/32.png differ diff --git a/Modules/UserControl/avatar/33.png b/Modules/UserControl/avatar/33.png new file mode 100755 index 0000000..e867158 Binary files /dev/null and b/Modules/UserControl/avatar/33.png differ diff --git a/Modules/UserControl/avatar/34.png b/Modules/UserControl/avatar/34.png new file mode 100755 index 0000000..5297142 Binary files /dev/null and b/Modules/UserControl/avatar/34.png differ diff --git a/Modules/UserControl/avatar/35.png b/Modules/UserControl/avatar/35.png new file mode 100755 index 0000000..8eddaea Binary files /dev/null and b/Modules/UserControl/avatar/35.png differ diff --git a/Modules/UserControl/avatar/36.png b/Modules/UserControl/avatar/36.png new file mode 100755 index 0000000..f8efe75 Binary files /dev/null and b/Modules/UserControl/avatar/36.png differ diff --git a/Modules/UserControl/avatar/37.png b/Modules/UserControl/avatar/37.png new file mode 100755 index 0000000..ee9f822 Binary files /dev/null and b/Modules/UserControl/avatar/37.png differ diff --git a/Modules/UserControl/avatar/38.png b/Modules/UserControl/avatar/38.png new file mode 100755 index 0000000..e96ce26 Binary files /dev/null and b/Modules/UserControl/avatar/38.png differ diff --git a/Modules/UserControl/avatar/39.png b/Modules/UserControl/avatar/39.png new file mode 100755 index 0000000..9c51d27 Binary files /dev/null and b/Modules/UserControl/avatar/39.png differ diff --git a/Modules/UserControl/avatar/4.png b/Modules/UserControl/avatar/4.png new file mode 100755 index 0000000..22d443a Binary files /dev/null and b/Modules/UserControl/avatar/4.png differ diff --git a/Modules/UserControl/avatar/40.png b/Modules/UserControl/avatar/40.png new file mode 100755 index 0000000..c8eea7b Binary files /dev/null and b/Modules/UserControl/avatar/40.png differ diff --git a/Modules/UserControl/avatar/41.png b/Modules/UserControl/avatar/41.png new file mode 100755 index 0000000..4dfbe0e Binary files /dev/null and b/Modules/UserControl/avatar/41.png differ diff --git a/Modules/UserControl/avatar/42.png b/Modules/UserControl/avatar/42.png new file mode 100755 index 0000000..8079609 Binary files /dev/null and b/Modules/UserControl/avatar/42.png differ diff --git a/Modules/UserControl/avatar/43.png b/Modules/UserControl/avatar/43.png new file mode 100755 index 0000000..f169393 Binary files /dev/null and b/Modules/UserControl/avatar/43.png differ diff --git a/Modules/UserControl/avatar/44.png b/Modules/UserControl/avatar/44.png new file mode 100755 index 0000000..a634ab1 Binary files /dev/null and b/Modules/UserControl/avatar/44.png differ diff --git a/Modules/UserControl/avatar/45.png b/Modules/UserControl/avatar/45.png new file mode 100755 index 0000000..d224134 Binary files /dev/null and b/Modules/UserControl/avatar/45.png differ diff --git a/Modules/UserControl/avatar/46.png b/Modules/UserControl/avatar/46.png new file mode 100755 index 0000000..caf7342 Binary files /dev/null and b/Modules/UserControl/avatar/46.png differ diff --git a/Modules/UserControl/avatar/47.png b/Modules/UserControl/avatar/47.png new file mode 100755 index 0000000..36963a3 Binary files /dev/null and b/Modules/UserControl/avatar/47.png differ diff --git a/Modules/UserControl/avatar/48.png b/Modules/UserControl/avatar/48.png new file mode 100755 index 0000000..608d0da Binary files /dev/null and b/Modules/UserControl/avatar/48.png differ diff --git a/Modules/UserControl/avatar/49.png b/Modules/UserControl/avatar/49.png new file mode 100755 index 0000000..9732452 Binary files /dev/null and b/Modules/UserControl/avatar/49.png differ diff --git a/Modules/UserControl/avatar/5.png b/Modules/UserControl/avatar/5.png new file mode 100755 index 0000000..56135e0 Binary files /dev/null and b/Modules/UserControl/avatar/5.png differ diff --git a/Modules/UserControl/avatar/50.png b/Modules/UserControl/avatar/50.png new file mode 100755 index 0000000..1881fa0 Binary files /dev/null and b/Modules/UserControl/avatar/50.png differ diff --git a/Modules/UserControl/avatar/51.png b/Modules/UserControl/avatar/51.png new file mode 100755 index 0000000..4824dd7 Binary files /dev/null and b/Modules/UserControl/avatar/51.png differ diff --git a/Modules/UserControl/avatar/52.png b/Modules/UserControl/avatar/52.png new file mode 100755 index 0000000..0adaaba Binary files /dev/null and b/Modules/UserControl/avatar/52.png differ diff --git a/Modules/UserControl/avatar/53.png b/Modules/UserControl/avatar/53.png new file mode 100755 index 0000000..19e2b0c Binary files /dev/null and b/Modules/UserControl/avatar/53.png differ diff --git a/Modules/UserControl/avatar/54.png b/Modules/UserControl/avatar/54.png new file mode 100755 index 0000000..e86d1f6 Binary files /dev/null and b/Modules/UserControl/avatar/54.png differ diff --git a/Modules/UserControl/avatar/55.png b/Modules/UserControl/avatar/55.png new file mode 100755 index 0000000..eea0f5c Binary files /dev/null and b/Modules/UserControl/avatar/55.png differ diff --git a/Modules/UserControl/avatar/56.png b/Modules/UserControl/avatar/56.png new file mode 100755 index 0000000..0e81c8e Binary files /dev/null and b/Modules/UserControl/avatar/56.png differ diff --git a/Modules/UserControl/avatar/57.png b/Modules/UserControl/avatar/57.png new file mode 100755 index 0000000..f374503 Binary files /dev/null and b/Modules/UserControl/avatar/57.png differ diff --git a/Modules/UserControl/avatar/58.png b/Modules/UserControl/avatar/58.png new file mode 100755 index 0000000..1093a6a Binary files /dev/null and b/Modules/UserControl/avatar/58.png differ diff --git a/Modules/UserControl/avatar/59.png b/Modules/UserControl/avatar/59.png new file mode 100755 index 0000000..b3a09d2 Binary files /dev/null and b/Modules/UserControl/avatar/59.png differ diff --git a/Modules/UserControl/avatar/6.png b/Modules/UserControl/avatar/6.png new file mode 100755 index 0000000..1c25806 Binary files /dev/null and b/Modules/UserControl/avatar/6.png differ diff --git a/Modules/UserControl/avatar/60.png b/Modules/UserControl/avatar/60.png new file mode 100755 index 0000000..3d88424 Binary files /dev/null and b/Modules/UserControl/avatar/60.png differ diff --git a/Modules/UserControl/avatar/61.png b/Modules/UserControl/avatar/61.png new file mode 100755 index 0000000..647360a Binary files /dev/null and b/Modules/UserControl/avatar/61.png differ diff --git a/Modules/UserControl/avatar/62.png b/Modules/UserControl/avatar/62.png new file mode 100755 index 0000000..f25b492 Binary files /dev/null and b/Modules/UserControl/avatar/62.png differ diff --git a/Modules/UserControl/avatar/63.png b/Modules/UserControl/avatar/63.png new file mode 100755 index 0000000..92ba811 Binary files /dev/null and b/Modules/UserControl/avatar/63.png differ diff --git a/Modules/UserControl/avatar/64.png b/Modules/UserControl/avatar/64.png new file mode 100755 index 0000000..bf30ddc Binary files /dev/null and b/Modules/UserControl/avatar/64.png differ diff --git a/Modules/UserControl/avatar/65.png b/Modules/UserControl/avatar/65.png new file mode 100755 index 0000000..ca84a23 Binary files /dev/null and b/Modules/UserControl/avatar/65.png differ diff --git a/Modules/UserControl/avatar/66.png b/Modules/UserControl/avatar/66.png new file mode 100755 index 0000000..62bf62e Binary files /dev/null and b/Modules/UserControl/avatar/66.png differ diff --git a/Modules/UserControl/avatar/67.png b/Modules/UserControl/avatar/67.png new file mode 100755 index 0000000..348ff78 Binary files /dev/null and b/Modules/UserControl/avatar/67.png differ diff --git a/Modules/UserControl/avatar/68.png b/Modules/UserControl/avatar/68.png new file mode 100755 index 0000000..c5b503a Binary files /dev/null and b/Modules/UserControl/avatar/68.png differ diff --git a/Modules/UserControl/avatar/69.png b/Modules/UserControl/avatar/69.png new file mode 100755 index 0000000..2667eb1 Binary files /dev/null and b/Modules/UserControl/avatar/69.png differ diff --git a/Modules/UserControl/avatar/7.png b/Modules/UserControl/avatar/7.png new file mode 100755 index 0000000..a89a9b4 Binary files /dev/null and b/Modules/UserControl/avatar/7.png differ diff --git a/Modules/UserControl/avatar/70.png b/Modules/UserControl/avatar/70.png new file mode 100755 index 0000000..ad666fa Binary files /dev/null and b/Modules/UserControl/avatar/70.png differ diff --git a/Modules/UserControl/avatar/71.png b/Modules/UserControl/avatar/71.png new file mode 100755 index 0000000..d56824d Binary files /dev/null and b/Modules/UserControl/avatar/71.png differ diff --git a/Modules/UserControl/avatar/72.png b/Modules/UserControl/avatar/72.png new file mode 100755 index 0000000..6d682bf Binary files /dev/null and b/Modules/UserControl/avatar/72.png differ diff --git a/Modules/UserControl/avatar/73.png b/Modules/UserControl/avatar/73.png new file mode 100755 index 0000000..bb9cec3 Binary files /dev/null and b/Modules/UserControl/avatar/73.png differ diff --git a/Modules/UserControl/avatar/74.png b/Modules/UserControl/avatar/74.png new file mode 100755 index 0000000..39ddbdc Binary files /dev/null and b/Modules/UserControl/avatar/74.png differ diff --git a/Modules/UserControl/avatar/75.png b/Modules/UserControl/avatar/75.png new file mode 100755 index 0000000..71ba052 Binary files /dev/null and b/Modules/UserControl/avatar/75.png differ diff --git a/Modules/UserControl/avatar/76.png b/Modules/UserControl/avatar/76.png new file mode 100755 index 0000000..7dda130 Binary files /dev/null and b/Modules/UserControl/avatar/76.png differ diff --git a/Modules/UserControl/avatar/77.png b/Modules/UserControl/avatar/77.png new file mode 100755 index 0000000..3425184 Binary files /dev/null and b/Modules/UserControl/avatar/77.png differ diff --git a/Modules/UserControl/avatar/78.png b/Modules/UserControl/avatar/78.png new file mode 100755 index 0000000..a94ad77 Binary files /dev/null and b/Modules/UserControl/avatar/78.png differ diff --git a/Modules/UserControl/avatar/79.png b/Modules/UserControl/avatar/79.png new file mode 100755 index 0000000..c5fd4cf Binary files /dev/null and b/Modules/UserControl/avatar/79.png differ diff --git a/Modules/UserControl/avatar/8.png b/Modules/UserControl/avatar/8.png new file mode 100755 index 0000000..dea998b Binary files /dev/null and b/Modules/UserControl/avatar/8.png differ diff --git a/Modules/UserControl/avatar/80.png b/Modules/UserControl/avatar/80.png new file mode 100755 index 0000000..ab94fcb Binary files /dev/null and b/Modules/UserControl/avatar/80.png differ diff --git a/Modules/UserControl/avatar/81.png b/Modules/UserControl/avatar/81.png new file mode 100755 index 0000000..7ab3804 Binary files /dev/null and b/Modules/UserControl/avatar/81.png differ diff --git a/Modules/UserControl/avatar/82.png b/Modules/UserControl/avatar/82.png new file mode 100755 index 0000000..d7eaadf Binary files /dev/null and b/Modules/UserControl/avatar/82.png differ diff --git a/Modules/UserControl/avatar/83.png b/Modules/UserControl/avatar/83.png new file mode 100755 index 0000000..69f3013 Binary files /dev/null and b/Modules/UserControl/avatar/83.png differ diff --git a/Modules/UserControl/avatar/84.png b/Modules/UserControl/avatar/84.png new file mode 100755 index 0000000..fa067a7 Binary files /dev/null and b/Modules/UserControl/avatar/84.png differ diff --git a/Modules/UserControl/avatar/85.png b/Modules/UserControl/avatar/85.png new file mode 100755 index 0000000..2f49dd7 Binary files /dev/null and b/Modules/UserControl/avatar/85.png differ diff --git a/Modules/UserControl/avatar/86.png b/Modules/UserControl/avatar/86.png new file mode 100755 index 0000000..b743ccf Binary files /dev/null and b/Modules/UserControl/avatar/86.png differ diff --git a/Modules/UserControl/avatar/87.png b/Modules/UserControl/avatar/87.png new file mode 100755 index 0000000..b518f21 Binary files /dev/null and b/Modules/UserControl/avatar/87.png differ diff --git a/Modules/UserControl/avatar/88.png b/Modules/UserControl/avatar/88.png new file mode 100755 index 0000000..87a7017 Binary files /dev/null and b/Modules/UserControl/avatar/88.png differ diff --git a/Modules/UserControl/avatar/89.png b/Modules/UserControl/avatar/89.png new file mode 100755 index 0000000..a27da68 Binary files /dev/null and b/Modules/UserControl/avatar/89.png differ diff --git a/Modules/UserControl/avatar/9.png b/Modules/UserControl/avatar/9.png new file mode 100755 index 0000000..964bb42 Binary files /dev/null and b/Modules/UserControl/avatar/9.png differ diff --git a/Modules/UserControl/avatar/90.png b/Modules/UserControl/avatar/90.png new file mode 100755 index 0000000..b17a24d Binary files /dev/null and b/Modules/UserControl/avatar/90.png differ diff --git a/Modules/UserControl/avatar/91.png b/Modules/UserControl/avatar/91.png new file mode 100755 index 0000000..2a1c619 Binary files /dev/null and b/Modules/UserControl/avatar/91.png differ diff --git a/Modules/UserControl/avatar/92.png b/Modules/UserControl/avatar/92.png new file mode 100755 index 0000000..10b9041 Binary files /dev/null and b/Modules/UserControl/avatar/92.png differ diff --git a/Modules/UserControl/avatar/93.png b/Modules/UserControl/avatar/93.png new file mode 100755 index 0000000..2f58451 Binary files /dev/null and b/Modules/UserControl/avatar/93.png differ diff --git a/Modules/UserControl/avatar/94.png b/Modules/UserControl/avatar/94.png new file mode 100755 index 0000000..45af18e Binary files /dev/null and b/Modules/UserControl/avatar/94.png differ diff --git a/Modules/UserControl/avatar/95.png b/Modules/UserControl/avatar/95.png new file mode 100755 index 0000000..fc61c93 Binary files /dev/null and b/Modules/UserControl/avatar/95.png differ diff --git a/Modules/UserControl/avatar/96.png b/Modules/UserControl/avatar/96.png new file mode 100755 index 0000000..69ff15f Binary files /dev/null and b/Modules/UserControl/avatar/96.png differ diff --git a/Modules/UserControl/avatar/97.png b/Modules/UserControl/avatar/97.png new file mode 100755 index 0000000..c8c9520 Binary files /dev/null and b/Modules/UserControl/avatar/97.png differ diff --git a/Modules/UserControl/avatar/98.png b/Modules/UserControl/avatar/98.png new file mode 100755 index 0000000..23ab98b Binary files /dev/null and b/Modules/UserControl/avatar/98.png differ diff --git a/Modules/UserControl/avatar/99.png b/Modules/UserControl/avatar/99.png new file mode 100755 index 0000000..c18dbc8 Binary files /dev/null and b/Modules/UserControl/avatar/99.png differ diff --git a/Modules/UserControl/change.php b/Modules/UserControl/change.php new file mode 100755 index 0000000..f704298 --- /dev/null +++ b/Modules/UserControl/change.php @@ -0,0 +1,171 @@ +Welcome ".$_SESSION["user_vorname"]." ".$_SESSION["user_nachname"]."!
+ +

Current User Information:


+ + + + + +
+ BenutzerId: ".$_SESSION["user_id"]."
+ VPNId: ".$_SESSION["user_vpnid"]."
+ Admin: ".$_SESSION["user_admin"]."
+ Nickname: ".$_SESSION["user_nickname"]."
+ Nachname: ".$_SESSION["user_nachname"]."
+ Vorname: ".$_SESSION["user_vorname"]."
+ Email: ".$_SESSION["user_email"]."
+ Novell Login: ".$_SESSION["user_novlogin"]."
+ Avatar: ".$_SESSION["user_avatar"]." +
+
+ +

New User Information:

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
Vorname: +
Nachname: +
Avatar: + +
Passwort:
Novell Login (Email):
Novell Password:
+ +
+ +"; diff --git a/Modules/UserControl/config.inc b/Modules/UserControl/config.inc new file mode 100755 index 0000000..d6417cc --- /dev/null +++ b/Modules/UserControl/config.inc @@ -0,0 +1,66 @@ + diff --git a/Modules/UserControl/deadproxy.php b/Modules/UserControl/deadproxy.php new file mode 100755 index 0000000..9dc2722 --- /dev/null +++ b/Modules/UserControl/deadproxy.php @@ -0,0 +1,49 @@ + 0) +{ +// $myFile = db_getconfval("sqddir")."/vpnid_next"; + $myFile = db_getconfval("sqddir")."/vpnid_auto"; + $fh = fopen($myFile, 'w') or die("can't open file"); + fwrite($fh, "NEXT"); + fclose($fh); + mysql_close(); + header ("Location: ".$moduleurl."&uebergabe=0&uebergabe2=1"); +} +else +{ + mysql_close(); + echo "Fehler beim Reparieren des Proxys.
\n"; +} +?> diff --git a/Modules/UserControl/edituser.php b/Modules/UserControl/edituser.php new file mode 100755 index 0000000..1033adf --- /dev/null +++ b/Modules/UserControl/edituser.php @@ -0,0 +1,126 @@ + 0) +{ + // Benutzerdaten in ein Array auslesen. + $data = mysql_fetch_array ($result); + + // Sessionvariablen erstellen und registrieren + $_SESSION["user_id"] = $data["Id"]; + $_SESSION["user_vpnid"] = $data["VPNId"]; + $_SESSION["user_admin"] = $data["IsAdmin"]; + $_SESSION["user_nickname"] = $data["Nickname"]; + $_SESSION["user_nachname"] = $data["Nachname"]; + $_SESSION["user_vorname"] = $data["Vorname"]; + $_SESSION["user_email"] = $data["Email"]; + $_SESSION["user_avatar"] = $data["Avatar"]; + $_SESSION["user_novlogin"] = $data["NovLogin"]; + $_SESSION["user_novpass"] = $data["NovPass"]; + mysql_close(); + header ("Location: ".$moduleurl."&uebergabe=0"); +} +else +{ + mysql_close(); + echo "Fehler beim Anlegen der Benutzer.
\n"; +} +?> diff --git a/Modules/UserControl/getcert.php b/Modules/UserControl/getcert.php new file mode 100755 index 0000000..ab0e330 --- /dev/null +++ b/Modules/UserControl/getcert.php @@ -0,0 +1,83 @@ +addFile (implode ('', file ($File2zip)), $File2name); + } + } + + // Add the extra files + foreach ($config['Download']['ZIP']['Others'] as $File2zip) + { + if (is_file (db_getconfval("publicdown")."/". $File2zip)) + $zipData->addFile (implode ('', file (db_getconfval("publicdown")."/". $File2zip)), $File2zip); + } + + // Flush the ZIP file to the client + html_download_data ($zipData -> file (), openssl_hex_serial ($GETidDEC) .'.zip'); + //echo " file () target=_blank>Direktlink zur Datei +} +else +{ +// echo "ID: " .$GETidDEC[0] . "Ext: " .$sExt; + if (($sCertificateFile = openssl_get_filename ($GETidDEC, $sExt)) == '') html_error ("Can't find requested file..FU"); + + // Cheat the extension + if ($sExt == '.pem') $sExt = '.crt'; + + // Download + html_download ($sCertificateFile, openssl_hex_serial ($GETidDEC) . $sExt); + //html_dump ('$GLOBALS', $GLOBALS); +} + +?> diff --git a/Modules/UserControl/include/functions.inc b/Modules/UserControl/include/functions.inc new file mode 100755 index 0000000..705ab08 --- /dev/null +++ b/Modules/UserControl/include/functions.inc @@ -0,0 +1,296 @@ +You need the valid User Name to access the '. $config['AUTH_REALM'] .' !'; + exit; +} + +// ---------------------------------------------- +function session_defaults () +{ + $_SESSION['logged'] = FALSE; + $_SESSION['username'] = ''; + $_SESSION['password'] = ''; + $_SESSION['cookie'] = 0; + $_SESSION['remember'] = FALSE; +} + +// ---------------------------------------------- +function load_plugins () +{ + global $config; + + if (isset ($config['Plugins'])) + { + foreach ($config['Plugins'] as $PluginName => $PluginData) + { + // Check if the config.inc for a plugin exists + if (file_exists ('plugins/'. $PluginData['Folder'] .'/config.inc')) + { + include ('plugins/'. $PluginData['Folder'] .'/config.inc'); + + // Check if claimed inc files do exist + if (isset ($config['Plugins'][$PluginName]['Action']['Include']) && + !file_exists ('plugins/'. $PluginData['Folder'] .'/'. + $config['Plugins'][$PluginName]['Action']['Include'])) + $config['Plugins'][$PluginName]['Action']['Include'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Menu']) && + !file_exists ('plugins/'. $PluginData['Folder'] .'/'. + $config['Plugins'][$PluginName]['Left']['Menu'])) + $config['Plugins'][$PluginName]['Left']['Menu'] = NULL; + + if (isset ($config['Plugins'][$PluginName]['Left']['Status']) && + !file_exists ('plugins/'. $PluginData['Folder'] .'/'. + $config['Plugins'][$PluginName]['Left']['Status'])) + $config['Plugins'][$PluginName]['Left']['Status'] = NULL; + } + } + } +} + +// ---------------------------------------------- +function seconds_string ($seconds, $periods = null) +{ + $Wanted = ''; + + // Define time periods + if (!is_array ($periods)) + { + $periods = array ( + 'years' => 31556926, + 'months' => 2629743, + 'weeks' => 604800, + 'days' => 86400, + 'hours' => 3600, + 'minutes' => 60, + 'seconds' => 1 + ); + } + + // Wanted + if (empty ($seconds)) + { $Wanted = ''; } + else + { + // Loop + $seconds = (int) $seconds; + foreach ($periods as $period => $value) + { + $count = floor ($seconds / $value); + + if ($count == 0) + continue; + elseif ($count == 1) + $Wanted .= ($count . ' ' . substr ($period, 0, strlen ($period) - 1) . ' '); + else + $Wanted .= ($count . ' ' . $period . ' '); + + $seconds = $seconds % $value; + } + } + + return rtrim ($Wanted); +} + +// ---------------------------------------------- +function chomp (&$string) +{ + if (is_array ($string)) + { + foreach ($string as $i => $val) + { $endchar = chomp ($string[$i]); } + } + else + { + $endchar = substr ("$string", strlen("$string") - 1, 1); + if ($endchar == "\n") + { $string = substr ("$string", 0, -1); } + } + return $endchar; +} + +// ---------------------------------------------- +function str_strip_spaces ($aline) +{ + while (strpos ($aline, "\t") != FALSE) $aline = str_replace ("\t", ' ', $aline); + while (strpos ($aline, ' ') != FALSE) $aline = str_replace (' ', ' ', $aline); + + return $aline; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_file_fullname ($apath, $afile) +{ + if (substr ($afile, 0, 1) != '/') + $afile = ($apath . $afile); + + return $afile; +} + +// ---------------------------------------------- +// Returns $afile only if it is the full name, or prefixed by $apath +function str_openssldata_to_string ($adata) +{ + $Return = ''; + $amonth = array ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); + + if (substr ($adata, -1, 1) == 'Z') + { + $Return = sprintf ("%s %d %s%02d, %02d:%02d:%02d", + $amonth [substr ($adata, 2, 2) - 1], + substr ($adata, 4, 2), + (substr ($adata, 0, 2) > 50 ? '19' : '20'), + substr ($adata, 0, 2), + substr ($adata, 6, 2), + substr ($adata, 8, 2), + substr ($adata, 10, 2)); + } + + return $Return; +} + +// ---------------------------------------------- +function str_get_sometag ($aline, $sometag) +{ + if (eregi ($sometag, $aline, $anarray)) + return $anarray[1]; + else + return ''; +} + +// ---------------------------------------------- +// Writes content into file +// Optionally sames old file into backup file. +// The Backup File has to reside on the same partition! +function writefile ($afile, $adata, $abackup = NULL) +{ + // Move the old file into Backup one + if ($abackup != NULL) + { + if (file_exists ($afile)) + { + if (file_exists ($abackup)) + if (!unlink ($abackup)) + exit; + if (!rename ($afile, $abackup)) + exit; + } + } + + $fp = fopen ($afile, "w", 0); + if (!$fp) + exit; + + fputs ($fp, $adata); + fclose ($fp); +} + + +// ---------------------------------------------- +// Guess the full file name +function if_file_exists (&$sFileName, $bFix = FALSE) +{ + global $config; + + if (strpos ($sFileName, '/') == FALSE) + { + $sLongFileName = $config['openvpn']['folder'] . $sFileName; + if (file_exists ($sLongFileName) && $bFix) + $sFileName = $sLongFileName; + } + + return file_exists ($sFileName); +} + +// ---------------------------------------------- +function zlib_check_functions () +{ + $Result = ''; + $ZLibs = array + ( + 'gzcompress' + ); + + foreach ($ZLibs as $Function) + { + $Result .= $Function . ': ' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function html_dump ($aname, $athing) +{ + echo '
'. $aname .': ';
+ print_r ($athing);
+ echo "

\n"; +} + +// ---------------------------------------------- +function html_error ($amessage, $ifexit = true) +{ + global $config; + + require('Smarty.class.php'); + $smarty = new Smarty; + $smarty->assign ('Company_Name', $config['Company_Name']); + $smarty->assign ('title', 'OpenVPN Web GUI : error'); + $smarty->assign ('action', 'ERROR'); + $smarty->assign ('message', $amessage); + $smarty->display ('action-error.tpl'); + + if ($ifexit) + exit; +} + +// ---------------------------------------------- +function html_postredir ($url) +{ + header ('HTTP/1.1 303 REDIRECT'); + header ('Location: '. $url); +#header ('Status: 303'); // if 1st header generates 500, then commend it out and use this one as 2nd +} + +// ---------------------------------------------- +// ---------------------------------------------- +function html_download ($sFile, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + readfile ($sFile); +} + +// ---------------------------------------------- +function html_download_data ($sData, $sName) +{ + header ('Content-type: application/octet-stream'); + header ('Content-Disposition: attachment; filename="'. $sName . '"'); + echo $sData; +} +?> diff --git a/Modules/UserControl/include/openssl-functions.inc b/Modules/UserControl/include/openssl-functions.inc new file mode 100755 index 0000000..0731ec8 --- /dev/null +++ b/Modules/UserControl/include/openssl-functions.inc @@ -0,0 +1,380 @@ +:
' . (function_exists ($Function) ? + 'OK' : + 'DOES NOT EXIST') . '
'; + } + + return $Result; +} + +// ---------------------------------------------- +function openssl_load_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $linetokens = explode ("\t", $line); + + // Ensure that all the fields are set + if (count ($linetokens) == 6) + { + // Decode the openssl's database. See apps/apps.h + $openssl['Database'][] = array ('Status' => $linetokens[0], + 'ExpDate' => $linetokens[1], + 'RevDate' => $linetokens[2], + 'Serial' => $linetokens[3], + 'File' => $linetokens[4], + 'Name' => $linetokens[5], + 'Country' => openssl_get_country ($linetokens[5]), + 'State' => openssl_get_state ($linetokens[5]), + 'City' => openssl_get_city ($linetokens[5]), + 'Company' => openssl_get_company ($linetokens[5]), + 'Department' => openssl_get_department ($linetokens[5]), + 'CN' => openssl_get_CN ($linetokens[5]), + 'Email' => openssl_get_email ($linetokens[5]) + ); + } + } +} + +// ---------------------------------------------- +function openssl_write_database ($afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile); + + $atext = ''; + for ($i = 0; $i < count ($openssl['Database']); $i++) + { + $atext .= ($atext == '' ? '' : "\n"); + $atext .= $openssl['Database'][$i]['Status'] ."\t". + $openssl['Database'][$i]['ExpDate'] ."\t". + $openssl['Database'][$i]['RevDate'] ."\t". + $openssl['Database'][$i]['Serial'] ."\t". + $openssl['Database'][$i]['File'] ."\t". + $openssl['Database'][$i]['Name']; + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +function openssl_write_database_attr ($atext = '', $afile = '') +{ + global $config; + global $openssl; + + $afile = ($afile == '' ? $config['openssl']['database'] : $afile) .'.attr'; + $atext = ($atext == '' ? "unique_subject = yes\n" : $atext); + + if (file_exists ($afile)) + { + ob_start (); + readfile ($afile); + $atext = ob_get_contents (); + ob_end_clean (); + } + + writefile ($afile, $atext, $afile .'.old'); +} + +// ---------------------------------------------- +// Returns the PEM file with spaces reduced and replaced to   +function openssl_load_cert ($anid) +{ + global $config; + + do + { + $lines = file ($config['openssl']['pubfolder'] . $anid . '.pem'); + + if (!is_array ($lines)) + { + $Return = ''; + break; + } + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $Return[] = str_replace (' ', ' ', htmlspecialchars (str_replace (' ', ' ', $line))); + } + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_load_serial ($afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + $lines = file ($afile); + + if (!is_array ($lines)) + exit; + + $Return = sscanf ($lines[0], "%X"); + + return $Return[0]; +} + +// ---------------------------------------------- +function openssl_write_serial ($iNumber, $afile = '') +{ + global $config; + + $afile = ($afile == '' ? $config['openssl']['serial'] : $afile); + + writefile ($afile, openssl_hex_serial ($iNumber) . "\n", $afile .'.old'); +} + +// ---------------------------------------------- +// Supports up to 999,999 serials +function openssl_hex_serial ($iNumber) +{ + if ($iNumber < 100) + $sString = sprintf ("%02X", $iNumber); + elseif ($iNumber < 10000) + $sString = sprintf ("%04X", $iNumber); + else + $sString = sprintf ("%06X", $iNumber); + + return $sString; +} + +// ---------------------------------------------- +// Builds User Private Key, CSR and Public Certificate +function openssl_build_key (&$anoutput, $adn, $validdays = NULL) +{ + global $config; + global $openssl; + + $anoutput = ''; + $Return = FALSE; + + // Allow to override default value + $validdays = ($validdays == NULL ? $config['openssl']['default']['expiration'] : $validdays); + + do + { + if (!isset ($adn) || + !isset ($adn['countryName']) || + !isset ($adn['stateOrProvinceName']) || + !isset ($adn['localityName']) || + !isset ($adn['organizationName']) || + !isset ($adn['organizationalUnitName']) || + !isset ($adn['commonName']) || + !isset ($adn['emailAddress']) + ) + { $anoutput .= "- ERROR on ". __LINE__ ." line: incomplete DN information\n"; break; } + $anoutput .= "+ OK got the valid input\n"; + + // Get the new User Private Key + $UserPrivKey = openssl_pkey_new (array($config['openssl']['config'],0)); + if ($UserPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_new):\n ". openssl_error_strings () ." (that might usually mean that the openssl.cnf file is unavailable)"; break; } + $anoutput .= "+ OK got the User Private Key\n"; + + // Generate the User Certificate Request + $UserReq = openssl_csr_new ($adn, + $UserPrivKey, + $config['openssl']['config']); + if ($UserReq == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 4) ." line (openssl_csr_new):\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK generated the User Certificate Request\n"; + + // Read the openssl serial + $CAserial = openssl_load_serial ($config['openssl']['serial']); + $anoutput .= "+ OK read current openssl serial (". openssl_hex_serial ($CAserial) .")\n"; + + $UserPubCertFile = $config['openssl']['pubfolder'] . openssl_hex_serial ($CAserial) .'.pem'; + $UserCertReqFile = $config['openssl']['reqfolder'] . openssl_hex_serial ($CAserial) .'.csr'; + $UserPrivKeyFile = $config['openssl']['prvfolder'] . openssl_hex_serial ($CAserial) .'.key'; + + // Read the openssl database + openssl_load_database ($config['openssl']['database']); + $anoutput .= "+ OK read the openssl database (". count ($openssl['Database']) ." items)\n"; + + // Get CA's Private Key + $CAPrivKey = openssl_pkey_get_private ($config['openssl']['CA']['priv']); + + if ($CAPrivKey == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 2) ." line (openssl_pkey_get_private)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK read the CA Private Key\n"; + + // Get a CA-signed cert that lasts for 1 year + $UserPubCert = openssl_csr_sign ($UserReq, + $config['openssl']['CA']['pub'], + $CAPrivKey, + $validdays, + $config['openssl']['config'], + $CAserial); + if ($UserPubCert == FALSE) + { $anoutput .= "- ERROR on ". (__LINE__ - 7) ." line (openssl_csr_sign)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK signed the User Certificate Request with CA Private Key\n"; + + // Add the new row into openssl database + $openssl['Database'][] = array ('Status' => 'V', + 'ExpDate' => date ('ymdHis', + time() + + date ('Z') + + ($validdays * 24 * 60 * 60)) .'Z', + 'RevDate' => '', + 'Serial' => openssl_hex_serial ($CAserial), + 'File' => openssl_hex_serial ($CAserial) .'.crt', + 'Name' => openssl_make_name ($adn) + ); + + // Create files + + $OldUMask = umask (0007); + + // Write User Private Key + if (!openssl_pkey_export_to_file ($UserPrivKey, $UserPrivKeyFile, NULL, $config['openssl']['config'])) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_pkey_export_to_file)\n ". openssl_error_strings () ." (That might mean that the key folder is not write enabled for www user)"; break; } + $anoutput .= "+ OK wrote User Private Key into file $UserPrivKeyFile\n"; + + // Write User Public Certificate + if (!openssl_x509_export_to_file ($UserPubCert, $UserPubCertFile, FALSE)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_x509_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Public Certificate into file $UserPubCertFile\n"; + + // Write User Certificate Request + if (!openssl_csr_export_to_file ($UserReq, $UserCertReqFile)) + { $anoutput .= "- ERROR on ". (__LINE__ - 1) ." line (openssl_csr_export_to_file)\n ". openssl_error_strings (); break; } + $anoutput .= "+ OK wrote User Certificate Request into file $UserCertReqFile\n"; + + // Write new openssl database + openssl_write_database ($config['openssl']['database']); + openssl_write_database_attr ('', $config['openssl']['database']); + $anoutput .= "+ OK wrote new openssl database\n"; + + // Write new openssl serial + openssl_write_serial ($CAserial + 1, $config['openssl']['serial']); + $anoutput .= "+ OK wrote new openssl serial\n"; + + umask ($OldUMask); + + $Return = openssl_hex_serial ($CAserial); + } while (FALSE); + + return $Return; +} + +// ---------------------------------------------- +function openssl_error_strings () +{ + $sString = ''; + while ($msg = openssl_error_string ()) + $sString .= $msg ."\n"; + + return $sString; +} + +// ---------------------------------------------- +function openssl_make_name ($adn) +{ + $sString = ''; + + if (strlen ($adn['countryName']) > 0) $sString .= '/C=' . $adn['countryName']; + if (strlen ($adn['stateOrProvinceName']) > 0) $sString .= '/ST=' . $adn['stateOrProvinceName']; + if (strlen ($adn['localityName']) > 0) $sString .= '/L=' . $adn['localityName']; + if (strlen ($adn['organizationName']) > 0) $sString .= '/O=' . $adn['organizationName']; + if (strlen ($adn['organizationalUnitName']) > 0) $sString .= '/OU=' . $adn['organizationalUnitName']; + if (strlen ($adn['commonName']) > 0) $sString .= '/CN=' . $adn['commonName']; + if (strlen ($adn['emailAddress']) > 0) $sString .= '/emailAddress='. $adn['emailAddress']; + + return $sString; +} + +// ---------------------------------------------- +function openssl_get_country ($aline) +{ return str_get_sometag ($aline . '/', '\/C=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_state ($aline) +{ return str_get_sometag ($aline . '/', '\/ST=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_city ($aline) +{ return str_get_sometag ($aline . '/', '\/L=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_company ($aline) +{ return str_get_sometag ($aline . '/', '\/O=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_department ($aline) +{ return str_get_sometag ($aline . '/', '\/OU=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_CN ($aline) +{ return str_get_sometag ($aline . '/', '\/CN=([^/]*)\/'); } + +// ---------------------------------------------- +function openssl_get_email ($aline) +{ return str_get_sometag ($aline . '/', '\/emailAddress=([^/]*)\/'); } + +// ---------------------------------------------- +// Guess the full file name +function openssl_get_filename ($iSerial, $sExt) +{ + global $config; + + $sReturn = $config['openssl']['folder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['pubfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['reqfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = $config['openssl']['prvfolder'] . openssl_hex_serial ($iSerial) . $sExt; + if (!file_exists ($sReturn)) + { + $sReturn = ''; + } + } + } + } + + return $sReturn; +} + + +?> diff --git a/Modules/UserControl/include/openvpn-functions.inc b/Modules/UserControl/include/openvpn-functions.inc new file mode 100755 index 0000000..f853ea9 --- /dev/null +++ b/Modules/UserControl/include/openvpn-functions.inc @@ -0,0 +1,146 @@ + $line) + { + chomp ($line); + $linetokens = explode (' ', str_strip_spaces ($line)); + + switch (strtolower ($linetokens[0])) + { + case 'local': $openvpn['Server']['Local'] = $linetokens[1]; break; + case 'proto': $openvpn['Server']['Proto'] = $linetokens[1]; break; + case 'port': $openvpn['Server']['Port'] = $linetokens[1]; break; + case 'dev': $openvpn['Server']['Dev'] = $linetokens[1]; break; + case 'mode': $openvpn['Server']['Mode'] = $linetokens[1]; break; + case 'max-clients': $openvpn['Server']['MaxClients'] = $linetokens[1]; break; + case 'status': + $openvpn['Server']['Status']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['Status']['File'] = $linetokens[1]; + break; + case 'status-version': $openvpn['Server']['Status']['Version'] = $linetokens[1]; break; + case 'ca': + $openssl['Server']['CA']['Exists'] = if_file_exists ($linetokens[1], true); + $openssl['Server']['CA']['File'] = $linetokens[1]; + break; + case 'dh': + $openvpn['Server']['DH']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['DH']['File'] = $linetokens[1]; + break; + case 'cert': + $openvpn['Server']['Certificate']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['Certificate']['File'] = $linetokens[1]; + break; + case 'key': + $openvpn['Server']['Private_Key']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['Private_Key']['File'] = $linetokens[1]; + break; + case 'tls-auth': + $openvpn['Server']['TLS_Auth']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['TLS_Auth']['File'] = $linetokens[1]; + $openvpn['Server']['TLS_Auth']['Key'] = $linetokens[2]; + break; + case 'crl-verify': + $openvpn['Server']['CRL_Verify']['Exists'] = if_file_exists ($linetokens[1], true); + $openvpn['Server']['CRL_Verify']['File'] = $linetokens[1]; + break; + } + } +} + +// ---------------------------------------------- +function openvpn_load_status () +{ + global $config; + global $openvpn; + + $stop_reading = FALSE; + + if (!isset ($openvpn['Server']['Status']['File'])) + exit; + + $lines = file (str_file_fullname ($config['openvpn']['folder'], $openvpn['Server']['Status']['File'])); + + if (!is_array ($lines)) + exit; + + foreach ($lines as $line_num => $line) + { + chomp ($line); + $linetokens = explode (',', $line); + + if ($linetokens[0] == 'TITLE') + $openvpn['Server']['Title'] = $linetokens[1]; + else if ($linetokens[0] == 'TIME') + { + $openvpn['Server']['DateTime'] = $linetokens[1]; + $openvpn['Server']['Time'] = $linetokens[2]; + } + else if ($linetokens[0] == 'HEADER' && $linetokens[1] == 'CLIENT_LIST') + { + // We will need to know what field is what ? + } + else if ($linetokens[0] == 'HEADER' && $linetokens[1] == 'ROUTING_TABLE') + { + // We will need to know what field is what ? + } + else if ($linetokens[0] == 'CLIENT_LIST') + { + $openvpn['Client'][] = array ('CN' => str_replace ('_', ' ', $linetokens[1]), + 'REALADDR' => $linetokens[2], + 'VIRTADDR' => $linetokens[3], + 'BYTESRCV' => $linetokens[4], + 'BYTESSND' => $linetokens[5], + 'SINCE' => $linetokens[6], + 'SINCEUT' => $linetokens[7], + 'Seconds_Ago' => seconds_string (time () - $linetokens[7]) + ); + } + else if ($linetokens[0] == 'ROUTING_TABLE') + { + $openvpn['Routing'][] = array ('VIRTADDR' => $linetokens[1], + 'CN' => str_replace ('_', ' ', $linetokens[2]), + 'REALADDR' => $linetokens[3], + 'LAST' => $linetokens[4], + 'Seconds_Ago' => seconds_string (time () - $linetokens[4]) + ); + } + } +} + +// ---------------------------------------------- +function openvpn_find_connected () +{ + global $openvpn; + global $openssl; + + // find who is connected + if (isset ($openvpn['Client'])) + $cnconnected = count ($openvpn['Client']); + else + $cnconnected = 0; + $cntotal = count ($openssl['Database']); + + if ($cnconnected > 0) + for ($i = 0; $i < $cnconnected; $i++) + for ($j = 0; $j < $cntotal; $j++) + if ($openvpn['Client'][$i]['CN'] == $openssl['Database'][$j]['CN']) + { + $openssl['Database'][$j]['Connected'] = true; + break; + } +} +?> diff --git a/Modules/UserControl/include/zip.lib.php b/Modules/UserControl/include/zip.lib.php new file mode 100755 index 0000000..8df2216 --- /dev/null +++ b/Modules/UserControl/include/zip.lib.php @@ -0,0 +1,113 @@ + +* http://www.zend.com/codex.php?id=535&single=1 +* +* Denis125 +* http://www.zend.com/codex.php?id=470&single=1 +* +* Peter Listiak +* +* PK ZIP +* http://www.pkware.com/appnote.txt +*/ + +class zipfile +{ + var $datasec = array (); + var $ctrl_dir = array (); + var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; + var $old_offset = 0; + + function unix2DosTime ($unixtime = 0) + { + $timearray = ($unixtime == 0) ? + getdate () : + getdate ($unixtime); + + if ($timearray['year'] < 1980) + { + $timearray['year'] = 1980; + $timearray['mon'] = 1; + $timearray['mday'] = 1; + $timearray['hours'] = 0; + $timearray['minutes'] = 0; + $timearray['seconds'] = 0; + } + + return (($timearray['year'] - 1980) << 25) | + ($timearray['mon'] << 21) | + ($timearray['mday'] << 16) | + ($timearray['hours'] << 11) | + ($timearray['minutes'] << 5) | + ($timearray['seconds'] >> 1); + } + + function addFile ($data, $name, $time = 0) + { + $name = str_replace ('\\', '/', $name); + + $dtime = dechex ($this->unix2DosTime ($time)); + $hexdtime = '\x' . $dtime[6] . $dtime[7] . + '\x' . $dtime[4] . $dtime[5] . + '\x' . $dtime[2] . $dtime[3] . + '\x' . $dtime[0] . $dtime[1]; + eval ('$hexdtime = "' . $hexdtime . '";'); + + $unc_len = strlen ($data); + $crc = crc32 ($data); + $zdata = gzcompress ($data); + $zdata = substr (substr ($zdata, 0, strlen ($zdata) - 4), 2); + $c_len = strlen ($zdata); + + $fr = "\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00" . + $hexdtime . + pack ('V', $crc) . + pack ('V', $c_len) . + pack ('V', $unc_len) . + pack ('v', strlen ($name)) . + pack ('v', 0) . + $name . + $zdata . + pack ('V', $crc) . + pack ('V', $c_len) . + pack ('V', $unc_len); + + $this -> datasec[] = $fr; + + $cdrec = "\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00" . + $hexdtime . + pack ('V', $crc) . + pack ('V', $c_len) . + pack ('V', $unc_len) . + pack ('v', strlen ($name)) . + pack ('v', 0 ) . + pack ('v', 0 ) . + pack ('v', 0 ) . + pack ('v', 0 ) . + pack ('V', 32 ) . + pack ('V', $this -> old_offset ) . + $name; + + $this -> old_offset += strlen ($fr); + $this -> ctrl_dir[] = $cdrec; + } + + function file () + { + $data = implode ('', $this -> datasec); + $ctrldir = implode ('', $this -> ctrl_dir); + + return $data . + $ctrldir . + $this -> eof_ctrl_dir . + pack ('v', sizeof ($this -> ctrl_dir)) . + pack ('v', sizeof ($this -> ctrl_dir)) . + pack ('V', strlen ($ctrldir)) . + pack ('V', strlen ($data)) . + "\x00\x00"; + } +} +?> diff --git a/Modules/UserControl/index.php b/Modules/UserControl/index.php new file mode 100755 index 0000000..dec4def --- /dev/null +++ b/Modules/UserControl/index.php @@ -0,0 +1,298 @@ +"; + exit; + } + +$sort = mysql_real_escape_string($_POST["dirsort"]); //$_GET["sort"]; +$by = mysql_real_escape_string($_POST["sortby"]); //$_GET["by"]; +$table = mysql_real_escape_string($_POST["table"]); //$_GET["table"]; + +$moduleurl = $_SERVER["REQUEST_URI"]; +$urlcut = strpos($moduleurl, "&"); +if($urlcut > 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } + if($_SERVER["REQUEST_URI"] == "/" || is_null($_SERVER["REQUEST_URI"])) + { + $moduleurl = "/index.php?site=1"; + } +} + + +switch($uebergabe2) +{ + case 1: + echo "Proxy repaired successfully!"; + break; + default: + break; +} + +switch($uebergabe) +{ +case 0: + +echo " + + + + + +

Welcome ".$_SESSION["user_vorname"]." ".$_SESSION["user_nachname"]."!


+ +

Your Userstatistics:

+ +
+ + + + + + +
"; + + // MYsql befehl basteln + $sql = "SELECT * FROM $table ORDER BY $by $sort;"; + $result = mysql_query($sql); + echo "
"; + if($table=='connections') + { + echo "\n"; + } + else if($table=='month') + { + echo "\n"; + } + else if($table=='year') + { + echo "\n"; + } + else + { + } +// ------------------------------------------------ Mysql lesen + if ($result) + { + while ($ar=mysql_fetch_array($result,MYSQL_ASSOC)) + { + + if($ar["sent"]>1024) + { + $sentbytes = round($ar["sent"]/1024,2) . " KiB"; + if($ar["sent"]>1048576) + { + $sentbytes = round($ar["sent"]/1024/1024,2) . " MiB"; + if($ar["sent"]>1073741824) + { + $sentbytes = round($ar["sent"]/1024/1024/1024,2) . " GiB"; + } + } + } + else + { + $sentbytes = $ar["sent"]. " Byte"; + } + + if($ar["received"]>1024) + { + $receivedbytes = round($ar["received"]/1024,2) . " KiB"; + if($ar["received"]>1048576) + { + $receivedbytes = round($ar["received"]/1024/1024,2) . " MiB"; + if($ar["received"]>1073741824) + { + $receivedbytes = round($ar["received"]/1024/1024/1024,2) . " GiB"; + } + } + } + else + { + $receivedbytes = $ar["received"]. " Byte"; + } + + if($table=='connections') + { + if($ar["stop"] != 0) + { + $stop = date("r",$ar["stop"]); + } + else + { + $stop = "running session"; + } + if($ar["client"] == $_SESSION["user_nickname"]) + { + echo "\n"; + } + } + else if($table=='month') + { + $hour = floor($ar["time"]/3600); + $min = floor($ar["time"]/60 - $hour *60); + $sec = $ar["time"]-$hour*3600-$min*60; + $timestring = $hour .":". $min .":". $sec; + + if($ar["client"] == $_SESSION["user_nickname"]) + { + echo "\n"; + } + } + else if($table=='year') + { + $hour = floor($ar["time"]/3600); + $min = floor($ar["time"]/60 - $hour *60); + $sec = $ar["time"]-$hour*3600-$min*60; + $timestring = $hour .":". $min .":". $sec; + + if($ar["client"] == $_SESSION["user_nickname"]) + { + echo "\n"; + } + } + else + { + } + } + } + else + { + echo "
"; + } + echo "
Start TimeStop TimeClient IPDownload + Upload
MonthYearConnection TimeDownload + Upload
YearConnection TimeDownload + Upload
",date("r",$ar["start"]),"",$stop,"",$ar["ip"], + "", $sentbytes,"", $receivedbytes, + "
",$ar["month"],"",$ar["year"],"",$timestring, + "", $sentbytes,"", $receivedbytes, + "
",$ar["year"],"",$timestring, + "", $sentbytes,"", $receivedbytes, + "
"; + mysql_close(); + +echo "
+ +

VPN Config:

+
+ + + + + + + + + + + + + + +
+

Die SchulVPN Client Software kann unter \"Services\" heruntergeladen werden!

+ +
"; + + if(db_getconfval("withusersquid")=="1") + { + echo "

Proxy tot?:

"; + + if (isset ($_REQUEST["proxy"])) + { + echo "Proxy repaired successfully!"; + } + + function dec_to_hex($dec) + { + $sign = ""; // suppress errors + if( $dec < 0){ $sign = "-"; $dec = abs($dec); } + + $hex = Array( 0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, + 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 'A', + 11 => 'B', 12 => 'C', 13 => 'D', 14 => 'E', + 15 => 'F' ); + + do + { + $h = $hex[($dec%16)] . $h; + $dec /= 16; + } + while( $dec >= 1 ); + + return $sign . $h; + } + + $zeile = exec(escapeshellcmd("cat ".db_getconfval("sqddir")."/vpnid")); + $zeile = dec_to_hex($zeile); + + echo " +

Funktioniert der SchulVPN Proxy nicht mehr? Dann klicke auf \"Repair Proxy\".

+

Info: Jeder klick dieses Buttons wird in einer Datenbank mitgeloggt!

+
+ + + + + + + + + + + + + + + +
+ +
"; + } + + echo " +

User Information:


+ Benutzer Id: ".$_SESSION["user_id"]."
+ VPN Id: ".$_SESSION["user_vpnid"]."
+ Nickname: ".$_SESSION["user_nickname"]."
+ Nachname: ".$_SESSION["user_nachname"]."
+ Vorname: ".$_SESSION["user_vorname"]."
+ Email Adress: ".$_SESSION["user_email"]."
+ Novell Login (Email): ".$_SESSION["user_novlogin"]."
+ Current IP: ".getenv("REMOTE_ADDR")."
+
+ +
"; + break; + +case 2: + include($_SERVER["DOCUMENT_ROOT"]."/Modules/UserControl/change.php"); + break; + +default: + break; +} diff --git a/README b/README new file mode 100644 index 0000000..05d5ae2 --- /dev/null +++ b/README @@ -0,0 +1,4 @@ +You can enable/disable Modules (such as Squid, Munin, Downloads,...) in this file: + Config/_siteconfig_.php + + diff --git a/Site/admin_header.php b/Site/admin_header.php new file mode 100755 index 0000000..a3ff732 --- /dev/null +++ b/Site/admin_header.php @@ -0,0 +1,137 @@ + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } + if($_SERVER["REQUEST_URI"] == "/Admin/" || is_null($_SERVER["REQUEST_URI"])) + { + $moduleurl = "/Admin/index.php?site=1"; + } +} + +include($_SERVER["DOCUMENT_ROOT"]."/Config/_siteconfig_.php"); + +?> + + + + + + Designed by Christoph Haas + Base template (without user's data) checked by http://validator.w3.org : "This page is valid XHTML 1.0 Transitional" + --> + + + <?php echo $SITE_TITLE; ?> - <?php echo $SITE_SUBTITLE; ?> + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + Username: + + Passwort: + "; + +echo " + + + "; +} +?> + +
+
+
+
+ +
+ + diff --git a/Site/checkadmin.php b/Site/checkadmin.php new file mode 100755 index 0000000..adecfda --- /dev/null +++ b/Site/checkadmin.php @@ -0,0 +1,59 @@ +

Not authenticated!

+
+
+ You need to be Admin to view this area! +
+
+ + + + + + + + + + + +
Username: +
Passwort:
+ +
+
+ + +
+
+
+
+

VPNManagement Version "; echo db_getconfval("version"); echo "

+
+
+ +"; +exit; +} +?> diff --git a/Site/checkuser.php b/Site/checkuser.php new file mode 100755 index 0000000..8a9c236 --- /dev/null +++ b/Site/checkuser.php @@ -0,0 +1,57 @@ +Not authenticated! +
+
+ + + + + + + + + + + + +
Username:
Passwort:
+ +
+
+ + +
+ + +
+

VPNManagement Version "; echo db_getconfval("version"); echo "

+ +
+ +"; +exit; +} +?> diff --git a/Site/footer.php b/Site/footer.php new file mode 100755 index 0000000..81143aa --- /dev/null +++ b/Site/footer.php @@ -0,0 +1,30 @@ + +
+ + +
+ + +
+ diff --git a/Site/header.php b/Site/header.php new file mode 100755 index 0000000..a70edf1 --- /dev/null +++ b/Site/header.php @@ -0,0 +1,145 @@ + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } + if($_SERVER["REQUEST_URI"] == "/" || is_null($_SERVER["REQUEST_URI"])) + { + $moduleurl = "/index.php?site=1"; + } +} + +include($_SERVER["DOCUMENT_ROOT"]."/Config/_siteconfig_.php"); + +?> + + + + + + + + + <?php echo $SITE_TITLE; ?> - <?php echo $SITE_SUBTITLE; ?> + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + Username: + + Passwort: + "; + +echo " + + + "; +} +?> + +
+ +
+
+
+ +
+ + diff --git a/Site/index.php b/Site/index.php new file mode 100644 index 0000000..32f81a3 --- /dev/null +++ b/Site/index.php @@ -0,0 +1,3 @@ + diff --git a/Site/login.php b/Site/login.php new file mode 100755 index 0000000..e05a3aa --- /dev/null +++ b/Site/login.php @@ -0,0 +1,50 @@ + 0) +{ + // Benutzerdaten in ein Array auslesen. + $data = mysql_fetch_array ($result); + mysql_close(); + // Sessionvariablen erstellen und registrieren + $_SESSION["user_id"] = $data["Id"]; + $_SESSION["user_vpnid"] = $data["VPNId"]; + $_SESSION["user_admin"] = $data["IsAdmin"]; + $_SESSION["user_nickname"] = $data["Nickname"]; + $_SESSION["user_nachname"] = $data["Nachname"]; + $_SESSION["user_vorname"] = $data["Vorname"]; + $_SESSION["user_email"] = $data["Email"]; + $_SESSION["user_avatar"] = $data["Avatar"]; + $_SESSION["user_novlogin"] = $data["NovLogin"]; + $_SESSION["user_novpass"] = $data["NovPass"]; + header ("Location: ".$_REQUEST["path"]."&uebergabe=0&uebergabe2=0&uebergabe3=0&uebergabe4=0"); +} +else +{ + mysql_close(); + header ("Location: /index.php?site=lf"); +} +?> diff --git a/Site/login_formular.php b/Site/login_formular.php new file mode 100755 index 0000000..cc35f25 --- /dev/null +++ b/Site/login_formular.php @@ -0,0 +1,48 @@ + + 0) +{ + $moduleurl = substr($moduleurl,0,$urlcut); +} +else +{ + if(strpos($moduleurl, "?") == 0) + { + $moduleurl = $_SERVER["REQUEST_URI"]."?site=1"; + } + if($_SERVER["REQUEST_URI"] == "/" || is_null($_SERVER["REQUEST_URI"])) + { + $moduleurl = "/index.php?site=1"; + } + if($moduleurl == "/index.php?site=lf") + { + $moduleurl = "/index.php?site=1"; + } +} + +?> +

Login was incorrect!

+ +
+
+Retry: + + + + + + + + + + + + +
Username:
Passwort:
+ +
+ + + diff --git a/Site/login_formular_admin.php b/Site/login_formular_admin.php new file mode 100755 index 0000000..6ad0d8f --- /dev/null +++ b/Site/login_formular_admin.php @@ -0,0 +1,32 @@ + + +

Administrator Login

+
+ + + +
+ + + + + + + + + + + +
Username: +
Passwort:
+
+ +
+ +
+ + diff --git a/Site/logout.php b/Site/logout.php new file mode 100755 index 0000000..c1f5dd9 --- /dev/null +++ b/Site/logout.php @@ -0,0 +1,11 @@ + diff --git a/Site/mysql.php b/Site/mysql.php new file mode 100755 index 0000000..6f12569 --- /dev/null +++ b/Site/mysql.php @@ -0,0 +1,40 @@ +"; + mysql_close(); + return $x; + } + else + { +// echo $x.",".$y; + return array($x,$y); + } +} + +function db_getconfval ($attribute) +{ + list($db,$conn) = db_connect(); + if (empty($db)) + { + echo "ERROR 0x01, Failed to connect to database!
"; + return NULL; + } + else + { + $sql = "SELECT value FROM config WHERE attr='". mysql_real_escape_string($attribute)."'"; + $result = mysql_query($sql,$conn); + $data = mysql_fetch_array ($result); + // echo $result; + mysql_close(); + return $data[0]; + } +} + +?> diff --git a/Site/script.js b/Site/script.js new file mode 100755 index 0000000..05016e6 --- /dev/null +++ b/Site/script.js @@ -0,0 +1,278 @@ +/* begin Page */ + +/* file checksum is A9B5EF42. */ + +var artEventHelper = { + 'bind': function(obj, evt, fn) { + if (obj.addEventListener) + obj.addEventListener(evt, fn, false); + else if (obj.attachEvent) + obj.attachEvent('on' + evt, fn); + else + obj['on' + evt] = fn; + } +}; + +var userAgent = navigator.userAgent.toLowerCase(); +var browser = { + version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], + safari: /webkit/.test(userAgent) && !/chrome/.test(userAgent), + chrome: /chrome/.test(userAgent), + opera: /opera/.test(userAgent), + msie: /msie/.test(userAgent) && !/opera/.test(userAgent), + mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) +}; + +var artLoadEvent = (function() { + + + var list = []; + + var done = false; + var ready = function() { + if (done) return; + done = true; + for (var i = 0; i < list.length; i++) + list[i](); + }; + + if (document.addEventListener && !browser.opera) + document.addEventListener('DOMContentLoaded', ready, false); + + if (browser.msie && window == top) { + (function() { + try { + document.documentElement.doScroll('left'); + } catch (e) { + setTimeout(arguments.callee, 10); + return; + } + ready(); + })(); + } + + if (browser.opera) { + document.addEventListener('DOMContentLoaded', function() { + for (var i = 0; i < document.styleSheets.length; i++) { + if (document.styleSheets[i].disabled) { + setTimeout(arguments.callee, 10); + return; + } + } + ready(); + }, false); + } + + if (browser.safari) { + var numStyles; + (function() { + if (document.readyState != 'loaded' && document.readyState != 'complete') { + setTimeout(arguments.callee, 10); + return; + } + if ('undefined' == typeof numStyles) { + numStyles = document.getElementsByTagName('style').length; + var links = document.getElementsByTagName('link'); + for (var i = 0; i < links.length; i++) { + numStyles += (links[i].getAttribute('rel') == 'stylesheet') ? 1 : 0; + } + if (document.styleSheets.length != numStyles) { + setTimeout(arguments.callee, 0); + return; + } + } + ready(); + })(); + } + + artEventHelper.bind(window, 'load', ready); + + return ({ + add: function(f) { + list.push(f); + } + }) +})(); + +(function() { + // fix ie blinking + var m = document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand; + try { if (!!m) { m('BackgroundImageCache', false, true); } } + catch (oh) { }; +})(); + +function xGetElementsByClassName(clsName, parentEle, tagName) { + var elements = null; + var found = []; + var s = String.fromCharCode(92); + var re = new RegExp('(?:^|' + s + 's+)' + clsName + '(?:$|' + s + 's+)'); + if (!parentEle) parentEle = document; + if (!tagName) tagName = '*'; + elements = parentEle.getElementsByTagName(tagName); + if (elements) { + for (var i = 0; i < elements.length; ++i) { + if (elements[i].className.search(re) != -1) { + found[found.length] = elements[i]; + } + } + } + return found; +} + +var styleUrlCached = null; +function GetStyleUrl() { + if (null == styleUrlCached) { + var ns; + styleUrlCached = ''; + ns = document.getElementsByTagName('link'); + for (var i = 0; i < ns.length; i++) { + var l = ns[i]; + if (l.href && /style\.css(\?.*)?$/.test(l.href)) { + return styleUrlCached = l.href.replace(/style\.css(\?.*)?$/, ''); + } + } + + ns = document.getElementsByTagName('style'); + for (var i = 0; i < ns.length; i++) { + var matches = new RegExp('import\\s+"([^"]+\\/)style\\.css"').exec(ns[i].innerHTML); + if (null != matches && matches.length > 0) + return styleUrlCached = matches[1]; + } + } + return styleUrlCached; +} + +function fixPNG(element) { + if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) { + var src; + if (element.tagName == 'IMG') { + if (/\.png$/.test(element.src)) { + src = element.src; + element.src = GetStyleUrl() + 'images/spacer.gif'; + } + } + else { + src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i); + if (src) { + src = src[1]; + element.runtimeStyle.backgroundImage = 'none'; + } + } + if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')"; + } +} + +function artHasClass(el, cls) { + return (el && el.className && (' ' + el.className + ' ').indexOf(' ' + cls + ' ') != -1); +}/* end Page */ + +/* begin Menu */ +function Insert_Separators() { + var menus = xGetElementsByClassName("art-menu", document); + for (var i = 0; i < menus.length; i++) { + var menu = menus[i]; + var childs = menu.childNodes; + var listItems = []; + for (var j = 0; j < childs.length; j++) { + var el = childs[j]; + if (String(el.tagName).toLowerCase() == "li") listItems.push(el); + } + for (var j = 0; j < listItems.length - 1; j++) { + var span = document.createElement('span'); + span.className = 'art-menu-separator'; + var li = document.createElement('li'); + li.appendChild(span); + listItems[j].parentNode.insertBefore(li, listItems[j].nextSibling); + } + } +} +artLoadEvent.add(Insert_Separators); + +function Menu_IE6Setup() { + var isIE6 = navigator.userAgent.toLowerCase().indexOf("msie") != -1 + && navigator.userAgent.toLowerCase().indexOf("msie 7") == -1; + if (!isIE6) return; + var aTmp2, i, j, oLI, aUL, aA; + var aTmp = xGetElementsByClassName("art-menu", document, "ul"); + for (i = 0; i < aTmp.length; i++) { + aTmp2 = aTmp[i].getElementsByTagName("li"); + for (j = 0; j < aTmp2.length; j++) { + oLI = aTmp2[j]; + aUL = oLI.getElementsByTagName("ul"); + if (aUL && aUL.length) { + oLI.UL = aUL[0]; + aA = oLI.getElementsByTagName("a"); + if (aA && aA.length) + oLI.A = aA[0]; + oLI.onmouseenter = function() { + this.className += " art-menuhover"; + this.UL.className += " art-menuhoverUL"; + if (this.A) this.A.className += " art-menuhoverA"; + }; + oLI.onmouseleave = function() { + this.className = this.className.replace(/art-menuhover/, ""); + this.UL.className = this.UL.className.replace(/art-menuhoverUL/, ""); + if (this.A) this.A.className = this.A.className.replace(/art-menuhoverA/, ""); + }; + } + } + } +} +artLoadEvent.add(Menu_IE6Setup); +/* end Menu */ + +/* begin Button */ +function artButtonsSetupJsHover(className) { + var tags = ["input", "a", "button"]; + for (var j = 0; j < tags.length; j++){ + var buttons = xGetElementsByClassName(className, document, tags[j]); + for (var i = 0; i < buttons.length; i++) { + var button = buttons[i]; + if (!button.tagName || !button.parentNode) return; + if (!artHasClass(button.parentNode, 'art-button-wrapper')) { + if (!artHasClass(button, 'art-button')) button.className += ' art-button'; + var wrapper = document.createElement('span'); + wrapper.className = "art-button-wrapper"; + if (artHasClass(button, 'active')) wrapper.className += ' active'; + var spanL = document.createElement('span'); + spanL.className = "l"; + spanL.innerHTML = " "; + wrapper.appendChild(spanL); + var spanR = document.createElement('span'); + spanR.className = "r"; + spanR.innerHTML = " "; + wrapper.appendChild(spanR); + button.parentNode.insertBefore(wrapper, button); + wrapper.appendChild(button); + } + artEventHelper.bind(button, 'mouseover', function(e) { + e = e || window.event; + wrapper = (e.target || e.srcElement).parentNode; + wrapper.className += " hover"; + }); + artEventHelper.bind(button, 'mouseout', function(e) { + e = e || window.event; + button = e.target || e.srcElement; + wrapper = button.parentNode; + wrapper.className = wrapper.className.replace(/hover/, ""); + if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, ""); + }); + artEventHelper.bind(button, 'mousedown', function(e) { + e = e || window.event; + button = e.target || e.srcElement; + wrapper = button.parentNode; + if (!artHasClass(button, 'active')) wrapper.className += " active"; + }); + artEventHelper.bind(button, 'mouseup', function(e) { + e = e || window.event; + button = e.target || e.srcElement; + wrapper = button.parentNode; + if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, ""); + }); + } + } +} +artLoadEvent.add(function() { artButtonsSetupJsHover("art-button"); }); +/* end Button */ + + diff --git a/Site/style.css b/Site/style.css new file mode 100755 index 0000000..a041f93 --- /dev/null +++ b/Site/style.css @@ -0,0 +1,1458 @@ +body +{ + margin: 0 auto; + padding: 0; + background-color: #B3B5AA; + overflow-y: scroll; +} + +TABLE +{ + border: 1px solid black; + background-color: #DAE3F0; +} +TH +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; + background-color: #C5D3E7; + text-align: center; +} +TD +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size:11px; + text-align: right; +} + +#art-main +{ + position: relative; + width: 100%; + left: 0; + top: 0; +} + + + + + +#art-page-background-simple-gradient +{ + position: absolute; + background-image: url('/Images/Page-BgSimpleGradient.jpg'); + background-repeat: repeat-x; + top:0; + width: 100%; + height: 175px; +} + +.cleared +{ + float: none; + clear: both; + margin: 0; + padding: 0; + border: none; + font-size:1px; +} + + +form +{ + padding:0 !important; + margin:0 !important; +} + +table.position +{ + position: relative; + width: 100%; + table-layout: fixed; +} +/* end Page */ + +/* begin Box, Sheet */ +.art-Sheet +{ + position:relative; + z-index:0; + margin:0 auto; + width: 900px; + min-width:35px; + min-height:35px; +} + +.art-Sheet-body +{ + position: relative; + z-index:1; + padding: 13px; +} + +.art-Sheet-tr, .art-Sheet-tl, .art-Sheet-br, .art-Sheet-bl, .art-Sheet-tc, .art-Sheet-bc,.art-Sheet-cr, .art-Sheet-cl +{ + position:absolute; + z-index:-1; +} + +.art-Sheet-tr, .art-Sheet-tl, .art-Sheet-br, .art-Sheet-bl +{ + width: 34px; + height: 34px; + background-image: url('/Images/Sheet-s.png'); +} + +.art-Sheet-tl +{ + top:0; + left:0; + clip: rect(auto, 17px, 17px, auto); +} + +.art-Sheet-tr +{ + top: 0; + right: 0; + clip: rect(auto, auto, 17px, 17px); +} + +.art-Sheet-bl +{ + bottom: 0; + left: 0; + clip: rect(17px, 17px, auto, auto); +} + +.art-Sheet-br +{ + bottom: 0; + right: 0; + clip: rect(17px, auto, auto, 17px); +} + +.art-Sheet-tc, .art-Sheet-bc +{ + left: 17px; + right: 17px; + height: 34px; + background-image: url('/Images/Sheet-h.png'); +} + +.art-Sheet-tc +{ + top: 0; + clip: rect(auto, auto, 17px, auto); +} + +.art-Sheet-bc +{ + bottom: 0; + clip: rect(17px, auto, auto, auto); +} + +.art-Sheet-cr, .art-Sheet-cl +{ + top: 17px; + bottom: 17px; + width: 34px; + background-image: url('/Images/Sheet-v.png'); +} + +.art-Sheet-cr +{ + right:0; + clip: rect(auto, auto, auto, 17px); +} + +.art-Sheet-cl +{ + left:0; + clip: rect(auto, 17px, auto, auto); +} + +.art-Sheet-cc +{ + position:absolute; + z-index:-1; + top: 17px; + left: 17px; + right: 17px; + bottom: 17px; + background-color: #FDFDFC; +} + + +.art-Sheet +{ + margin-top: -13px !important; +} + +#art-page-background-simple-gradient, #art-page-background-gradient, #art-page-background-glare +{ + min-width:900px; +} + +/* end Box, Sheet */ + +/* begin Header */ +div.art-Header +{ + margin: 0 auto; + position: relative; + z-index:0; + width: 874px; + height: 175px; +} + + +div.art-Header-jpeg +{ + position: absolute; + z-index:-1; + top: 0; + left: 0; + width: 874px; + height: 175px; + background-image: url('/Images/Header.jpg'); + background-repeat: no-repeat; + background-position: center center; +} +/* end Header */ + +/* begin Logo */ +.art-Logo +{ + display : block; + position: absolute; + left: 10px; + top: 52px; + width: 854px; +} + +h1.art-Logo-name +{ + display: block; + text-align: center; +} + +h1.art-Logo-name, h1.art-Logo-name a, h1.art-Logo-name a:link, h1.art-Logo-name a:visited, h1.art-Logo-name a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 41px; + font-style: normal; + font-weight: bold; + text-decoration: none; + padding:0; + margin:0; + color: #E7ECDF !important; +} + +.art-Logo-text +{ + display: block; + text-align: center; +} + +.art-Logo-text, .art-Logo-text a +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: normal; + padding:0; + margin:0; + color: #E7ECDF !important; +} +/* end Logo */ + +/* begin Menu */ +/* menu structure */ + +.art-menu a, .art-menu a:link, .art-menu a:visited, .art-menu a:hover +{ + text-align:left; + text-decoration:none; + outline:none; + letter-spacing:normal; + word-spacing:normal; +} + +.art-menu, .art-menu ul +{ + margin: 0; + padding: 0; + border: 0; + list-style-type: none; + display: block; +} + +.art-menu li +{ + margin: 0; + padding: 0; + border: 0; + display: block; + float: left; + position: relative; + z-index: 5; + background:none; +} + +.art-menu li:hover +{ + z-index: 10000; + white-space: normal; +} + +.art-menu li li +{ + float: none; +} + +.art-menu ul +{ + visibility: hidden; + position: absolute; + z-index: 10; + left: 0; + top: 0; + background:none; +} + +.art-menu li:hover>ul +{ + visibility: visible; + top: 100%; +} + +.art-menu li li:hover>ul +{ + top: 0; + left: 100%; +} + +.art-menu:after, .art-menu ul:after +{ + content: "."; + height: 0; + display: block; + visibility: hidden; + overflow: hidden; + clear: both; +} +.art-menu, .art-menu ul +{ + min-height: 0; +} + +.art-menu ul +{ + background-image: url(/Images/spacer.gif); + padding: 10px 30px 30px 30px; + margin: -10px 0 0 -30px; +} + +.art-menu ul ul +{ + padding: 30px 30px 30px 10px; + margin: -30px 0 0 -10px; +} + + + + + +/* menu structure */ + +.art-menu +{ + padding: 8px 4px 0px 4px; +} + +.art-nav +{ + position: relative; + height: 35px; + z-index: 100; +} + +.art-nav .l, .art-nav .r +{ + position: absolute; + z-index: -1; + top: 0; + height: 35px; + background-image: url('/Images/nav.png'); +} + +.art-nav .l +{ + left: 0; + right:0px; +} + +.art-nav .r +{ + right: 0; + width: 874px; + clip: rect(auto, auto, auto, 874px); +} + + +/* end Menu */ + +/* begin MenuItem */ +.art-menu ul li +{ + clear: both; +} + +.art-menu a +{ + position:relative; + display: block; + overflow:hidden; + height: 27px; + cursor: pointer; + text-decoration: none; + margin-right: 2px; + margin-left: 2px; +} + + +.art-menu a .r, .art-menu a .l +{ + position:absolute; + display: block; + top:0; + z-index:-1; + height: 81px; + background-image: url('/Images/MenuItem.png'); +} + +.art-menu a .l +{ + left:0; + right:6px; +} + +.art-menu a .r +{ + width:412px; + right:0; + clip: rect(auto, auto, auto, 406px); +} + +.art-menu a .t +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 13px; + font-style: normal; + font-weight: normal; + color: #DADBD6; + padding: 0 10px; + margin: 0 6px; + line-height: 27px; + text-align: center; +} + +.art-menu a:hover .l, .art-menu a:hover .r +{ + top:-27px; +} + +.art-menu li:hover>a .l, .art-menu li:hover>a .r +{ + top:-27px; +} + +.art-menu li:hover a .l, .art-menu li:hover a .r +{ + top:-27px; +} +.art-menu a:hover .t +{ + color: #F5FAE5; +} + +.art-menu li:hover a .t +{ + color: #F5FAE5; +} + +.art-menu li:hover>a .t +{ + color: #F5FAE5; +} + + +.art-menu a.active .l, .art-menu a.active .r +{ + top: -54px; +} + +.art-menu a.active .t +{ + color: #E4EADC; +} + + +/* end MenuItem */ + +/* begin MenuSubItem */ +.art-menu ul a +{ + display:block; + text-align: center; + white-space: nowrap; + height: 20px; + width: 180px; + overflow:hidden; + line-height: 20px; + margin-right: auto; + + + background-image: url('/Images/subitem-bg.png'); + background-position: left top; + background-repeat: repeat-x; + border-width: 1px; + border-style: solid; + border-color: #979B8C; +} + +.art-nav ul.art-menu ul span, .art-nav ul.art-menu ul span span +{ + display: inline; + float: none; + margin: inherit; + padding: inherit; + background-image: none; + text-align: inherit; + text-decoration: inherit; +} + +.art-menu ul a, .art-menu ul a:link, .art-menu ul a:visited, .art-menu ul a:hover, .art-menu ul a:active, .art-nav ul.art-menu ul span, .art-nav ul.art-menu ul span span +{ + text-align: left; + text-indent: 12px; + text-decoration: none; + line-height: 20px; + color: #52554A; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-menu ul ul a +{ + margin-left: auto; +} + +.art-menu ul li a:hover +{ + color: #303C0C; + border-color: #7C806F; + background-position: 0 -20px; +} + +.art-menu ul li:hover>a +{ + color: #303C0C; + border-color: #7C806F; + background-position: 0 -20px; +} + +.art-nav .art-menu ul li a:hover span, .art-nav .art-menu ul li a:hover span span +{ + color: #303C0C; +} + +.art-nav .art-menu ul li:hover>a span, .art-nav .art-menu ul li:hover>a span span +{ + color: #303C0C; +} + + +/* end MenuSubItem */ + +/* begin ContentLayout */ +.art-contentLayout +{ + position: relative; + margin-bottom: 1px; + width: 874px; + +} +/* end ContentLayout */ + +/* begin Box, Block */ +.art-Block +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:1px; + min-height:1px; +} + +.art-Block-body +{ + position: relative; + z-index:1; + padding: 0px; +} + + + +.art-Block +{ + margin: 7px; +} + +/* end Box, Block */ + +/* begin BlockHeader */ +.art-BlockHeader +{ + position:relative; + z-index:0; + height: 30px; + padding: 0 7px; + margin-bottom: 0px; +} + +.art-BlockHeader .t +{ + height: 30px; + color: #6C7061; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: bold; + white-space : nowrap; + padding: 0 6px; + line-height: 30px; +} + + + + + +.art-header-tag-icon +{ + display:inline-block; + background-position:left top; + background-image: url('/Images/BlockHeaderIcon.png'); + padding:0 0 0 12px; + background-repeat: no-repeat; + min-height: 12px; + margin: 0 0 0 5px; +} + + +/* end BlockHeader */ + +/* begin Box, BlockContent */ +.art-BlockContent +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:3px; + min-height:3px; +} + +.art-BlockContent-body +{ + position: relative; + z-index:1; + padding: 8px; +} + +.art-BlockContent-tr, .art-BlockContent-tl, .art-BlockContent-br, .art-BlockContent-bl, .art-BlockContent-tc, .art-BlockContent-bc,.art-BlockContent-cr, .art-BlockContent-cl +{ + position:absolute; + z-index:-1; +} + +.art-BlockContent-tr, .art-BlockContent-tl, .art-BlockContent-br, .art-BlockContent-bl +{ + width: 2px; + height: 2px; + background-image: url('/Images/BlockContent-s.png'); +} + +.art-BlockContent-tl +{ + top:0; + left:0; + clip: rect(auto, 1px, 1px, auto); +} + +.art-BlockContent-tr +{ + top: 0; + right: 0; + clip: rect(auto, auto, 1px, 1px); +} + +.art-BlockContent-bl +{ + bottom: 0; + left: 0; + clip: rect(1px, 1px, auto, auto); +} + +.art-BlockContent-br +{ + bottom: 0; + right: 0; + clip: rect(1px, auto, auto, 1px); +} + +.art-BlockContent-tc, .art-BlockContent-bc +{ + left: 1px; + right: 1px; + height: 2px; + background-image: url('/Images/BlockContent-h.png'); +} + +.art-BlockContent-tc +{ + top: 0; + clip: rect(auto, auto, 1px, auto); +} + +.art-BlockContent-bc +{ + bottom: 0; + clip: rect(1px, auto, auto, auto); +} + +.art-BlockContent-cr, .art-BlockContent-cl +{ + top: 1px; + bottom: 1px; + width: 2px; + background-image: url('/Images/BlockContent-v.png'); +} + +.art-BlockContent-cr +{ + right:0; + clip: rect(auto, auto, auto, 1px); +} + +.art-BlockContent-cl +{ + left:0; + clip: rect(auto, 1px, auto, auto); +} + +.art-BlockContent-cc +{ + position:absolute; + z-index:-1; + top: 1px; + left: 1px; + right: 1px; + bottom: 1px; + background-color: #DBE2D0; +} + + +.art-BlockContent-body +{ + color:#20211C; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-BlockContent-body a:link +{ + color: #668019; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-BlockContent-body a:visited, .art-BlockContent-body a.visited +{ + color: #4F5247; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-BlockContent-body a:hover, .art-BlockContent-body a.hover +{ + color: #505F3A; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; +} + +.art-BlockContent-body ul +{ + list-style-type: none; + color: #42443B; + margin:0; + padding:0; +} + +.art-BlockContent-body li +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + text-decoration: none; +} + +.art-BlockContent-body ul li +{ + padding:0px 0 0px 10px; + background-image: url('/Images/BlockContentBullets.png'); + background-repeat:no-repeat; + margin:0.5em 0 0.5em 0; + line-height:1.2em; +} + +/* end Box, BlockContent */ + +/* begin Box, Post */ +.art-Post +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:1px; + min-height:1px; +} + +.art-Post-body +{ + position: relative; + z-index:1; + padding: 10px; +} + + + +.art-Post +{ + margin: 10px; +} + +/* Start /Images */ +a img +{ + border: 0; +} + +.art-article img, img.art-article +{ + border: solid 1px #BBC9A6; + margin: 1em; +} + +.art-metadata-icons img +{ + border: none; + vertical-align: middle; + margin:2px; +} +/* Finish /Images */ + +/* Start tables */ + +.art-article table, table.art-article +{ + border-collapse: collapse; + margin: 1px; + width:auto; +} + +.art-article table, table.art-article .art-article tr, .art-article th, .art-article td +{ + background-color:Transparent; +} + +.art-article th, .art-article td +{ + padding: 2px; + border: solid 1px #708551; + vertical-align: top; + text-align:left; +} + +.art-article th +{ + text-align:center; + vertical-align:middle; + padding: 7px; +} + +/* Finish tables */ +/* end Box, Post */ + +/* begin PostHeaderIcon */ +.art-PostHeaderIcon-wrapper +{ + text-decoration:none; + margin: 0.2em 0; + padding: 0; + font-weight:normal; + font-style:normal; + letter-spacing:normal; + word-spacing:normal; + font-variant:normal; + text-decoration:none; + font-variant:normal; + text-transform:none; + text-align:left; + text-indent:0; + line-height:inherit; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #404C2F; +} + +.art-PostHeaderIcon-wrapper, .art-PostHeaderIcon-wrapper a, .art-PostHeaderIcon-wrapper a:link, .art-PostHeaderIcon-wrapper a:visited, .art-PostHeaderIcon-wrapper a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #404C2F; +} + +/* end PostHeaderIcon */ + +/* begin PostHeader */ +.art-PostHeader a:link +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #4D5C38; +} + +.art-PostHeader a:visited, .art-PostHeader a.visited +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #687B4C; +} + +.art-PostHeader a:hover, .art-PostHeader a.hovered +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #74911D; +} +/* end PostHeader */ + +/* begin PostContent */ +/* Content Text Font & Color (Default) */ +body +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: #2A2C26; +} + +.art-PostContent +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + text-align: justify; + color: #2A2C26; +} + + +/* Start Content link style */ +/* +The right order of link pseudo-classes: Link-Visited-Hover-Focus-Active. +http://www.w3schools.com/CSS/css_pseudo_classes.asp +http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states/ +*/ +a +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #5B6C42; +} + +/* Adds special style to an unvisited link. */ +a:link +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #5B6C42; +} + +/* Adds special style to a visited link. */ +a:visited, a.visited +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #5A5D51; +} + +/* :hover - adds special style to an element when you mouse over it. */ +a:hover, a.hover +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + color: #74911D; +} + +/* Finish Content link style */ + +/* Resert some headings default style & links default style for links in headings*/ +h1, h2, h3, h4, h5, h6, +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a +h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover +h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited +{ + font-weight: normal; + font-style: normal; + text-decoration: none; +} + + +/* Start Content headings Fonts & Colors */ +h1, h1 a, h1 a:link, h1 a:visited, h1 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 28px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #5B6C42; +} + +h2, h2 a, h2 a:link, h2 a:visited, h2 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #5B6C42; +} + +h3, h3 a, h3 a:link, h3 a:visited, h3 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 18px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #7B9159; +} + +h4, h4 a, h4 a:link, h4 a:visited, h4 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 16px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #2A2C26; +} + +h5, h5 a, h5 a:link, h5 a:visited, h5 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #2A2C26; +} + +h6, h6 a, h6 a:link, h6 a:visited, h6 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #2A2C26; +} +/* Finish Content headings Fonts & Colors */ +/* end PostContent */ + +/* begin PostBullets */ +/* Start Content list */ +ol, ul +{ + color: #3F4139; + margin:1em 0 1em 2em; + padding:0; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; +} + +li ol, li ul +{ + margin:0.5em 0 0.5em 2em; + padding:0; +} + +li +{ + margin:0.2em 0; + padding:0; +} + +ul +{ + list-style-type: none; +} + +ol +{ + list-style-position:inside; + +} + + + +.art-Post li +{ + padding:0px 0 0px 13px; + line-height:1.2em; +} + +.art-Post ol li, .art-Post ul ol li +{ + background: none; + padding-left:0; +} + +.art-Post ul li, .art-Post ol ul li +{ + background-image: url('/Images/PostBullets.png'); + background-repeat:no-repeat; + padding-left:13px; +} + + +/* Finish Content list */ +/* end PostBullets */ + +/* begin PostQuote */ +/* Start blockquote */ +blockquote p +{ + color:#10100E; + font-family: Arial, Helvetica, Sans-Serif; + font-style: italic; + font-weight: normal; + text-align: left; +} + +blockquote +{ + border:solid 1px #BBC9A6; + margin:10px 10px 10px 50px; + padding:5px 5px 5px 41px; + background-color:#DBE2D0; + background-image:url('/Images/PostQuote.png'); + background-position:left top; + background-repeat:no-repeat; +} + + +/* Finish blockuote */ +/* end PostQuote */ + +/* begin Button */ +.art-button-wrapper .art-button +{ + display:inline-block; + width: auto; + outline:none; + border:none; + background:none; + line-height:34px; + margin:0 !important; + padding:0 !important; + overflow: visible; + cursor: default; + text-decoration: none !important; + z-index:0; +} + +.art-button-wrapper +{ + display:inline-block; + position:relative; + height: 34px; + overflow:hidden; + white-space: nowrap; + width: auto; + z-index:0; +} + +.art-button-wrapper .art-button +{ + display:block; + height: 34px; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + white-space: nowrap; + text-align: left; + padding: 0 21px !important; + line-height: 34px; + text-decoration: none !important; + color: #F0F1EF !important; +} + +input, select +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-button-wrapper.hover .art-button, .art-button:hover +{ + color: #F3F5EF !important; + text-decoration: none !important; +} + +.art-button-wrapper.active .art-button +{ + color: #F3F9E1 !important; +} + +.art-button-wrapper .l, .art-button-wrapper .r +{ + display:block; + position:absolute; + z-index:-1; + height: 102px; + background-image: url('/Images/Button.png'); +} + +.art-button-wrapper .l +{ + left:0; + right:11px; +} + +.art-button-wrapper .r +{ + width:411px; + right:0; + clip: rect(auto, auto, auto, 400px); +} + +.art-button-wrapper.hover .l, .art-button-wrapper.hover .r +{ + top: -34px; +} + +.art-button-wrapper.active .l, .art-button-wrapper.active .r +{ + top: -68px; +} + + +/* end Button */ + +/* begin Footer */ +.art-Footer +{ + position:relative; + z-index:0; + overflow:hidden; + width: 874px; + margin: 5px auto 0px auto; +} + +.art-Footer .art-Footer-inner +{ + height:1%; + position: relative; + z-index: 0; + padding: 8px; + text-align: center; +} + +.art-Footer .art-Footer-background +{ + position:absolute; + z-index:-1; + background-repeat:no-repeat; + background-image: url('/Images/Footer.png'); + width: 874px; + height: 150px; + bottom:0; + left:0; +} + + +.art-rss-tag-icon +{ + position: relative; + display:block; + float:left; + background-image: url('/Images/rssIcon.png'); + background-position: center right; + background-repeat: no-repeat; + margin: 0 5px 0 0; + height: 25px; + width: 25px; +} + + + + +.art-Footer .art-Footer-text p +{ + margin: 0; +} + +.art-Footer .art-Footer-text +{ + display:inline-block; + color:#20211C; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 11px; +} + +.art-Footer .art-Footer-text a:link +{ + text-decoration: none; + color: #505F3A; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-Footer .art-Footer-text a:visited +{ + text-decoration: none; + color: #4F5247; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-Footer .art-Footer-text a:hover +{ + text-decoration: none; + color: #599191; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; +} +/* end Footer */ + +/* begin PageFooter */ +.art-page-footer, .art-page-footer a, .art-page-footer a:link, .art-page-footer a:visited, .art-page-footer a:hover +{ + font-family:Arial; + font-size:10px; + letter-spacing:normal; + word-spacing:normal; + font-style:normal; + font-weight:normal; + text-decoration:underline; + color:#6B7E4E; +} + +.art-page-footer +{ + margin:1em; + text-align:center; + text-decoration:none; + color:#696D5F; +} +/* end PageFooter */ + +/* begin LayoutCell */ +.art-contentLayout .art-sidebar1 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 218px; +} +/* end LayoutCell */ + +/* begin LayoutCell */ +.art-contentLayout .art-content +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 437px; +} +.art-contentLayout .art-content-sidebar1 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 655px; +} +.art-contentLayout .art-content-sidebar2 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 655px; +} +.art-contentLayout .art-content-wide +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 873px; +} +/* end LayoutCell */ + +/* begin LayoutCell */ +.art-contentLayout .art-sidebar2 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 218px; +} +/* end LayoutCell */ + + diff --git a/Themes/default.css b/Themes/default.css new file mode 100755 index 0000000..49eeb0e --- /dev/null +++ b/Themes/default.css @@ -0,0 +1,1456 @@ +body +{ + margin: 0 auto; + padding: 0; + background-color: #B3B5AA; + overflow-y: scroll; +} + +#art-main +{ + position: relative; + width: 100%; + left: 0; + top: 0; +} + +TABLE +{ + border: 1px solid black; + background-color: #DAE3F0; +} +TH +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; + background-color: #C5D3E7; + text-align: center; +} +TD +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size:11px; + text-align: right; +} + + + +#art-page-background-simple-gradient +{ + position: absolute; + background-image: url('/Themes/default/Page-BgSimpleGradient.jpg'); + background-repeat: repeat-x; + top:0; + width: 100%; + height: 175px; +} + +.cleared +{ + float: none; + clear: both; + margin: 0; + padding: 0; + border: none; + font-size:1px; +} + + +form +{ + padding:0 !important; + margin:0 !important; +} + +table.position +{ + position: relative; + width: 100%; + table-layout: fixed; +} +/* end Page */ + +/* begin Box, Sheet */ +.art-Sheet +{ + position:relative; + z-index:0; + margin:0 auto; + width: 900px; + min-width:35px; + min-height:35px; +} + +.art-Sheet-body +{ + position: relative; + z-index:1; + padding: 13px; +} + +.art-Sheet-tr, .art-Sheet-tl, .art-Sheet-br, .art-Sheet-bl, .art-Sheet-tc, .art-Sheet-bc,.art-Sheet-cr, .art-Sheet-cl +{ + position:absolute; + z-index:-1; +} + +.art-Sheet-tr, .art-Sheet-tl, .art-Sheet-br, .art-Sheet-bl +{ + width: 34px; + height: 34px; + background-image: url('/Themes/default/Sheet-s.png'); +} + +.art-Sheet-tl +{ + top:0; + left:0; + clip: rect(auto, 17px, 17px, auto); +} + +.art-Sheet-tr +{ + top: 0; + right: 0; + clip: rect(auto, auto, 17px, 17px); +} + +.art-Sheet-bl +{ + bottom: 0; + left: 0; + clip: rect(17px, 17px, auto, auto); +} + +.art-Sheet-br +{ + bottom: 0; + right: 0; + clip: rect(17px, auto, auto, 17px); +} + +.art-Sheet-tc, .art-Sheet-bc +{ + left: 17px; + right: 17px; + height: 34px; + background-image: url('/Themes/default/Sheet-h.png'); +} + +.art-Sheet-tc +{ + top: 0; + clip: rect(auto, auto, 17px, auto); +} + +.art-Sheet-bc +{ + bottom: 0; + clip: rect(17px, auto, auto, auto); +} + +.art-Sheet-cr, .art-Sheet-cl +{ + top: 17px; + bottom: 17px; + width: 34px; + background-image: url('/Themes/default/Sheet-v.png'); +} + +.art-Sheet-cr +{ + right:0; + clip: rect(auto, auto, auto, 17px); +} + +.art-Sheet-cl +{ + left:0; + clip: rect(auto, 17px, auto, auto); +} + +.art-Sheet-cc +{ + position:absolute; + z-index:-1; + top: 17px; + left: 17px; + right: 17px; + bottom: 17px; + background-color: #FDFDFC; +} + + +.art-Sheet +{ + margin-top: -13px !important; +} + +#art-page-background-simple-gradient, #art-page-background-gradient, #art-page-background-glare +{ + min-width:900px; +} + +/* end Box, Sheet */ + +/* begin Header */ +div.art-Header +{ + margin: 0 auto; + position: relative; + z-index:0; + width: 874px; + height: 175px; +} + + +div.art-Header-jpeg +{ + position: absolute; + z-index:-1; + top: 0; + left: 0; + width: 874px; + height: 175px; + background-image: url('/Themes/default/Header.jpg'); + background-repeat: no-repeat; + background-position: center center; +} +/* end Header */ + +/* begin Logo */ +.art-Logo +{ + display : block; + position: absolute; + left: 10px; + top: 52px; + width: 854px; +} + +h1.art-Logo-name +{ + display: block; + text-align: center; +} + +h1.art-Logo-name, h1.art-Logo-name a, h1.art-Logo-name a:link, h1.art-Logo-name a:visited, h1.art-Logo-name a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 41px; + font-style: normal; + font-weight: bold; + text-decoration: none; + padding:0; + margin:0; + color: #E7ECDF !important; +} + +.art-Logo-text +{ + display: block; + text-align: center; +} + +.art-Logo-text, .art-Logo-text a +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: normal; + padding:0; + margin:0; + color: #E7ECDF !important; +} +/* end Logo */ + +/* begin Menu */ +/* menu structure */ + +.art-menu a, .art-menu a:link, .art-menu a:visited, .art-menu a:hover +{ + text-align:left; + text-decoration:none; + outline:none; + letter-spacing:normal; + word-spacing:normal; +} + +.art-menu, .art-menu ul +{ + margin: 0; + padding: 0; + border: 0; + list-style-type: none; + display: block; +} + +.art-menu li +{ + margin: 0; + padding: 0; + border: 0; + display: block; + float: left; + position: relative; + z-index: 5; + background:none; +} + +.art-menu li:hover +{ + z-index: 10000; + white-space: normal; +} + +.art-menu li li +{ + float: none; +} + +.art-menu ul +{ + visibility: hidden; + position: absolute; + z-index: 10; + left: 0; + top: 0; + background:none; +} + +.art-menu li:hover>ul +{ + visibility: visible; + top: 100%; +} + +.art-menu li li:hover>ul +{ + top: 0; + left: 100%; +} + +.art-menu:after, .art-menu ul:after +{ + content: "."; + height: 0; + display: block; + visibility: hidden; + overflow: hidden; + clear: both; +} +.art-menu, .art-menu ul +{ + min-height: 0; +} + +.art-menu ul +{ + background-image: url(/Themes/default/spacer.gif); + padding: 10px 30px 30px 30px; + margin: -10px 0 0 -30px; +} + +.art-menu ul ul +{ + padding: 30px 30px 30px 10px; + margin: -30px 0 0 -10px; +} + + + + + +/* menu structure */ + +.art-menu +{ + padding: 8px 4px 0px 4px; +} + +.art-nav +{ + position: relative; + height: 35px; + z-index: 100; +} + +.art-nav .l, .art-nav .r +{ + position: absolute; + z-index: -1; + top: 0; + height: 35px; + background-image: url('/Themes/default/nav.png'); +} + +.art-nav .l +{ + left: 0; + right:0px; +} + +.art-nav .r +{ + right: 0; + width: 874px; + clip: rect(auto, auto, auto, 874px); +} + + +/* end Menu */ + +/* begin MenuItem */ +.art-menu ul li +{ + clear: both; +} + +.art-menu a +{ + position:relative; + display: block; + overflow:hidden; + height: 27px; + cursor: pointer; + text-decoration: none; + margin-right: 2px; + margin-left: 2px; +} + + +.art-menu a .r, .art-menu a .l +{ + position:absolute; + display: block; + top:0; + z-index:-1; + height: 81px; + background-image: url('/Themes/default/MenuItem.png'); +} + +.art-menu a .l +{ + left:0; + right:6px; +} + +.art-menu a .r +{ + width:412px; + right:0; + clip: rect(auto, auto, auto, 406px); +} + +.art-menu a .t +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 13px; + font-style: normal; + font-weight: normal; + color: #DADBD6; + padding: 0 10px; + margin: 0 6px; + line-height: 27px; + text-align: center; +} + +.art-menu a:hover .l, .art-menu a:hover .r +{ + top:-27px; +} + +.art-menu li:hover>a .l, .art-menu li:hover>a .r +{ + top:-27px; +} + +.art-menu li:hover a .l, .art-menu li:hover a .r +{ + top:-27px; +} +.art-menu a:hover .t +{ + color: #F5FAE5; +} + +.art-menu li:hover a .t +{ + color: #F5FAE5; +} + +.art-menu li:hover>a .t +{ + color: #F5FAE5; +} + + +.art-menu a.active .l, .art-menu a.active .r +{ + top: -54px; +} + +.art-menu a.active .t +{ + color: #E4EADC; +} + + +/* end MenuItem */ + +/* begin MenuSubItem */ +.art-menu ul a +{ + display:block; + text-align: center; + white-space: nowrap; + height: 20px; + width: 180px; + overflow:hidden; + line-height: 20px; + margin-right: auto; + + + background-image: url('/Themes/default/subitem-bg.png'); + background-position: left top; + background-repeat: repeat-x; + border-width: 1px; + border-style: solid; + border-color: #979B8C; +} + +.art-nav ul.art-menu ul span, .art-nav ul.art-menu ul span span +{ + display: inline; + float: none; + margin: inherit; + padding: inherit; + background-image: none; + text-align: inherit; + text-decoration: inherit; +} + +.art-menu ul a, .art-menu ul a:link, .art-menu ul a:visited, .art-menu ul a:hover, .art-menu ul a:active, .art-nav ul.art-menu ul span, .art-nav ul.art-menu ul span span +{ + text-align: left; + text-indent: 12px; + text-decoration: none; + line-height: 20px; + color: #52554A; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-menu ul ul a +{ + margin-left: auto; +} + +.art-menu ul li a:hover +{ + color: #303C0C; + border-color: #7C806F; + background-position: 0 -20px; +} + +.art-menu ul li:hover>a +{ + color: #303C0C; + border-color: #7C806F; + background-position: 0 -20px; +} + +.art-nav .art-menu ul li a:hover span, .art-nav .art-menu ul li a:hover span span +{ + color: #303C0C; +} + +.art-nav .art-menu ul li:hover>a span, .art-nav .art-menu ul li:hover>a span span +{ + color: #303C0C; +} + + +/* end MenuSubItem */ + +/* begin ContentLayout */ +.art-contentLayout +{ + position: relative; + margin-bottom: 1px; + width: 874px; + +} +/* end ContentLayout */ + +/* begin Box, Block */ +.art-Block +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:1px; + min-height:1px; +} + +.art-Block-body +{ + position: relative; + z-index:1; + padding: 0px; +} + + + +.art-Block +{ + margin: 7px; +} + +/* end Box, Block */ + +/* begin BlockHeader */ +.art-BlockHeader +{ + position:relative; + z-index:0; + height: 30px; + padding: 0 7px; + margin-bottom: 0px; +} + +.art-BlockHeader .t +{ + height: 30px; + color: #6C7061; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: bold; + white-space : nowrap; + padding: 0 6px; + line-height: 30px; +} + + + + + +.art-header-tag-icon +{ + display:inline-block; + background-position:left top; + background-image: url('/Themes/default/BlockHeaderIcon.png'); + padding:0 0 0 12px; + background-repeat: no-repeat; + min-height: 12px; + margin: 0 0 0 5px; +} + + +/* end BlockHeader */ + +/* begin Box, BlockContent */ +.art-BlockContent +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:3px; + min-height:3px; +} + +.art-BlockContent-body +{ + position: relative; + z-index:1; + padding: 8px; +} + +.art-BlockContent-tr, .art-BlockContent-tl, .art-BlockContent-br, .art-BlockContent-bl, .art-BlockContent-tc, .art-BlockContent-bc,.art-BlockContent-cr, .art-BlockContent-cl +{ + position:absolute; + z-index:-1; +} + +.art-BlockContent-tr, .art-BlockContent-tl, .art-BlockContent-br, .art-BlockContent-bl +{ + width: 2px; + height: 2px; + background-image: url('/Themes/default/BlockContent-s.png'); +} + +.art-BlockContent-tl +{ + top:0; + left:0; + clip: rect(auto, 1px, 1px, auto); +} + +.art-BlockContent-tr +{ + top: 0; + right: 0; + clip: rect(auto, auto, 1px, 1px); +} + +.art-BlockContent-bl +{ + bottom: 0; + left: 0; + clip: rect(1px, 1px, auto, auto); +} + +.art-BlockContent-br +{ + bottom: 0; + right: 0; + clip: rect(1px, auto, auto, 1px); +} + +.art-BlockContent-tc, .art-BlockContent-bc +{ + left: 1px; + right: 1px; + height: 2px; + background-image: url('/Themes/default/BlockContent-h.png'); +} + +.art-BlockContent-tc +{ + top: 0; + clip: rect(auto, auto, 1px, auto); +} + +.art-BlockContent-bc +{ + bottom: 0; + clip: rect(1px, auto, auto, auto); +} + +.art-BlockContent-cr, .art-BlockContent-cl +{ + top: 1px; + bottom: 1px; + width: 2px; + background-image: url('/Themes/default/BlockContent-v.png'); +} + +.art-BlockContent-cr +{ + right:0; + clip: rect(auto, auto, auto, 1px); +} + +.art-BlockContent-cl +{ + left:0; + clip: rect(auto, 1px, auto, auto); +} + +.art-BlockContent-cc +{ + position:absolute; + z-index:-1; + top: 1px; + left: 1px; + right: 1px; + bottom: 1px; + background-color: #DBE2D0; +} + + +.art-BlockContent-body +{ + color:#20211C; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-BlockContent-body a:link +{ + color: #668019; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-BlockContent-body a:visited, .art-BlockContent-body a.visited +{ + color: #4F5247; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-BlockContent-body a:hover, .art-BlockContent-body a.hover +{ + color: #505F3A; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; +} + +.art-BlockContent-body ul +{ + list-style-type: none; + color: #42443B; + margin:0; + padding:0; +} + +.art-BlockContent-body li +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + text-decoration: none; +} + +.art-BlockContent-body ul li +{ + padding:0px 0 0px 10px; + background-image: url('/Themes/default/BlockContentBullets.png'); + background-repeat:no-repeat; + margin:0.5em 0 0.5em 0; + line-height:1.2em; +} + +/* end Box, BlockContent */ + +/* begin Box, Post */ +.art-Post +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:1px; + min-height:1px; +} + +.art-Post-body +{ + position: relative; + z-index:1; + padding: 10px; +} + + + +.art-Post +{ + margin: 10px; +} + +/* Start /Images */ +a img +{ + border: 0; +} + +.art-article img, img.art-article +{ + border: solid 1px #BBC9A6; + margin: 1em; +} + +.art-metadata-icons img +{ + border: none; + vertical-align: middle; + margin:2px; +} +/* Finish /Images */ + +/* Start tables */ + +.art-article table, table.art-article +{ + border-collapse: collapse; + margin: 1px; + width:auto; +} + +.art-article table, table.art-article .art-article tr, .art-article th, .art-article td +{ + background-color:Transparent; +} + +.art-article th, .art-article td +{ + padding: 2px; + border: solid 1px #708551; + vertical-align: top; + text-align:left; +} + +.art-article th +{ + text-align:center; + vertical-align:middle; + padding: 7px; +} + +/* Finish tables */ +/* end Box, Post */ + +/* begin PostHeaderIcon */ +.art-PostHeaderIcon-wrapper +{ + text-decoration:none; + margin: 0.2em 0; + padding: 0; + font-weight:normal; + font-style:normal; + letter-spacing:normal; + word-spacing:normal; + font-variant:normal; + text-decoration:none; + font-variant:normal; + text-transform:none; + text-align:left; + text-indent:0; + line-height:inherit; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #404C2F; +} + +.art-PostHeaderIcon-wrapper, .art-PostHeaderIcon-wrapper a, .art-PostHeaderIcon-wrapper a:link, .art-PostHeaderIcon-wrapper a:visited, .art-PostHeaderIcon-wrapper a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #404C2F; +} + +/* end PostHeaderIcon */ + +/* begin PostHeader */ +.art-PostHeader a:link +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #4D5C38; +} + +.art-PostHeader a:visited, .art-PostHeader a.visited +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #687B4C; +} + +.art-PostHeader a:hover, .art-PostHeader a.hovered +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #74911D; +} +/* end PostHeader */ + +/* begin PostContent */ +/* Content Text Font & Color (Default) */ +body +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: #2A2C26; +} + +.art-PostContent +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + text-align: justify; + color: #2A2C26; +} + + +/* Start Content link style */ +/* +The right order of link pseudo-classes: Link-Visited-Hover-Focus-Active. +http://www.w3schools.com/CSS/css_pseudo_classes.asp +http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states/ +*/ +a +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #5B6C42; +} + +/* Adds special style to an unvisited link. */ +a:link +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #5B6C42; +} + +/* Adds special style to a visited link. */ +a:visited, a.visited +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #5A5D51; +} + +/* :hover - adds special style to an element when you mouse over it. */ +a:hover, a.hover +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + color: #74911D; +} + +/* Finish Content link style */ + +/* Resert some headings default style & links default style for links in headings*/ +h1, h2, h3, h4, h5, h6, +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a +h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover +h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited +{ + font-weight: normal; + font-style: normal; + text-decoration: none; +} + + +/* Start Content headings Fonts & Colors */ +h1, h1 a, h1 a:link, h1 a:visited, h1 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 28px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #5B6C42; +} + +h2, h2 a, h2 a:link, h2 a:visited, h2 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #5B6C42; +} + +h3, h3 a, h3 a:link, h3 a:visited, h3 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 18px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #7B9159; +} + +h4, h4 a, h4 a:link, h4 a:visited, h4 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 16px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #2A2C26; +} + +h5, h5 a, h5 a:link, h5 a:visited, h5 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #2A2C26; +} + +h6, h6 a, h6 a:link, h6 a:visited, h6 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #2A2C26; +} +/* Finish Content headings Fonts & Colors */ +/* end PostContent */ + +/* begin PostBullets */ +/* Start Content list */ +ol, ul +{ + color: #3F4139; + margin:1em 0 1em 2em; + padding:0; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; +} + +li ol, li ul +{ + margin:0.5em 0 0.5em 2em; + padding:0; +} + +li +{ + margin:0.2em 0; + padding:0; +} + +ul +{ + list-style-type: none; +} + +ol +{ + list-style-position:inside; + +} + + + +.art-Post li +{ + padding:0px 0 0px 13px; + line-height:1.2em; +} + +.art-Post ol li, .art-Post ul ol li +{ + background: none; + padding-left:0; +} + +.art-Post ul li, .art-Post ol ul li +{ + background-image: url('/Themes/default/PostBullets.png'); + background-repeat:no-repeat; + padding-left:13px; +} + + +/* Finish Content list */ +/* end PostBullets */ + +/* begin PostQuote */ +/* Start blockquote */ +blockquote p +{ + color:#10100E; + font-family: Arial, Helvetica, Sans-Serif; + font-style: italic; + font-weight: normal; + text-align: left; +} + +blockquote +{ + border:solid 1px #BBC9A6; + margin:10px 10px 10px 50px; + padding:5px 5px 5px 41px; + background-color:#DBE2D0; + background-image:url('/Themes/default/PostQuote.png'); + background-position:left top; + background-repeat:no-repeat; +} + + +/* Finish blockuote */ +/* end PostQuote */ + +/* begin Button */ +.art-button-wrapper .art-button +{ + display:inline-block; + width: auto; + outline:none; + border:none; + background:none; + line-height:34px; + margin:0 !important; + padding:0 !important; + overflow: visible; + cursor: default; + text-decoration: none !important; + z-index:0; +} + +.art-button-wrapper +{ + display:inline-block; + position:relative; + height: 34px; + overflow:hidden; + white-space: nowrap; + width: auto; + z-index:0; +} + +.art-button-wrapper .art-button +{ + display:block; + height: 34px; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + white-space: nowrap; + text-align: left; + padding: 0 21px !important; + line-height: 34px; + text-decoration: none !important; + color: #F0F1EF !important; +} + +input, select +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-button-wrapper.hover .art-button, .art-button:hover +{ + color: #F3F5EF !important; + text-decoration: none !important; +} + +.art-button-wrapper.active .art-button +{ + color: #F3F9E1 !important; +} + +.art-button-wrapper .l, .art-button-wrapper .r +{ + display:block; + position:absolute; + z-index:-1; + height: 102px; + background-image: url('/Themes/default/Button.png'); +} + +.art-button-wrapper .l +{ + left:0; + right:11px; +} + +.art-button-wrapper .r +{ + width:411px; + right:0; + clip: rect(auto, auto, auto, 400px); +} + +.art-button-wrapper.hover .l, .art-button-wrapper.hover .r +{ + top: -34px; +} + +.art-button-wrapper.active .l, .art-button-wrapper.active .r +{ + top: -68px; +} + + +/* end Button */ + +/* begin Footer */ +.art-Footer +{ + position:relative; + z-index:0; + overflow:hidden; + width: 874px; + margin: 5px auto 0px auto; +} + +.art-Footer .art-Footer-inner +{ + height:1%; + position: relative; + z-index: 0; + padding: 8px; + text-align: center; +} + +.art-Footer .art-Footer-background +{ + position:absolute; + z-index:-1; + background-repeat:no-repeat; + background-image: url('/Themes/default/Footer.png'); + width: 874px; + height: 150px; + bottom:0; + left:0; +} + + +.art-rss-tag-icon +{ + position: relative; + display:block; + float:left; + background-image: url('/Themes/default/rssIcon.png'); + background-position: center right; + background-repeat: no-repeat; + margin: 0 5px 0 0; + height: 25px; + width: 25px; +} + + + + +.art-Footer .art-Footer-text p +{ + margin: 0; +} + +.art-Footer .art-Footer-text +{ + display:inline-block; + color:#20211C; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 11px; +} + +.art-Footer .art-Footer-text a:link +{ + text-decoration: none; + color: #505F3A; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-Footer .art-Footer-text a:visited +{ + text-decoration: none; + color: #4F5247; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-Footer .art-Footer-text a:hover +{ + text-decoration: none; + color: #599191; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; +} +/* end Footer */ + +/* begin PageFooter */ +.art-page-footer, .art-page-footer a, .art-page-footer a:link, .art-page-footer a:visited, .art-page-footer a:hover +{ + font-family:Arial; + font-size:10px; + letter-spacing:normal; + word-spacing:normal; + font-style:normal; + font-weight:normal; + text-decoration:underline; + color:#6B7E4E; +} + +.art-page-footer +{ + margin:1em; + text-align:center; + text-decoration:none; + color:#696D5F; +} +/* end PageFooter */ + +/* begin LayoutCell */ +.art-contentLayout .art-sidebar1 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 218px; +} +/* end LayoutCell */ + +/* begin LayoutCell */ +.art-contentLayout .art-content +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 437px; +} +.art-contentLayout .art-content-sidebar1 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 655px; +} +.art-contentLayout .art-content-sidebar2 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 655px; +} +.art-contentLayout .art-content-wide +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 873px; +} +/* end LayoutCell */ + +/* begin LayoutCell */ +.art-contentLayout .art-sidebar2 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 218px; +} +/* end LayoutCell */ + + diff --git a/Themes/default/BlockContent-h.png b/Themes/default/BlockContent-h.png new file mode 100755 index 0000000..095a606 Binary files /dev/null and b/Themes/default/BlockContent-h.png differ diff --git a/Themes/default/BlockContent-s.png b/Themes/default/BlockContent-s.png new file mode 100755 index 0000000..5b2e261 Binary files /dev/null and b/Themes/default/BlockContent-s.png differ diff --git a/Themes/default/BlockContent-v.png b/Themes/default/BlockContent-v.png new file mode 100755 index 0000000..b3805df Binary files /dev/null and b/Themes/default/BlockContent-v.png differ diff --git a/Themes/default/BlockContentBullets.png b/Themes/default/BlockContentBullets.png new file mode 100755 index 0000000..f8fa6e6 Binary files /dev/null and b/Themes/default/BlockContentBullets.png differ diff --git a/Themes/default/BlockHeaderIcon.png b/Themes/default/BlockHeaderIcon.png new file mode 100755 index 0000000..7f72994 Binary files /dev/null and b/Themes/default/BlockHeaderIcon.png differ diff --git a/Themes/default/Button.png b/Themes/default/Button.png new file mode 100755 index 0000000..ef9764c Binary files /dev/null and b/Themes/default/Button.png differ diff --git a/Themes/default/Footer.png b/Themes/default/Footer.png new file mode 100755 index 0000000..56f8ec8 Binary files /dev/null and b/Themes/default/Footer.png differ diff --git a/Themes/default/Header (copy).jpg b/Themes/default/Header (copy).jpg new file mode 100755 index 0000000..b4e122f Binary files /dev/null and b/Themes/default/Header (copy).jpg differ diff --git a/Themes/default/Header.jpg b/Themes/default/Header.jpg new file mode 100755 index 0000000..b4e122f Binary files /dev/null and b/Themes/default/Header.jpg differ diff --git a/Themes/default/Header_.jpg b/Themes/default/Header_.jpg new file mode 100755 index 0000000..e53003e Binary files /dev/null and b/Themes/default/Header_.jpg differ diff --git a/Themes/default/Header_old.jpg b/Themes/default/Header_old.jpg new file mode 100755 index 0000000..e302e98 Binary files /dev/null and b/Themes/default/Header_old.jpg differ diff --git a/Themes/default/MenuItem.png b/Themes/default/MenuItem.png new file mode 100755 index 0000000..2c41792 Binary files /dev/null and b/Themes/default/MenuItem.png differ diff --git a/Themes/default/Page-BgSimpleGradient.jpg b/Themes/default/Page-BgSimpleGradient.jpg new file mode 100755 index 0000000..d9f5faf Binary files /dev/null and b/Themes/default/Page-BgSimpleGradient.jpg differ diff --git a/Themes/default/PostBullets.png b/Themes/default/PostBullets.png new file mode 100755 index 0000000..ab64214 Binary files /dev/null and b/Themes/default/PostBullets.png differ diff --git a/Themes/default/PostQuote.png b/Themes/default/PostQuote.png new file mode 100755 index 0000000..b287cd4 Binary files /dev/null and b/Themes/default/PostQuote.png differ diff --git a/Themes/default/Sheet-h.png b/Themes/default/Sheet-h.png new file mode 100755 index 0000000..7efb4fc Binary files /dev/null and b/Themes/default/Sheet-h.png differ diff --git a/Themes/default/Sheet-s.png b/Themes/default/Sheet-s.png new file mode 100755 index 0000000..5d3e425 Binary files /dev/null and b/Themes/default/Sheet-s.png differ diff --git a/Themes/default/Sheet-v.png b/Themes/default/Sheet-v.png new file mode 100755 index 0000000..5bb60e0 Binary files /dev/null and b/Themes/default/Sheet-v.png differ diff --git a/Themes/default/nav.png b/Themes/default/nav.png new file mode 100755 index 0000000..5819157 Binary files /dev/null and b/Themes/default/nav.png differ diff --git a/Themes/default/rssIcon.png b/Themes/default/rssIcon.png new file mode 100755 index 0000000..df92704 Binary files /dev/null and b/Themes/default/rssIcon.png differ diff --git a/Themes/default/spacer.gif b/Themes/default/spacer.gif new file mode 100755 index 0000000..1d11fa9 Binary files /dev/null and b/Themes/default/spacer.gif differ diff --git a/Themes/default/spectacles.gif b/Themes/default/spectacles.gif new file mode 100755 index 0000000..3eef54f Binary files /dev/null and b/Themes/default/spectacles.gif differ diff --git a/Themes/default/subitem-bg.png b/Themes/default/subitem-bg.png new file mode 100755 index 0000000..506b67c Binary files /dev/null and b/Themes/default/subitem-bg.png differ diff --git a/Themes/default/tux_root.gif b/Themes/default/tux_root.gif new file mode 100755 index 0000000..5fd8dc9 Binary files /dev/null and b/Themes/default/tux_root.gif differ diff --git a/Themes/winter.css b/Themes/winter.css new file mode 100755 index 0000000..8676137 --- /dev/null +++ b/Themes/winter.css @@ -0,0 +1,1457 @@ +body +{ + margin: 0 auto; + padding: 0; + background-color: #B3B5AA; + overflow-y: scroll; +} + +#art-main +{ + position: relative; + width: 100%; + left: 0; + top: 0; +} + +TABLE +{ + border: 1px solid black; + background-color: #DAE3F0; +} +TH +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; + background-color: #C5D3E7; + text-align: center; +} +TD +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size:11px; + text-align: right; +} + + + +#art-page-background-simple-gradient +{ + position: absolute; + background-image: url('/Themes/winter/Page-BgSimpleGradient.jpg'); + background-repeat: repeat-x; + top:0; + width: 100%; + height: 175px; +} + +.cleared +{ + float: none; + clear: both; + margin: 0; + padding: 0; + border: none; + font-size:1px; +} + + +form +{ + padding:0 !important; + margin:0 !important; +} + +table.position +{ + position: relative; + width: 100%; + table-layout: fixed; +} +/* end Page */ + +/* begin Box, Sheet */ +.art-Sheet +{ + position:relative; + z-index:0; + margin:0 auto; + width: 1000px; + min-width:35px; + min-height:35px; +} + +.art-Sheet-body +{ + position: relative; + z-index:1; + padding: 13px; +} + +.art-Sheet-tr, .art-Sheet-tl, .art-Sheet-br, .art-Sheet-bl, .art-Sheet-tc, .art-Sheet-bc,.art-Sheet-cr, .art-Sheet-cl +{ + position:absolute; + z-index:-1; +} + +.art-Sheet-tr, .art-Sheet-tl, .art-Sheet-br, .art-Sheet-bl +{ + width: 34px; + height: 34px; + background-image: url('/Themes/winter/Sheet-s.png'); +} + +.art-Sheet-tl +{ + top:0; + left:0; + clip: rect(auto, 17px, 17px, auto); +} + +.art-Sheet-tr +{ + top: 0; + right: 0; + clip: rect(auto, auto, 17px, 17px); +} + +.art-Sheet-bl +{ + bottom: 0; + left: 0; + clip: rect(17px, 17px, auto, auto); +} + +.art-Sheet-br +{ + bottom: 0; + right: 0; + clip: rect(17px, auto, auto, 17px); +} + +.art-Sheet-tc, .art-Sheet-bc +{ + left: 17px; + right: 17px; + height: 34px; + background-image: url('/Themes/winter/Sheet-h.png'); +} + +.art-Sheet-tc +{ + top: 0; + clip: rect(auto, auto, 17px, auto); +} + +.art-Sheet-bc +{ + bottom: 0; + clip: rect(17px, auto, auto, auto); +} + +.art-Sheet-cr, .art-Sheet-cl +{ + top: 17px; + bottom: 17px; + width: 34px; + background-image: url('/Themes/winter/Sheet-v.png'); +} + +.art-Sheet-cr +{ + right:0; + clip: rect(auto, auto, auto, 17px); +} + +.art-Sheet-cl +{ + left:0; + clip: rect(auto, 17px, auto, auto); +} + +.art-Sheet-cc +{ + position:absolute; + z-index:-1; + top: 17px; + left: 17px; + right: 17px; + bottom: 17px; + background-color: #FDFDFC; +} + + +.art-Sheet +{ + margin-top: -13px !important; +} + +#art-page-background-simple-gradient, #art-page-background-gradient, #art-page-background-glare +{ + min-width:1000px; +} + +/* end Box, Sheet */ + +/* begin Header */ +div.art-Header +{ + margin: 0 auto; + position: relative; + z-index:0; + width: 974px; + height: 175px; +} + + +div.art-Header-jpeg +{ + position: absolute; + z-index:-1; + top: 0; + left: 0; + width: 974px; + height: 175px; + background-image: url('/Themes/winter/Header.jpg'); + background-repeat: no-repeat; + background-position: center center; +} +/* end Header */ + +/* begin Logo */ +.art-Logo +{ + display : block; + position: absolute; + left: 10px; + top: 52px; + width: 954px; +} + +h1.art-Logo-name +{ + display: block; + text-align: center; +} + +h1.art-Logo-name, h1.art-Logo-name a, h1.art-Logo-name a:link, h1.art-Logo-name a:visited, h1.art-Logo-name a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 41px; + font-style: normal; + font-weight: bold; + text-decoration: none; + padding:0; + margin:0; + color: darkblue !important; +} + +.art-Logo-text +{ + display: block; + text-align: center; +} + +.art-Logo-text, .art-Logo-text a +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: normal; + padding:0; + margin:0; + color: darkblue !important; +} +/* end Logo */ + +/* begin Menu */ +/* menu structure */ + +.art-menu a, .art-menu a:link, .art-menu a:visited, .art-menu a:hover +{ + text-align:left; + text-decoration:none; + outline:none; + letter-spacing:normal; + word-spacing:normal; +} + +.art-menu, .art-menu ul +{ + margin: 0; + padding: 0; + border: 0; + list-style-type: none; + display: block; +} + +.art-menu li +{ + margin: 0; + padding: 0; + border: 0; + display: block; + float: left; + position: relative; + z-index: 5; + background:none; +} + +.art-menu li:hover +{ + z-index: 10000; + white-space: normal; +} + +.art-menu li li +{ + float: none; +} + +.art-menu ul +{ + visibility: hidden; + position: absolute; + z-index: 10; + left: 0; + top: 0; + background:none; +} + +.art-menu li:hover>ul +{ + visibility: visible; + top: 100%; +} + +.art-menu li li:hover>ul +{ + top: 0; + left: 100%; +} + +.art-menu:after, .art-menu ul:after +{ + content: "."; + height: 0; + display: block; + visibility: hidden; + overflow: hidden; + clear: both; +} +.art-menu, .art-menu ul +{ + min-height: 0; +} + +.art-menu ul +{ + background-image: url(/Themes/winter/spacer.gif); + padding: 10px 30px 30px 30px; + margin: -10px 0 0 -30px; +} + +.art-menu ul ul +{ + padding: 30px 30px 30px 10px; + margin: -30px 0 0 -10px; +} + + + + + +/* menu structure */ + +.art-menu +{ + padding: 8px 4px 0px 4px; +} + +.art-nav +{ + position: relative; + height: 35px; + z-index: 100; +} + +.art-nav .l, .art-nav .r +{ + position: absolute; + z-index: -1; + top: 0; + height: 35px; + background-image: url('/Themes/winter/nav.png'); +} + +.art-nav .l +{ + left: 0; + right:0px; +} + +.art-nav .r +{ + right: 0; + width: 974px; + clip: rect(auto, auto, auto, 974px); +} + + +/* end Menu */ + +/* begin MenuItem */ +.art-menu ul li +{ + clear: both; +} + +.art-menu a +{ + position:relative; + display: block; + overflow:hidden; + height: 27px; + cursor: pointer; + text-decoration: none; + margin-right: 2px; + margin-left: 2px; +} + + +.art-menu a .r, .art-menu a .l +{ + position:absolute; + display: block; + top:0; + z-index:-1; + height: 81px; + background-image: url('/Themes/winter/MenuItem.png'); +} + +.art-menu a .l +{ + left:0; + right:6px; +} + +.art-menu a .r +{ + width:412px; + right:0; + clip: rect(auto, auto, auto, 406px); +} + +.art-menu a .t +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 13px; + font-style: normal; + font-weight: normal; + color: #DADBD6; + padding: 0 10px; + margin: 0 6px; + line-height: 27px; + text-align: center; +} + +.art-menu a:hover .l, .art-menu a:hover .r +{ + top:-27px; +} + +.art-menu li:hover>a .l, .art-menu li:hover>a .r +{ + top:-27px; +} + +.art-menu li:hover a .l, .art-menu li:hover a .r +{ + top:-27px; +} +.art-menu a:hover .t +{ + color: #F5FAE5; +} + +.art-menu li:hover a .t +{ + color: #F5FAE5; +} + +.art-menu li:hover>a .t +{ + color: #F5FAE5; +} + + +.art-menu a.active .l, .art-menu a.active .r +{ + top: -54px; +} + +.art-menu a.active .t +{ + color: #E4EADC; +} + + +/* end MenuItem */ + +/* begin MenuSubItem */ +.art-menu ul a +{ + display:block; + text-align: center; + white-space: nowrap; + height: 20px; + width: 180px; + overflow:hidden; + line-height: 20px; + margin-right: auto; + + + background-image: url('/Themes/winter/subitem-bg.png'); + background-position: left top; + background-repeat: repeat-x; + border-width: 1px; + border-style: solid; + border-color: #979B8C; +} + +.art-nav ul.art-menu ul span, .art-nav ul.art-menu ul span span +{ + display: inline; + float: none; + margin: inherit; + padding: inherit; + background-image: none; + text-align: inherit; + text-decoration: inherit; +} + +.art-menu ul a, .art-menu ul a:link, .art-menu ul a:visited, .art-menu ul a:hover, .art-menu ul a:active, .art-nav ul.art-menu ul span, .art-nav ul.art-menu ul span span +{ + text-align: left; + text-indent: 12px; + text-decoration: none; + line-height: 20px; + color: #52554A; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-menu ul ul a +{ + margin-left: auto; +} + +.art-menu ul li a:hover +{ + color: #303C0C; + border-color: #7C806F; + background-position: 0 -20px; +} + +.art-menu ul li:hover>a +{ + color: #303C0C; + border-color: #7C806F; + background-position: 0 -20px; +} + +.art-nav .art-menu ul li a:hover span, .art-nav .art-menu ul li a:hover span span +{ + color: #303C0C; +} + +.art-nav .art-menu ul li:hover>a span, .art-nav .art-menu ul li:hover>a span span +{ + color: #303C0C; +} + + +/* end MenuSubItem */ + +/* begin ContentLayout */ +.art-contentLayout +{ + position: relative; + margin-bottom: 1px; + width: 974px; + +} +/* end ContentLayout */ + +/* begin Box, Block */ +.art-Block +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:1px; + min-height:1px; +} + +.art-Block-body +{ + position: relative; + z-index:1; + padding: 0px; +} + + + +.art-Block +{ + margin: 7px; +} + +/* end Box, Block */ + +/* begin BlockHeader */ +.art-BlockHeader +{ + position:relative; + z-index:0; + height: 30px; + padding: 0 7px; + margin-bottom: 0px; +} + +.art-BlockHeader .t +{ + height: 30px; + color: #6C7061; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: bold; + white-space : nowrap; + padding: 0 6px; + line-height: 30px; +} + + + + + +.art-header-tag-icon +{ + display:inline-block; + background-position:left top; + background-image: url('/Themes/winter/BlockHeaderIcon.png'); + padding:0 0 0 12px; + background-repeat: no-repeat; + min-height: 12px; + margin: 0 0 0 5px; +} + + +/* end BlockHeader */ + +/* begin Box, BlockContent */ +.art-BlockContent +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:3px; + min-height:3px; +} + +.art-BlockContent-body +{ + position: relative; + z-index:1; + padding: 8px; +} + +.art-BlockContent-tr, .art-BlockContent-tl, .art-BlockContent-br, .art-BlockContent-bl, .art-BlockContent-tc, .art-BlockContent-bc,.art-BlockContent-cr, .art-BlockContent-cl +{ + position:absolute; + z-index:-1; +} + +.art-BlockContent-tr, .art-BlockContent-tl, .art-BlockContent-br, .art-BlockContent-bl +{ + width: 2px; + height: 2px; + background-image: url('/Themes/winter/BlockContent-s.png'); +} + +.art-BlockContent-tl +{ + top:0; + left:0; + clip: rect(auto, 1px, 1px, auto); +} + +.art-BlockContent-tr +{ + top: 0; + right: 0; + clip: rect(auto, auto, 1px, 1px); +} + +.art-BlockContent-bl +{ + bottom: 0; + left: 0; + clip: rect(1px, 1px, auto, auto); +} + +.art-BlockContent-br +{ + bottom: 0; + right: 0; + clip: rect(1px, auto, auto, 1px); +} + +.art-BlockContent-tc, .art-BlockContent-bc +{ + left: 1px; + right: 1px; + height: 2px; + background-image: url('/Themes/winter/BlockContent-h.png'); +} + +.art-BlockContent-tc +{ + top: 0; + clip: rect(auto, auto, 1px, auto); +} + +.art-BlockContent-bc +{ + bottom: 0; + clip: rect(1px, auto, auto, auto); +} + +.art-BlockContent-cr, .art-BlockContent-cl +{ + top: 1px; + bottom: 1px; + width: 2px; + background-image: url('/Themes/winter/BlockContent-v.png'); +} + +.art-BlockContent-cr +{ + right:0; + clip: rect(auto, auto, auto, 1px); +} + +.art-BlockContent-cl +{ + left:0; + clip: rect(auto, 1px, auto, auto); +} + +.art-BlockContent-cc +{ + position:absolute; + z-index:-1; + top: 1px; + left: 1px; + right: 1px; + bottom: 1px; + background-color: #DBE2D0; +} + + +.art-BlockContent-body +{ + color:darkblue; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-BlockContent-body a:link +{ + color: #668019; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-BlockContent-body a:visited, .art-BlockContent-body a.visited +{ + color: #4F5247; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-BlockContent-body a:hover, .art-BlockContent-body a.hover +{ + color: #505F3A; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; +} + +.art-BlockContent-body ul +{ + list-style-type: none; + color: darkblue; + margin:0; + padding:0; +} + +.art-BlockContent-body li +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + text-decoration: none; +} + +.art-BlockContent-body ul li +{ + padding:0px 0 0px 10px; + background-image: url('/Themes/winter/BlockContentBullets.png'); + background-repeat:no-repeat; + margin:0.5em 0 0.5em 0; + line-height:1.2em; +} + +/* end Box, BlockContent */ + +/* begin Box, Post */ +.art-Post +{ + position:relative; + z-index:0; + margin:0 auto; + min-width:1px; + min-height:1px; +} + +.art-Post-body +{ + position: relative; + z-index:1; + padding: 10px; +} + + + +.art-Post +{ + margin: 10px; +} + +/* Start /Images */ +a img +{ + border: 0; +} + +.art-article img, img.art-article +{ + border: solid 1px #BBC9A6; + margin: 1em; +} + +.art-metadata-icons img +{ + border: none; + vertical-align: middle; + margin:2px; +} +/* Finish /Images */ + +/* Start tables */ + +.art-article table, table.art-article +{ + border-collapse: collapse; + margin: 1px; + width:auto; +} + +.art-article table, table.art-article .art-article tr, .art-article th, .art-article td +{ + background-color:Transparent; +} + +.art-article th, .art-article td +{ + padding: 2px; + border: solid 1px #708551; + vertical-align: top; + text-align:left; +} + +.art-article th +{ + text-align:center; + vertical-align:middle; + padding: 7px; +} + +/* Finish tables */ +/* end Box, Post */ + +/* begin PostHeaderIcon */ +.art-PostHeaderIcon-wrapper +{ + text-decoration:none; + margin: 0.2em 0; + padding: 0; + font-weight:normal; + font-style:normal; + letter-spacing:normal; + word-spacing:normal; + font-variant:normal; + text-decoration:none; + font-variant:normal; + text-transform:none; + text-align:left; + text-indent:0; + line-height:inherit; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #404C2F; +} + +.art-PostHeaderIcon-wrapper, .art-PostHeaderIcon-wrapper a, .art-PostHeaderIcon-wrapper a:link, .art-PostHeaderIcon-wrapper a:visited, .art-PostHeaderIcon-wrapper a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: #404C2F; +} + +/* end PostHeaderIcon */ + +/* begin PostHeader */ +.art-PostHeader a:link +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #4D5C38; +} + +.art-PostHeader a:visited, .art-PostHeader a.visited +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #687B4C; +} + +.art-PostHeader a:hover, .art-PostHeader a.hovered +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + text-align: left; + color: #74911D; +} +/* end PostHeader */ + +/* begin PostContent */ +/* Content Text Font & Color (Default) */ +body +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: darkblue; +} + +.art-PostContent +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + text-align: justify; + color: darkblue; +} + + +/* Start Content link style */ +/* +The right order of link pseudo-classes: Link-Visited-Hover-Focus-Active. +http://www.w3schools.com/CSS/css_pseudo_classes.asp +http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states/ +*/ +a +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #5B6C42; +} + +/* Adds special style to an unvisited link. */ +a:link +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #42536C; +} + +/* Adds special style to a visited link. */ +a:visited, a.visited +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; + color: #42536C; +} + +/* :hover - adds special style to an element when you mouse over it. */ +a:hover, a.hover +{ + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; + color: darkblue; +} + +/* Finish Content link style */ + +/* Resert some headings default style & links default style for links in headings*/ +h1, h2, h3, h4, h5, h6, +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a +h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover +h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited +{ + font-weight: normal; + font-style: normal; + text-decoration: none; +} + + +/* Start Content headings Fonts & Colors */ +h1, h1 a, h1 a:link, h1 a:visited, h1 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 28px; + font-style: normal; + font-weight: bold; + text-align: left; + + color: darkblue; +} + +h2, h2 a, h2 a:link, h2 a:visited, h2 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 22px; + font-style: normal; + font-weight: bold; + text-align: left; + color: darkblue; +} + +h3, h3 a, h3 a:link, h3 a:visited, h3 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 18px; + font-style: normal; + font-weight: bold; + text-align: left; + color: darkblue; +} + +h4, h4 a, h4 a:link, h4 a:visited, h4 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 16px; + font-style: normal; + font-weight: bold; + text-align: left; + color: darkblue; +} + +h5, h5 a, h5 a:link, h5 a:visited, h5 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + text-align: left; + color: darkblue; +} + +h6, h6 a, h6 a:link, h6 a:visited, h6 a:hover +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 14px; + font-style: normal; + font-weight: bold; + text-align: left; + color: darkblue; +} +/* Finish Content headings Fonts & Colors */ +/* end PostContent */ + +/* begin PostBullets */ +/* Start Content list */ +ol, ul +{ + color: #3F4139; + margin:1em 0 1em 2em; + padding:0; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; +} + +li ol, li ul +{ + margin:0.5em 0 0.5em 2em; + padding:0; +} + +li +{ + margin:0.2em 0; + padding:0; +} + +ul +{ + list-style-type: none; +} + +ol +{ + list-style-position:inside; + +} + + + +.art-Post li +{ + padding:0px 0 0px 13px; + line-height:1.2em; +} + +.art-Post ol li, .art-Post ul ol li +{ + background: none; + padding-left:0; +} + +.art-Post ul li, .art-Post ol ul li +{ + background-image: url('/Themes/winter/PostBullets.png'); + background-repeat:no-repeat; + padding-left:13px; +} + + +/* Finish Content list */ +/* end PostBullets */ + +/* begin PostQuote */ +/* Start blockquote */ +blockquote p +{ + color:#10100E; + font-family: Arial, Helvetica, Sans-Serif; + font-style: italic; + font-weight: normal; + text-align: left; +} + +blockquote +{ + border:solid 1px #BBC9A6; + margin:10px 10px 10px 50px; + padding:5px 5px 5px 41px; + background-color:#DBE2D0; + background-image:url('/Themes/winter/PostQuote.png'); + background-position:left top; + background-repeat:no-repeat; +} + + +/* Finish blockuote */ +/* end PostQuote */ + +/* begin Button */ +.art-button-wrapper .art-button +{ + display:inline-block; + width: auto; + outline:none; + border:none; + background:none; + line-height:34px; + margin:0 !important; + padding:0 !important; + overflow: visible; + cursor: default; + text-decoration: none !important; + z-index:0; +} + +.art-button-wrapper +{ + display:inline-block; + position:relative; + height: 34px; + overflow:hidden; + white-space: nowrap; + width: auto; + z-index:0; +} + +.art-button-wrapper .art-button +{ + display:block; + height: 34px; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + white-space: nowrap; + text-align: left; + padding: 0 21px !important; + line-height: 34px; + text-decoration: none !important; + color: #F0F1EF !important; +} + +input, select +{ + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + font-style: normal; + font-weight: normal; +} + +.art-button-wrapper.hover .art-button, .art-button:hover +{ + color: #F3F5EF !important; + text-decoration: none !important; +} + +.art-button-wrapper.active .art-button +{ + color: #F3F9E1 !important; +} + +.art-button-wrapper .l, .art-button-wrapper .r +{ + display:block; + position:absolute; + z-index:-1; + height: 102px; + background-image: url('/Themes/winter/Button.png'); +} + +.art-button-wrapper .l +{ + left:0; + right:11px; +} + +.art-button-wrapper .r +{ + width:411px; + right:0; + clip: rect(auto, auto, auto, 400px); +} + +.art-button-wrapper.hover .l, .art-button-wrapper.hover .r +{ + top: -34px; +} + +.art-button-wrapper.active .l, .art-button-wrapper.active .r +{ + top: -68px; +} + + +/* end Button */ + +/* begin Footer */ +.art-Footer +{ + position:relative; + z-index:0; + overflow:hidden; + width: 974px; + margin: 5px auto 0px auto; +} + +.art-Footer .art-Footer-inner +{ + height:1%; + position: relative; + z-index: 0; + padding: 8px; + text-align: center; +} + +.art-Footer .art-Footer-background +{ + position:absolute; + z-index:-1; + background-repeat:no-repeat; + background-image: url('/Themes/winter/Footer.png'); + width: 974px; + height: 150px; + bottom:0; + left:0; +} + + +.art-rss-tag-icon +{ + position: relative; + display:block; + float:left; + background-image: url('/Themes/winter/rssIcon.png'); + background-position: center right; + background-repeat: no-repeat; + margin: 0 5px 0 0; + height: 25px; + width: 25px; +} + + + + +.art-Footer .art-Footer-text p +{ + margin: 0; +} + +.art-Footer .art-Footer-text +{ + display:inline-block; + color: darkblue; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 11px; +} + +.art-Footer .art-Footer-text a:link +{ + text-decoration: none; + color: #42536C; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-Footer .art-Footer-text a:visited +{ + text-decoration: none; + color: #42536C; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: underline; +} + +.art-Footer .art-Footer-text a:hover +{ + text-decoration: none; + color: darkblue; + font-family: Arial, Helvetica, Sans-Serif; + text-decoration: none; +} +/* end Footer */ + +/* begin PageFooter */ +.art-page-footer, .art-page-footer a, .art-page-footer a:link, .art-page-footer a:visited, .art-page-footer a:hover +{ + font-family:Arial; + font-size:10px; + letter-spacing:normal; + word-spacing:normal; + font-style:normal; + font-weight:normal; + text-decoration:underline; + color:#6B7E4E; +} + +.art-page-footer +{ + margin:1em; + text-align:center; + text-decoration:none; + color:#696D5F; +} +/* end PageFooter */ + +/* begin LayoutCell */ +.art-contentLayout .art-sidebar1 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 218px; +} +/* end LayoutCell */ + +/* begin LayoutCell */ +.art-contentLayout .art-content +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 437px; +} +.art-contentLayout .art-content-sidebar1 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 655px; +} +.art-contentLayout .art-content-sidebar2 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 655px; +} +.art-contentLayout .art-content-wide +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 873px; +} +/* end LayoutCell */ + +/* begin LayoutCell */ +.art-contentLayout .art-sidebar2 +{ + position: relative; + margin: 0; + padding: 0; + border: 0; + float: left; + overflow: hidden; + width: 218px; +} +/* end LayoutCell */ + + diff --git a/Themes/winter/BlockContent-h.png b/Themes/winter/BlockContent-h.png new file mode 100755 index 0000000..095a606 Binary files /dev/null and b/Themes/winter/BlockContent-h.png differ diff --git a/Themes/winter/BlockContent-s.png b/Themes/winter/BlockContent-s.png new file mode 100755 index 0000000..5b2e261 Binary files /dev/null and b/Themes/winter/BlockContent-s.png differ diff --git a/Themes/winter/BlockContent-v.png b/Themes/winter/BlockContent-v.png new file mode 100755 index 0000000..b3805df Binary files /dev/null and b/Themes/winter/BlockContent-v.png differ diff --git a/Themes/winter/BlockContentBullets.png b/Themes/winter/BlockContentBullets.png new file mode 100755 index 0000000..f8fa6e6 Binary files /dev/null and b/Themes/winter/BlockContentBullets.png differ diff --git a/Themes/winter/BlockHeaderIcon.png b/Themes/winter/BlockHeaderIcon.png new file mode 100755 index 0000000..7f72994 Binary files /dev/null and b/Themes/winter/BlockHeaderIcon.png differ diff --git a/Themes/winter/Button.png b/Themes/winter/Button.png new file mode 100755 index 0000000..be2010d Binary files /dev/null and b/Themes/winter/Button.png differ diff --git a/Themes/winter/Footer.png b/Themes/winter/Footer.png new file mode 100755 index 0000000..33d1795 Binary files /dev/null and b/Themes/winter/Footer.png differ diff --git a/Themes/winter/Header.jpg b/Themes/winter/Header.jpg new file mode 100644 index 0000000..2ac000d Binary files /dev/null and b/Themes/winter/Header.jpg differ diff --git a/Themes/winter/Header.xcf b/Themes/winter/Header.xcf new file mode 100644 index 0000000..dac7cf5 Binary files /dev/null and b/Themes/winter/Header.xcf differ diff --git a/Themes/winter/Header1.jpg b/Themes/winter/Header1.jpg new file mode 100644 index 0000000..0d6d616 Binary files /dev/null and b/Themes/winter/Header1.jpg differ diff --git a/Themes/winter/Header2.jpg b/Themes/winter/Header2.jpg new file mode 100644 index 0000000..3982eec Binary files /dev/null and b/Themes/winter/Header2.jpg differ diff --git a/Themes/winter/Header3.jpg b/Themes/winter/Header3.jpg new file mode 100644 index 0000000..d1f0494 Binary files /dev/null and b/Themes/winter/Header3.jpg differ diff --git a/Themes/winter/HeaderMain.jpg b/Themes/winter/HeaderMain.jpg new file mode 100755 index 0000000..a6f00df Binary files /dev/null and b/Themes/winter/HeaderMain.jpg differ diff --git a/Themes/winter/Header_blue.jpg b/Themes/winter/Header_blue.jpg new file mode 100755 index 0000000..570c33d Binary files /dev/null and b/Themes/winter/Header_blue.jpg differ diff --git a/Themes/winter/MenuItem.png b/Themes/winter/MenuItem.png new file mode 100755 index 0000000..ed5ae54 Binary files /dev/null and b/Themes/winter/MenuItem.png differ diff --git a/Themes/winter/Page-BgSimpleGradient.jpg b/Themes/winter/Page-BgSimpleGradient.jpg new file mode 100755 index 0000000..d9f5faf Binary files /dev/null and b/Themes/winter/Page-BgSimpleGradient.jpg differ diff --git a/Themes/winter/PostBullets.png b/Themes/winter/PostBullets.png new file mode 100755 index 0000000..ab64214 Binary files /dev/null and b/Themes/winter/PostBullets.png differ diff --git a/Themes/winter/PostQuote.png b/Themes/winter/PostQuote.png new file mode 100755 index 0000000..b287cd4 Binary files /dev/null and b/Themes/winter/PostQuote.png differ diff --git a/Themes/winter/Sheet-h.png b/Themes/winter/Sheet-h.png new file mode 100755 index 0000000..7efb4fc Binary files /dev/null and b/Themes/winter/Sheet-h.png differ diff --git a/Themes/winter/Sheet-s.png b/Themes/winter/Sheet-s.png new file mode 100755 index 0000000..5d3e425 Binary files /dev/null and b/Themes/winter/Sheet-s.png differ diff --git a/Themes/winter/Sheet-v.png b/Themes/winter/Sheet-v.png new file mode 100755 index 0000000..5bb60e0 Binary files /dev/null and b/Themes/winter/Sheet-v.png differ diff --git a/Themes/winter/adventskranz_kerze_rot.gif b/Themes/winter/adventskranz_kerze_rot.gif new file mode 100644 index 0000000..535ff2c Binary files /dev/null and b/Themes/winter/adventskranz_kerze_rot.gif differ diff --git a/Themes/winter/nav.png b/Themes/winter/nav.png new file mode 100755 index 0000000..5819157 Binary files /dev/null and b/Themes/winter/nav.png differ diff --git a/Themes/winter/rssIcon.png b/Themes/winter/rssIcon.png new file mode 100755 index 0000000..df92704 Binary files /dev/null and b/Themes/winter/rssIcon.png differ diff --git a/Themes/winter/spacer.gif b/Themes/winter/spacer.gif new file mode 100755 index 0000000..1d11fa9 Binary files /dev/null and b/Themes/winter/spacer.gif differ diff --git a/Themes/winter/subitem-bg.png b/Themes/winter/subitem-bg.png new file mode 100755 index 0000000..506b67c Binary files /dev/null and b/Themes/winter/subitem-bg.png differ diff --git a/dfl.css b/dfl.css new file mode 100755 index 0000000..b0d6662 --- /dev/null +++ b/dfl.css @@ -0,0 +1,40 @@ +BODY { + padding:10px; + font-family: Verdana, Arial, Helvetica, sans-serif; + background-color:#FFFFFF; + margin-left:0px; + margin-top:0px; +} + +TABLE { + border: 1px solid black; + background-color: #DAE3F0; +} +TH { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 12px; + background-color: #C5D3E7; + text-align: center; +} +TD { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size:11px; + text-align: right; +} + +A:link { + color:#000099; + text-decoration: none; +} +A:hover { + color:#2F97FF; + text-decoration: underline; +} +A:visited { + color:#000099; + text-decoration: none; +} +A:visited:hover { + color:#2F97FF; + text-decoration: underline; +} \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100755 index 0000000..1cc56a7 Binary files /dev/null and b/favicon.ico differ diff --git a/index.php b/index.php new file mode 100755 index 0000000..3fa5837 --- /dev/null +++ b/index.php @@ -0,0 +1,50 @@ + diff --git a/index_wartung.htm b/index_wartung.htm new file mode 100644 index 0000000..f7234a8 --- /dev/null +++ b/index_wartung.htm @@ -0,0 +1,8 @@ +

Sorry...

+Wegen Wartungsarbeiten kurzzeitig nicht verfuegbar! +

+
+Seite ist vorraussichltich am 29. Nov um 08:00 Uhr wieder erreichbar. +

+
+Danke fuer ihr Verstaendnis! diff --git a/publicdown/ca.crt b/publicdown/ca.crt new file mode 100755 index 0000000..d12815e --- /dev/null +++ b/publicdown/ca.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUjCCArugAwIBAgIJAPvtEmnjXQR/MA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNV +BAYTAkFUMQ4wDAYDVQQIEwVUaXJvbDESMBAGA1UEBxMJSW5uc2JydWNrMQwwCgYD +VQQKEwNIVEwxDzANBgNVBAMTBkhUTCBDQTEoMCYGCSqGSIb3DQEJARYZdnBuQHN0 +dWRlbnRzLmh0bGlubi5hYy5hdDAeFw0xMDA5MTUwNjQ1NTBaFw0yMDA5MTIwNjQ1 +NTBaMHoxCzAJBgNVBAYTAkFUMQ4wDAYDVQQIEwVUaXJvbDESMBAGA1UEBxMJSW5u +c2JydWNrMQwwCgYDVQQKEwNIVEwxDzANBgNVBAMTBkhUTCBDQTEoMCYGCSqGSIb3 +DQEJARYZdnBuQHN0dWRlbnRzLmh0bGlubi5hYy5hdDCBnzANBgkqhkiG9w0BAQEF +AAOBjQAwgYkCgYEAveCxXZmfQRZYnHgT+Z4xQRA2irh+NWDwV2EJ5cqWSsvaeqRS +eMT0hkCI/ZggETKb9bpkx6MJuhyPSi71BXFO68/B7kMuqDR36sbLZnkt19AGtlna +pQVTXUFcKtxRGxp5l2kAkwHDL1orV05X21JBw9D4mXgCIar6EH7pvkWjH70CAwEA +AaOB3zCB3DAdBgNVHQ4EFgQUuHARBJxGiwFZ+q4+9EBYCK+TMk0wgawGA1UdIwSB +pDCBoYAUuHARBJxGiwFZ+q4+9EBYCK+TMk2hfqR8MHoxCzAJBgNVBAYTAkFUMQ4w +DAYDVQQIEwVUaXJvbDESMBAGA1UEBxMJSW5uc2JydWNrMQwwCgYDVQQKEwNIVEwx +DzANBgNVBAMTBkhUTCBDQTEoMCYGCSqGSIb3DQEJARYZdnBuQHN0dWRlbnRzLmh0 +bGlubi5hYy5hdIIJAPvtEmnjXQR/MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF +BQADgYEAnsWa5MABtV8kjwZxuu5UDCJ+Pdwl+7hnnNbRB9Yy2akpiDDOJDO3ua6c +DApvtTXLsp+qS7oyrV7NoTiFN6vPRb0YYrRoGOPDbnUeoOerb3NF0R51HTi+NzgO +8BorQ9ys2atrfQTGJLUHGBhPuxuGiFJ0+Ugx7YODlSiCL5Bzero= +-----END CERTIFICATE----- diff --git a/publicdown/certinstall.sh b/publicdown/certinstall.sh new file mode 100755 index 0000000..6c8cfbe --- /dev/null +++ b/publicdown/certinstall.sh @@ -0,0 +1,232 @@ +#!/bin/bash + +echo "Config-Installationsprogramm für SchulVPN" + +if [ $USER != "root" ]; +then +echo Root-Rechte benoetigt! +read +exit 0 +fi + + +echo "Geben Sie das Standard-Wireless Interface ein: " +read WLAN +echo "Geben Sie die ESSID an, bei dem OpenVPN nicht verbinden soll: " +read NOVPNESSID +echo "Geben Sie das Interface an, bei dem OpvenVPN nicht verbinden soll: " +read NOVPNINT +echo "Geben Sie Ihren Benutzernamen ein: " +read BENUTZER + +mkdir $HOME/.vpn +mkdir $HOME/.vpn/keys + +##------------------------------------------------------------------------------ +#/etc/NetworkManager/dispatcher.d/02vpn +##------------------------------------------------------------------------------ +echo "#!/bin/bash + +INTERFACE=\$1 +ACTION=\$2 + +ESSID=\$(iwconfig "$WLAN" | grep ESSID | cut -d':' -f2 | sed -e 's/Nickname//g' | sed -e 's/\"//g'| sed -e 's/ //g') + +echo '\$ESSID + \$INTERFACE + \$ACTION' >> /var/log/vpnscript.log + +case \$ACTION in + up) + if [ \$ESSID != \"$NOVPNESSID\" ]; then + if [ \$INTERFACE != \"$NOVPNINT\" ]; then + echo 'starte script' >> /var/log/vpnscript.log + + "$HOME"/.vpn/scriptconn.sh + fi + fi + ;; + + down) + if [ '\$(pidof openvpn)' ]; then + echo 'killall openvpn' >> /var/log/vpnscript.log + killall openvpn + fi + ;; + + pre-up) + ;; + + post-down) + ;; + + *) + echo 'Usage: \$0 {up|down|pre-up|post-down}' + echo 'finish' >> /var/log/vpnscript.log + exit 1 +esac +" > /etc/NetworkManager/dispatcher.d/02vpn +chown root:root /etc/NetworkManager/dispatcher.d/02vpn +chmod +x /etc/NetworkManager/dispatcher.d/02vpn + +##------------------------------------------------------------------------------ +#~/.vpn/scriptconn.sh +##------------------------------------------------------------------------------ + +echo "#!/bin/bash + +echo 'Starte Openvpn' >> /var/log/vpnscript.log +openvpn --config "$HOME"/.vpn/schulvpn.ovpn & + +#sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbindung wird hergestellt!' 4 --display :0 +#echo 'Dialog angezeit - fin' >> /var/log/vpnscript.log + +exit 0 +" > $HOME/.vpn/scriptconn.sh +##------------------------------------------------------------------------------ +#~/.vpn/scriptstate.sh +##------------------------------------------------------------------------------ + +echo "#!/bin/bash + +if [ \$1 = 'connected' ] + then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbunden!' 4 --display :0 + elif [ \$1 = 'disconnected' ] + then sudo -u "$BENUTZER" kdialog --title 'OpenVPN' --passivepopup 'Verbindung getrennt!' 4 --display :0 + else + echo 'fail' +echo 'scriptconn started' >> /var/log/vpnlog.log +fi + +exit 0 +" > $HOME/.vpn/scriptstate.sh + +##------------------------------------------------------------------------------ +#CertCopy +##------------------------------------------------------------------------------ + +cert=$(ls *.key |cut -d "." -f1 |cut -d "/" -f3) +#cert=$(echo $cert | cut -d " " -f1) + +controll="0" + +if [ -z "$cert" ]; +then +echo "Es wurde kein Zertifikat gefunden" +controll="1" +else +echo "Es wurde ein Zertifikat gefunden: "$cert".key" + +cp $cert.key $HOME/.vpn/keys/$cert.key +cp $cert.crt $HOME/.vpn/keys/$cert.crt +cp ca.crt $HOME/.vpn/keys/ca.crt +fi + +if [ $controll == "0" ] +then + +test -e "$HOME/.vpn/keys/$cert.crt" +if [ 1 == $? ]; +then +echo $cert.crt nicht richtig kopiert +controll="1" +fi + + +test -e "$HOME/.vpn/keys/$cert.key" +if [ 1 == $? ]; +then +echo $cert.key nicht richtig kopiert +controll="1" +fi + + +test -e "$HOME/.vpn/keys/ca.crt" +if [ 1 == $? ]; +then +echo ca.crt nicht richtig kopiert +controll="1" +fi + + +if [ 0 == $controll ]; +then +echo "#Konfiguriert by Christoph Haas +#Copyleft CyberLabs 2008-09 +#Veraendern auf EIGENE GEFAHR... + +#Start + +########################################################## +# AENDERUNGEN START +########################################################## +#Zertifikate +ca "$HOME"/.vpn/keys/ca.crt +cert "$HOME"/.vpn/keys/"$cert".crt +key "$HOME"/.vpn/keys/"$cert".key + +########################################################## +# AENDERUNGEN ENDE +######################################################### +#Modus +client + +#IP Modus +float + +#Tunnel Modus/Device +dev tap + +#MTU laenge +tun-mtu 1500 + +#probleme mit windoof clients verhindern +;fragment 1500 #udp only +mssfix + +#LAN Adapter Name (optional^^) +;dev-node my-tap + +#Protokoll fuern Tunnel (in da schule tcp) +proto tcp-client + +#Pushs vom Server abarbeiten +pull + +#Server IP / PORT +remote 10.10.63.60 1194 + +#Server COMMON Name +#tls-remote VPNServer + +#Authentifizierung/Encryption +;auth SHA1 +cipher aes-256-cbc + +#Adress bind verhindern +nobind + +#Komprimierung +comp-lzo + +#LINUX/UNIX only +;persist-key +;persist-tun + +script-security 2 + +# eventuelle kde4 integration +;route-up '"$HOME"/.vpn/scriptstate.sh connected' +;down '"$HOME"/.vpn/scriptstate.sh disconnected' + +#Ende +" > $HOME/.vpn/schulvpn.ovpn +chmod +x $HOME/.vpn/* +echo SchulVPN ist jetzt verwendbar! +read +exit 0 +else +echo "Überprüfen Sie, ob das zip paket richtig entpackt wurde!" +echo "Führen Sie anschließend das Setup nocheinmal aus!" +read +exit 1 +fi +fi diff --git a/publicdown/openvpn-2.2-beta3-install.exe b/publicdown/openvpn-2.2-beta3-install.exe new file mode 100755 index 0000000..8d00737 Binary files /dev/null and b/publicdown/openvpn-2.2-beta3-install.exe differ diff --git a/publicdown/readme.txt b/publicdown/readme.txt new file mode 100755 index 0000000..01631ae --- /dev/null +++ b/publicdown/readme.txt @@ -0,0 +1,16 @@ +LINUX: +einfach: + chmod +x certinstall.sh // Script ausfuehrbar machen + sudo ./certinstall.sh // Installation starten +ausfuehren. + +WINDOWS: +EXE-Ausführen +Alle Keyfiles ("number".key, "number".crt, ca.crt) ins (evt zuvor angelegte) "keys" Directory im "SchulVPN\config\" Ordner kopieren. (Keys liegen dann zb. unter "C:/Programme/SchulVPN/config/keys/") +Anschließend die schulvpn.ovpn nach "SchulVPN/config" kopieren und darin die Pfade und Nummern anpassen. + +Bsp ordnerstruktur: +"C:/Programme/SchulVPN/config/schulvpn.ovpn" +"C:/Programme/SchulVPN/config/keys/01.crt" +"C:/Programme/SchulVPN/config/keys/01.key" +"C:/Programme/SchulVPN/config/keys/ca.crt" diff --git a/publicdown/schulvpn.ovpn b/publicdown/schulvpn.ovpn new file mode 100755 index 0000000..b63e97f --- /dev/null +++ b/publicdown/schulvpn.ovpn @@ -0,0 +1,71 @@ +#Konfiguriert by Christoph Haas +#Copyleft CyberLabs 2008-10 +#Veraendern auf EIGENE GEFAHR... + +#Start + +########################################################## +# AENDERUNGEN START +########################################################## +#Zertifikate (evt pfad anpassen) +ca "/pfad/zur/config/ca.crt" # pfad anpassen! +cert "/pfad/zur/config/muster.crt" # pfad anpassen! & muster zu nummer aendern! +key "/pfad/zur/config/muster.key" # pfad anpassen! & muster zu nummer aendern! + +# Im Falle von Windows Doppelbackslash verwenden +# bsp C:\\Programme\\...\\OpenVPN\\config\\muster.crt +########################################################## +# AENDERUNGEN ENDE +######################################################### +#Modus +client + +#IP Modus +float + +#Tunnel Modus/Device +dev tap + +#MTU laenge +tun-mtu 1500 + +#probleme mit windoof clients verhindern +;fragment 1500 #udp only +mssfix + +#LAN Adapter Name (optional^^) +;dev-node my-tap + +#Protokoll fuern Tunnel (in da schule tcp) +proto tcp-client + +#Pushs vom Server abarbeiten +pull + +#Server IP / PORT +remote 10.10.63.60 1194 + +#Server COMMON Name +#tls-remote VPNServer + +#Authentifizierung/Encryption +;auth SHA1 +cipher aes-256-cbc + +#Adress bind verhindern +nobind + +#Komprimierung +comp-lzo + +#LINUX/UNIX only +;persist-key +;persist-tun + +script-security 2 + +# kde4 notification +# route-up "/home/christoph/.vpn/scriptstate.sh connected" +# down "/home/christoph/.vpn/scriptstate.sh disconnected" + +#Ende diff --git a/robots.txt b/robots.txt new file mode 100755 index 0000000..70c2374 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/svnstatements.txt b/svnstatements.txt new file mode 100644 index 0000000..d249573 --- /dev/null +++ b/svnstatements.txt @@ -0,0 +1,5 @@ +Add all unversioned/new files: svn status |grep '\?' |awk '{print $2}'| xargs svn add +Delete all removed files: svn st | grep '^!' | awk '{print $2}' | xargs svn delete --force +Commit: svn commit -m "this is a comment..." +Update: svn update +Status: svn status