aboutsummaryrefslogtreecommitdiff
path: root/login.php
diff options
context:
space:
mode:
Diffstat (limited to 'login.php')
-rw-r--r--login.php89
1 files changed, 89 insertions, 0 deletions
diff --git a/login.php b/login.php
new file mode 100644
index 0000000..e60b7ed
--- /dev/null
+++ b/login.php
@@ -0,0 +1,89 @@
+<?php
+/**
+ * Check if the user is logged in
+ *
+ * This file should be required by all sensitive PHP scripts. It verifies that
+ * the client has been logged in, and if not, displays a login page.
+ *
+ * See also login-ajax.php, which is specific for files that are loaded through
+ * Ajax (and typically require a json response).
+ *
+ * @author Camil Staps
+ *
+ * BusinessAdmin: administrative software for small companies
+ * Copyright (C) 2015 Camil Staps (ViviSoft)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+require_once('./conf.php');
+
+if (isset($_GET['logout'])) {
+ $_SESSION['login'] = false;
+ header('Location: ' . constants::url_external);
+ die();
+}
+
+if (!isset($_SESSION['login']) || $_SESSION['login'] === false) {
+ if (isset($_POST['username'])) {
+ $users = BusinessAdmin::getUsers($_pdo, ['`username`=?'], [$_POST['username']]);
+ if (count($users) == 0) {
+ $_msg = "No user {$_POST['username']} found.<br/>";
+ } else {
+ $user = array_pop($users);
+ if ($user->verifyPassword($_POST['password'])) {
+ $_SESSION['login'] = $user->getId();
+ $_user = $user;
+ return;
+ } else {
+ $_msg = "Password incorrect.<br/>";
+ }
+ }
+ }
+
+ include('./header.php');
+?>
+ <div class="container">
+ <div class="row">
+ <div class="col-md-4 col-md-offset-4">
+ <div class="login-panel panel panel-default">
+ <div class="panel-heading">
+ <h3 class="panel-title">Login<i class="fa fa-lock fa-fw fa-lg pull-right"></i></h3>
+ </div>
+ <div class="panel-body">
+ <?php
+ if (isset($_msg)) {
+ echo "<div class='form-group alert alert-danger'>$_msg</div>";
+ }
+ ?>
+ <form action="" method="post">
+ <div class="form-group">
+ <input class="form-control" type="text" name="username" placeholder="Username" autofocus="autofocus"/>
+ </div>
+ <div class="form-group">
+ <input class="form-control" type="password" name="password" placeholder="Password"/>
+ </div>
+ <input type="submit" class="btn btn-lg btn-success btn-block" value="login"/>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <?php
+ include('./footer.php');
+ die();
+}
+
+$_user = new user($_pdo, $_SESSION['login']);