diff --git a/protected/src/Classes/Logic/IndexAuthContainer.php b/protected/src/Classes/Logic/IndexAuthContainer.php
index bb01b02..a7b35ab 100644
--- a/protected/src/Classes/Logic/IndexAuthContainer.php
+++ b/protected/src/Classes/Logic/IndexAuthContainer.php
@@ -16,7 +16,7 @@ namespace Project\Classes\Logic;
*/
class IndexAuthContainer
{
- public static function Logins(): string
+ public static function Logins(object $local): void
{
$auth = '
';
$loggedin = $_SESSION['email'] ?? false;
@@ -27,6 +27,8 @@ class IndexAuthContainer
$auth .= '
Logout';
}
$auth .= '
';
- return $auth;
+
+ $local->view->set("Auth", $auth);
+ $local->html->addCss("css/buttons.css");
}
}
diff --git a/protected/src/Classes/Logic/IndexLogin.php b/protected/src/Classes/Logic/IndexLogin.php
new file mode 100644
index 0000000..88a7769
--- /dev/null
+++ b/protected/src/Classes/Logic/IndexLogin.php
@@ -0,0 +1,86 @@
+ 600) { // 600 seconds = 10 minutes
+ return false;
+ }
+
+
+ // $dbHash = password_hash($pwd, PASSWORD_ARGON2ID);
+
+ $allow = password_verify($pwd, $dbHash);
+ if (!$allow) {
+ return false;
+ }
+ return true;
+ }
+
+ public static function doLogin(): bool
+ {
+ $login = $_POST['login'] ?? false;
+ if ($login === false) {
+ $token = UuidV7::generateUuidV7();
+ $_SESSION['token'] = $token;
+ return false; // IE Show Login
+ }
+
+ $pdo = Configure::get('db');
+ $model = new HomeLoginModel($pdo);
+
+ $dbHash = $model->getLogin($login);
+ $allow = self::allowLogin($dbHash);
+ if ($allow) {
+
+ $level = $_SESSION['accessLevel'] ?? 0;
+ $user = match ($level) {
+ 1 => "User",
+ 2 => "Moderator",
+ 3 => "Admin",
+ default => "Error",
+ };
+
+ if ($user === "User") {
+ header("Location: /App/Home/Index.html");
+ }
+ if ($user === "Admin") {
+ header("Location: /Admin/Home/Index.html");
+ }
+ }
+ return $allow;
+ }
+}
diff --git a/protected/src/Classes/Models/HomeLoginModel.php b/protected/src/Classes/Models/HomeLoginModel.php
new file mode 100644
index 0000000..cf32d91
--- /dev/null
+++ b/protected/src/Classes/Models/HomeLoginModel.php
@@ -0,0 +1,51 @@
+pdo->prepare($sqlEmail);
+ $stmtEmail->execute([$emailAddress]);
+ $email_row = $stmtEmail->fetch(\PDO::FETCH_ASSOC);
+
+ $sqlUser = "SELECT pwd, access_level FROM users WHERE email_id=? LIMIT 1";
+ $stmtUser = $this->pdo->prepare($sqlEmail);
+ $stmtUser->execute([$emailAddress]);
+ $user_row = $stmtUser->fetch(\PDO::FETCH_ASSOC);
+
+ $accessLevel = $user_row['access_level'] ?? 0;
+ $_SESSION['accessLevel'] = $accessLevel;
+
+ $name = $email_row['first_name'] ?? "";
+ $_SESSION['first_name'] = $name;
+
+ return $user_row['pwd'];
+ } catch (\PDOException $e) {
+ echo $e->getMessage();
+ }
+ return "";
+ }
+}
diff --git a/protected/src/Configs/on_HTML.php b/protected/src/Configs/on_HTML.php
index 1ab1a2a..737086e 100644
--- a/protected/src/Configs/on_HTML.php
+++ b/protected/src/Configs/on_HTML.php
@@ -12,9 +12,9 @@ use IOcornerstone\Framework\Configure;
Configure::set('html', array(
'author' => 'Robert Strutts',
- 'title' => 'StickingToGoal.com',
+ 'title' => 'StickingToGoals.com',
// 'javascript' => ['js/analytics.js'=>'project''],
- 'css' => ['css/index.css'=>'project'],
+ 'css' => ['css/breadcrumbs.css'=>'project'],
'robots' => 'noindex',
'keywords' => 'goal, setting',
'description' => 'Goals site',
diff --git a/protected/src/Controllers/App/HomeController.php b/protected/src/Controllers/App/HomeController.php
index b2357e0..32594ad 100644
--- a/protected/src/Controllers/App/HomeController.php
+++ b/protected/src/Controllers/App/HomeController.php
@@ -14,6 +14,7 @@ use Project\Classes\{
BaseController,
Logic\HomeSearch,
Logic\IndexAuthContainer,
+ Logic\IndexLogin,
Models\HomeFetchModel
};
use IOcornerstone\Framework\{
@@ -35,6 +36,9 @@ class HomeController extends BaseController
{
Security::initSessions();
+ $this->html->setActiveCrumb("Main Page");
+ $this->html->addCss("css/index.css");
+
$this->html->addToJavascript("function filterTag(tag){ \r\n window.location='?tag='+encodeURIComponent(tag); \r\n }");
$pdo = Configure::get('db');
@@ -50,8 +54,7 @@ class HomeController extends BaseController
$goals = $model->GetGoals($inputs);
$this->view->set("Goals", $goals);
- $auth = IndexAuthContainer::Logins();
- $this->view->set("Auth", $auth);
+ IndexAuthContainer::Logins($this);
$uid = HomeSearch::MyUUID();
$this->view->set("Uid", $uid);
@@ -66,22 +69,51 @@ class HomeController extends BaseController
public function Register(): ResponseInterface
{
+ $this->html->setActiveCrumb("Registion");
+ $this->html->setBreadcrumbs(['/App/Home/Index.html'=>"Main Page"]);
+
+ $this->html->addCss("css/registration.css");
+ $this->html->addJS("js/registration.js");
+ $this->html->setTitleAndHeader("Register");
+ $this->view->set('html', $this->html);
+
+ $this->view->setPhpTemplate('main');
$this->view->setView("App/Reg/Form");
$this->view->setView("App/Home/TOS");
$myView = $this->view->fetch($this);
$myView .= "