commit 51abb44f2202d13348d5c190ef61eb6d2b7115fd
Author: dankert <devnull@localhost>
Date: Sat, 21 Mar 2015 00:35:28 +0100
Erste Version von RATISP, dem einfachen ISP-Konfigurations-Panel.
Diffstat:
6 files changed, 157 insertions(+), 0 deletions(-)
diff --git a/footer.php b/footer.php
@@ -0,0 +1,2 @@
+</body>
+</html>
diff --git a/header.php b/header.php
@@ -0,0 +1,30 @@
+<html>
+<body>
+<h3></h3>
+<?php
+if ( @$_SESSION['user'] )
+{
+ echo $_SESSION['user'];
+ ?><a href="logout.php">Logout</a><?php
+} else {
+?><a href="login.php">Not logged in</a><?php
+}
+?>
+
+<?php
+
+$config = parse_ini_file('config.ini.php',true);
+
+define('HTTP_POST',$_SERVER['REQUEST_METHOD']=='POST');
+define('HTTP_GET' ,!HTTP_POST );
+
+define('LANG_DNS_RECORD','DNS Record');
+define('LANG_MAILBOX','Mailbox');
+
+$dbConfig = $config['database'];
+$db = new mysqli($dbConfig['host'], $dbConfig['user'],$dbConfig['password'], $dbConfig['database']);
+
+if ( $db->connect_errno )
+ die("Failed to connect to MySQL: (" . $db->connect_errno . ") " . $db->connect_error);
+
+?>+
\ No newline at end of file
diff --git a/index.php b/index.php
@@ -0,0 +1,30 @@
+<?php
+define('OK', true);
+
+define('USER_TYPE_ADMIN',1);
+define('USER_TYPE_DOMAIN_ADMIN',2);
+define('USER_TYPE_MAIL_ACCOUNT',3);
+
+session_name('ratisp');
+session_start();
+
+if ( !@$_SESSION['user'] )
+ require('login.php');
+else
+ switch( $_SESSION['user_type'] )
+ {
+ case USER_TYPE_ADMIN:
+ require('domain_list.php');
+ break;
+ case USER_TYPE_DOMAIN_ADMIN:
+ require('domain.php');
+ break;
+ case USER_TYPE_MAIL_ACCOUNT:
+ require('mailbox.php');
+ break;
+ default:
+ exit();
+ }
+
+
+?>+
\ No newline at end of file
diff --git a/login.php b/login.php
@@ -0,0 +1,35 @@
+<?php
+
+require( 'header.php' );
+
+//if ( !OK ) die(':-O');
+
+if ( HTTP_POST )
+{
+ $stmt = $db->prepare("SELECT local_part,domain_name FROM mailbox WHERE local_part = ? AND password=MD5(?)");
+ $stmt->bind_param('ss',$_POST['username'], $_POST['password'] );
+ $stmt->execute();
+ $stmt->bind_result($localPart,$domain);
+ if ( $stmt->fetch() )
+ {
+ echo "Login";
+ print_r($localPart);
+ $_SESSION['user' ] = $localPart;
+ $_SESSION['domain'] = $domain;
+ $_SESSION['user_type'] = USER_TYPE_ADMIN;
+ }
+ else
+ {
+ ?><div class="message">Login failed</div><?php
+ }
+ //require('index.php');
+ exit();
+}
+require( 'menu.php' );
+
+?>
+<form method="post">
+<input type="text" name="username" />
+<input type="password" name="password" />
+<input type="submit">
+</form>+
\ No newline at end of file
diff --git a/logout.php b/logout.php
@@ -0,0 +1,13 @@
+<?php
+
+require( 'header.php' );
+
+if ( !OK ) die(':-O');
+
+unset($_SESSION['user' ]);
+unset($_SESSION['domain']);
+unset($_SESSION['user_type']);
+
+
+include('login.php');
+?>
diff --git a/menu.php b/menu.php
@@ -0,0 +1,43 @@
+Menu
+<ul>
+<?php
+
+// if ( !OK ) die(':-O');
+
+$stmt = $db->prepare("SELECT name FROM domain");
+$stmtRecords = $db->prepare("SELECT record_name FROM domain_record WHERE domain_name = ?");
+$stmtMailbox = $db->prepare("SELECT local_part, domain_name FROM mailbox WHERE domain_name = ?");
+
+$stmt->bind_result($domainName);
+$stmtRecords->bind_param('s',$domain);
+$stmtMailbox->bind_param('s',$domain);
+$stmt->execute();
+while( $stmt->fetch() )
+{
+ echo '<li>'.$domainName;
+
+ echo '<ul><li>'.LANG_DNS_RECORD.'<ul>';
+ $stmtRecords->execute();
+ $stmtRecords->bind_result($record);
+ while( $stmt->fetch() )
+ {
+ echo '<li>'.$record;
+ echo '</li>';
+ }
+ echo '</ul></li></ul>';
+
+ echo '<ul><li>'.LANG_MAILBOX.'<ul>';
+ $stmtMailbox->bind_result($mailboxLocal,$mailboxDomain);
+ $stmtMailbox->execute();
+ while( $stmt->fetch() )
+ {
+ echo '<li>'.$mailboxLocal.'@'.$mailboxDomain;
+ echo '</li>';
+ }
+ echo '</ul></li></ul>';
+
+ echo '</li>';
+}
+
+?>
+</ul>+
\ No newline at end of file