From cf58c1bf8213221545e9ec55b651189117fdfc17 Mon Sep 17 00:00:00 2001 From: Nils Schwabe Date: Mon, 19 May 2014 16:54:33 +0200 Subject: Add login functionallity --- .gitignore | 1 + management-interface/api/models/Main.php | 17 -------- management-interface/api/models/Master.php | 63 ++++++++++++++++++++++++++++ management-interface/api/models/Util.php | 11 +++++ management-interface/config/.global.cfg.swp | Bin 12288 -> 0 bytes management-interface/config/global.cfg | 10 +++++ management-interface/css/custom.css | 57 +++++++++++++++++++++++++ management-interface/index.php | 42 +++++++++++-------- management-interface/template/footer.php | 3 ++ management-interface/template/header.php | 4 +- management-interface/template/message.php | 5 +++ management-interface/views/home.htm | 2 +- management-interface/views/login.htm | 22 ++++++++++ management-interface/views/menu.php | 19 +++++++-- management-interface/views/template.htm | 8 ++++ 15 files changed, 223 insertions(+), 41 deletions(-) delete mode 100644 management-interface/api/models/Main.php create mode 100644 management-interface/api/models/Master.php create mode 100644 management-interface/api/models/Util.php delete mode 100644 management-interface/config/.global.cfg.swp create mode 100644 management-interface/css/custom.css create mode 100644 management-interface/template/message.php create mode 100644 management-interface/views/login.htm create mode 100644 management-interface/views/template.htm diff --git a/.gitignore b/.gitignore index f621fef..cf08934 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /config/ftp.jks /config/ldap.jks /config/servers.jks +/management-interface/tmp diff --git a/management-interface/api/models/Main.php b/management-interface/api/models/Main.php deleted file mode 100644 index cca7542..0000000 --- a/management-interface/api/models/Main.php +++ /dev/null @@ -1,17 +0,0 @@ -render('views/index.php'); - } - -} - -?> diff --git a/management-interface/api/models/Master.php b/management-interface/api/models/Master.php new file mode 100644 index 0000000..4ee2943 --- /dev/null +++ b/management-interface/api/models/Master.php @@ -0,0 +1,63 @@ +view = new View; + } + + public function parse($f3, $params) { + $f3->set('_title', $f3->get('title')); + + // set view if item exists + if (in_array($params['m'], $f3->get('item'))) { + if (!file_exists('views/' . $params['m'] . '.htm')) { + // if file does not exists, create a template + copy('views/template.htm', 'views/' . $params['m'] . '.htm'); + } + $f3->set('_module', $params['m']); + } elseif ($params['m'] === 'login') { + $f3->set('_module', 'login'); + } else { + $f3->set('_module', 'home'); + } + + echo $this->view->render('template/header.php'); + + echo $this->view->render('views/menu.php'); + + if (!empty($f3->get('message'))) { + echo $this->view->render('template/message.php'); + } + + echo Template::instance()->render('views/' . $f3->get('_module') . '.htm'); + + echo $this->view->render('template/footer.php'); + + } + + public function dologin($f3, $username, $password) { + if (isset($f3->get('user')[$username]) && $f3->get('user')[$username] == sha1($password)) { + $_SESSION['username'] = $username; + $f3->set('loggedin', (isset($f3->get('SESSION')['username']))?true:false); + $f3->set('username', (isset($f3->get('SESSION')['username']))?$f3->get('SESSION')['username']:'Guest'); + $this->parse($f3, array('m' => 'home')); + } else { + $f3->set('message', 'Login invalid.'); + $this->parse($f3, array('m' => 'login')); + } + } + + public function dologout($f3) { + $_SESSION = array(); + $f3->set('message', 'Logout successful'); + $f3->set('loggedin', (isset($f3->get('SESSION')['username']))?true:false); + $f3->set('username', (isset($f3->get('SESSION')['username']))?$f3->get('SESSION')['username']:'Guest'); + $this->parse($f3, array('m' => 'login')); + } + +} + +?> diff --git a/management-interface/api/models/Util.php b/management-interface/api/models/Util.php new file mode 100644 index 0000000..d97cfe2 --- /dev/null +++ b/management-interface/api/models/Util.php @@ -0,0 +1,11 @@ + diff --git a/management-interface/config/.global.cfg.swp b/management-interface/config/.global.cfg.swp deleted file mode 100644 index d8973b4..0000000 Binary files a/management-interface/config/.global.cfg.swp and /dev/null differ diff --git a/management-interface/config/global.cfg b/management-interface/config/global.cfg index a339e2e..eede8c9 100644 --- a/management-interface/config/global.cfg +++ b/management-interface/config/global.cfg @@ -3,3 +3,13 @@ item[0]="home" item[1]="users" item[2]="about" +;item[3]="test" + +; title +title="Masterserver Management" + +;accounts +user["nils"]="f58cf5e7e10f195e21b553096d092c763ed18b0e" + +;hostname +hostname="http://localhost/if/" diff --git a/management-interface/css/custom.css b/management-interface/css/custom.css new file mode 100644 index 0000000..56b22d2 --- /dev/null +++ b/management-interface/css/custom.css @@ -0,0 +1,57 @@ +/* login template fix */ +.form-signin { + max-width: 330px; + padding: 15px; + margin: 0 auto; +} +.form-adduser { + max-width: 600px; + padding: 10px; + margin: 0 auto; +} +.form-signin .form-signin-heading, +.form-signin .checkbox { + margin-bottom: 10px; +} +.form-signin .checkbox { + font-weight: normal; +} +.form-signin .form-control, +.form-adduser .form-control { + position: relative; + font-size: 16px; + height: auto; + padding: 10px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.form-control:focus { + z-index: 2; +} +.form-signin input[type="text"] { + margin-bottom: -1px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} +.form-signin input[type="password"] { + margin-bottom: 10px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +/* static navbar */ +.navbar-static-top { + margin-bottom: 19px; +} + +/* always vertical scrollbars */ +html { + overflow-y: scroll; +} + +/* fixing in danger boxes */ +.bg-danger { + padding: 15px; + text-align: center; +} diff --git a/management-interface/index.php b/management-interface/index.php index 6c4964e..d7d0b62 100644 --- a/management-interface/index.php +++ b/management-interface/index.php @@ -1,10 +1,16 @@ set('DEBUG', 3); -$f3->set('AUTOLOAD', 'api/models'); +$f3->set('AUTOLOAD', 'api/models/'); + +// set defaults +$f3->set('loggedin', (isset($f3->get('SESSION')['username']))?true:false); +$f3->set('username', (isset($f3->get('SESSION')['username']))?$f3->get('SESSION')['username']:'Guest'); +$f3->set('message', ''); $f3->config('config/global.cfg'); @@ -16,27 +22,25 @@ $f3->set('DB', new DB\SQL( )); */ +$f3->route('POST /do/@action', + function($f3, $params) { + $master = new Master; + if ($params['action'] === 'login') { + if (isset($_POST['user']) && isset($_POST['pass'])) { + $master->dologin($f3, $f3->get('POST')['user'], $f3->get('POST')['pass']); + } + } + } +); + $f3->route('GET @module: /@m', function($f3, $params) { - $view = new View; - - // set the title - $f3->set('_title', 'Masterserver Management'); - - // set view if item exists - if (in_array($params['m'], $f3->get('item')) && file_exists('views/' . $params['m'] . '.htm')) { - $f3->set('_module', $params['m']); + $master = new Master; + if ($params['m'] === 'logout') { + $master->dologout($f3); } else { - $f3->set('_module', 'home'); + $master->parse($f3, $params); } - - echo $view->render('template/header.php'); - - echo $view->render('views/menu.php'); - - echo Template::instance()->render('views/' . $f3->get('_module') . '.htm'); - - echo $view->render('template/footer.php'); } ); @@ -46,6 +50,7 @@ $f3->route('GET /', } ); +/* $f3->set('ONERROR', function($f3) { // recursively clear existing output buffers: @@ -53,6 +58,7 @@ $f3->set('ONERROR', echo $f3->get('ERROR.title'); } ); +*/ $f3->run(); diff --git a/management-interface/template/footer.php b/management-interface/template/footer.php index b605728..be0cfea 100644 --- a/management-interface/template/footer.php +++ b/management-interface/template/footer.php @@ -1,2 +1,5 @@ + diff --git a/management-interface/template/header.php b/management-interface/template/header.php index db43469..12ea523 100644 --- a/management-interface/template/header.php +++ b/management-interface/template/header.php @@ -10,10 +10,10 @@ <?php echo $_title ?> - + - + diff --git a/management-interface/views/home.htm b/management-interface/views/home.htm index f9c8ac6..229e427 100644 --- a/management-interface/views/home.htm +++ b/management-interface/views/home.htm @@ -2,7 +2,7 @@

{{ strtoupper(@_module) }}

-

+

Hello {{ @username }}

diff --git a/management-interface/views/login.htm b/management-interface/views/login.htm new file mode 100644 index 0000000..f447cb8 --- /dev/null +++ b/management-interface/views/login.htm @@ -0,0 +1,22 @@ + + +
+
+

Already logged in.

+
+
+
+ +
+ +
+
+
diff --git a/management-interface/views/menu.php b/management-interface/views/menu.php index b6af1be..9ef4068 100644 --- a/management-interface/views/menu.php +++ b/management-interface/views/menu.php @@ -8,7 +8,7 @@ - Project name + diff --git a/management-interface/views/template.htm b/management-interface/views/template.htm new file mode 100644 index 0000000..27affb5 --- /dev/null +++ b/management-interface/views/template.htm @@ -0,0 +1,8 @@ +
+ +
+

{{ strtoupper(@_module) }}

+

Please fill this with content.

+
+ +
-- cgit v1.2.3-55-g7522