Added admin login page

This commit is contained in:
Joshua Perry 2023-01-23 18:34:00 +00:00
parent 09a0367bdc
commit 422c89f80d
6 changed files with 79 additions and 95 deletions

8
jobs/Entity/User.php Normal file
View File

@ -0,0 +1,8 @@
<?php
namespace jobs\Entity;
class User {
public $id;
public $username;
public $password;
public $admin;
}

View File

@ -5,10 +5,12 @@ class Routes implements \CSY2028\Routes {
$catsTable = new \CSY2028\DatabaseTable('category', 'id', '\jobs\Entity\Category'); $catsTable = new \CSY2028\DatabaseTable('category', 'id', '\jobs\Entity\Category');
$jobsTable = new \CSY2028\DatabaseTable('job', 'id', '\jobs\Entity\Job', [$catsTable]); $jobsTable = new \CSY2028\DatabaseTable('job', 'id', '\jobs\Entity\Job', [$catsTable]);
$appsTable = new \CSY2028\DatabaseTable('applicants', 'id', '\jobs\Entity\Applicant', [$jobsTable]); $appsTable = new \CSY2028\DatabaseTable('applicants', 'id', '\jobs\Entity\Applicant', [$jobsTable]);
$usersTable = new \CSY2028\DatabaseTable('users', 'id', '\jobs\Entity\User');
$controllers = []; $controllers = [];
//TODO: Add Controllers //TODO: Add Controllers
$controllers['jobs'] = new \jobs\controllers\Jobs($jobsTable, $catsTable, $appsTable); $controllers['jobs'] = new \jobs\controllers\Jobs($jobsTable, $catsTable, $appsTable);
$controllers['admin'] = new \jobs\controllers\Admin($jobsTable, $catsTable, $appsTable, $usersTable);
if (array_key_exists($name, $controllers)) { if (array_key_exists($name, $controllers)) {
return $controllers[$name]; return $controllers[$name];
@ -27,11 +29,11 @@ class Routes implements \CSY2028\Routes {
\session_start(); \session_start();
$loginRoutes = []; $loginRoutes = [];
//TODO: Add login routes //TODO: Add login routes
//$loginRoutes['job/edit'] = true; //$loginRoutes['admin/'] = true;
$requiresLogin = $loginRoutes[$route] ?? false; $requiresLogin = $loginRoutes[$route] ?? false;
if ($requiresLogin && !\isset($_SESSION['loggedin'])) { if ($requiresLogin && !\isset($_SESSION['loggedin'])) {
\header('location: /user/login'); \header('location: /admin/');
exit(); exit();
} }

View File

@ -0,0 +1,53 @@
<?php
namespace jobs\controllers;
class Admin {
private $jobsTable;
private $catsTable;
private $appsTable;
private $usersTable;
private $vars = [];
public function __construct(\CSY2028\DatabaseTable $jobsTable, \CSY2028\DatabaseTable $catsTable, \CSY2028\DatabaseTable $appsTable, \CSY2028\DatabaseTable $usersTable) {
$this->jobsTable = $jobsTable;
$this->catsTable = $catsTable;
$this->appsTable = $appsTable;
$this->usersTable = $usersTable;
$this->vars['cats'] = $this->catsTable->findAll();
}
public function home() {
return ['template' => 'admin.html.php',
'title' => 'Jo\'s Jobs- Login',
'vars' => $this->vars];
}
public function homeSubmit() {
if ($_POST['username'] == '' && $_POST['password'] = '') {
$user = $this->usersTable->find("username", $_POST['username']);
if (password_verify($_POST['password'], $user->password)) {
$_SESSION['loggedin'] = true;
$this->vars['response'] = 'You are now logged in';
}
else {
unset($_SESSION['loggedin']);
$this->vars['response'] = 'Login Unsuccessful';
}
}
else {
$this->vars['response'] = '';
if ($_POST['username'] == '') {
$this->vars['response'] .= "No Username was entered \n";
}
if ($_POST['password'] == '') {
$this->vars['response'] .= "No Username was entered \n";
}
$this->vars['response'] .= 'Login Unsuccessful';
}
return ['template' => 'response.html.php',
'title' => 'Jo\'s Jobs- Login',
'vars' => $this->vars
];
}
}

View File

@ -1,92 +0,0 @@
<?php
$pdo = new PDO('mysql:dbname=job;host=mysql', 'student', 'student');
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/styles.css"/>
<title>Jo's Jobs - Admin Home</title>
</head>
<body>
<header>
<section>
<aside>
<h3>Office Hours:</h3>
<p>Mon-Fri: 09:00-17:30</p>
<p>Sat: 09:00-17:00</p>
<p>Sun: Closed</p>
</aside>
<h1>Jo's Jobs</h1>
</section>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li>Jobs
<ul>
<li><a href="/it.php">IT</a></li>
<li><a href="/hr.php">Human Resources</a></li>
<li><a href="/sales.php">Sales</a></li>
</ul>
</li>
<li><a href="/about.html">About Us</a></li>
</ul>
</nav>
<img src="/images/randombanner.php"/>
<main class="sidebar">
<?php
if (isset($_POST['submit'])) {
if ($_POST['password'] == 'letmein') {
$_SESSION['loggedin'] = true;
}
}
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
?>
<section class="left">
<ul>
<li><a href="jobs.php">Jobs</a></li>
<li><a href="categories.php">Categories</a></li>
</ul>
</section>
<section class="right">
<h2>You are now logged in</h2>
</section>
<?php
}
else {
?>
<h2>Log in</h2>
<form action="index.php" method="post" style="padding: 40px">
<label>Enter Password</label>
<input type="password" name="password" />
<input type="submit" name="submit" value="Log In" />
</form>
<?php
}
?>
</main>
<footer>
&copy; Jo's Jobs 2017
</footer>
</body>
</html>

13
templates/admin.html.php Normal file
View File

@ -0,0 +1,13 @@
<main class="home">
<h2>Log in</h2>
<form action="/admin/" method="post" style="padding: 40px">
<label>Enter Username</label>
<input type="username" name="username" />
<label>Enter Password</label>
<input type="password" name="password" />
<input type="submit" name="submit" value="Log In" />
</form>
</main>

View File

@ -1,3 +1,3 @@
<main class="home"> <main class="home">
<p><?=$response?></p> <p><?=nl2br($response)?></p>
</main> </main>