generated from jric11/baseProject
added new bootstrap css and js for login and create account
This commit is contained in:
@@ -164,29 +164,6 @@ class Base {
|
||||
exit();
|
||||
}
|
||||
|
||||
// =========================
|
||||
// Return a decrypted string
|
||||
// =========================
|
||||
|
||||
protected function decrypt($encrypted = "", $key = "") {
|
||||
|
||||
$key = (empty($key)) ? __CLASS__ : $key;
|
||||
|
||||
$decoded = base64_decode($encrypted);
|
||||
$ivlen = openssl_cipher_iv_length($cipher = "AES-128-CBC");
|
||||
$iv = substr($decoded, 0, $ivlen);
|
||||
$hmac = substr($decoded, $ivlen, $sha2len = 32);
|
||||
$raw = substr($decoded, $ivlen + $sha2len);
|
||||
$decrypted = openssl_decrypt($raw, $cipher, $key, $options = OPENSSL_RAW_DATA, $iv);
|
||||
$calcmac = hash_hmac("sha256", $raw, $key, $as_binary = true);
|
||||
|
||||
if (($hmac === false) or ($calcmac === false)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return (hash_equals($hmac, $calcmac)) ? $decrypted : "";
|
||||
}
|
||||
|
||||
// ======================
|
||||
// Display a Content Page
|
||||
// ======================
|
||||
@@ -207,9 +184,6 @@ class Base {
|
||||
|
||||
public function displayError($error_number = "", $error_message = "", $error_file = "", $error_line = "") {
|
||||
|
||||
echo $error_message;
|
||||
die();
|
||||
|
||||
if (error_reporting() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ class SignIn extends Base {
|
||||
$XSLParms["BTN_SUBMIT"] = "main.php?action=SignIn.login&step=authenticate";
|
||||
$XSLParms["INVALID_SIGNIN"] = "FALSE";
|
||||
|
||||
echo $this->applyXSL("", $this->getXSL("signIn"), $XSLParms);
|
||||
echo $this->applyXSL("", $this->getXSL("login"), $XSLParms);
|
||||
exit();
|
||||
|
||||
break;
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
// =============
|
||||
// Sign In Class
|
||||
// =============
|
||||
|
||||
class SignUp {
|
||||
|
||||
// ===============================
|
||||
// __construct : Class Constructor
|
||||
// ===============================
|
||||
|
||||
public function __construct() {
|
||||
|
||||
}
|
||||
|
||||
// ==============
|
||||
// Create Account
|
||||
// ==============
|
||||
|
||||
public function createAccount() {
|
||||
|
||||
$step = filter_input(INPUT_POST, "step") ?: "prompt";
|
||||
|
||||
switch ($step) {
|
||||
|
||||
case "prompt":
|
||||
|
||||
$XSLParms["BTN_SUBMIT"] = "main.php?action=SignUp.createAccount&step=create";
|
||||
|
||||
echo $this->applyXSL("", $this->getXSL("createAccount"), $XSLParms);
|
||||
exit();
|
||||
|
||||
break;
|
||||
|
||||
case "create":
|
||||
|
||||
$user_name = trim(filter_input(INPUT_POST, "user_name") ?: "");
|
||||
$user_password = filter_input(INPUT_POST, "user_password") ?: "";
|
||||
|
||||
$XSLParms["BTN_SUBMIT"] = "main.php?action=SignIn.login&step=authenticate";
|
||||
$XSLParms["INVALID_SIGNIN"] = "TRUE";
|
||||
|
||||
$user = (new Users())->getUserByUserName($user_name);
|
||||
|
||||
if ($user->count() == 0) {
|
||||
echo $this->applyXSL("", $this->getXSL("signIn"), $XSLParms);
|
||||
die();
|
||||
}
|
||||
|
||||
if ((string) $user->record->user_status !== 'active') {
|
||||
echo $this->applyXSL("", $this->getXSL("signIn"), $XSLParms);
|
||||
die();
|
||||
}
|
||||
|
||||
$stored_hashed_password = $user->record->user_password_hash;
|
||||
|
||||
if (!password_verify($user_password, $stored_hashed_password)) {
|
||||
|
||||
echo $this->applyXSL("", $this->getXSL("signIn"), $XSLParms);
|
||||
die();
|
||||
}
|
||||
|
||||
session_regenerate_id(true);
|
||||
|
||||
$_SESSION[self::USER_AUTHENTICATED] = true;
|
||||
$_SESSION[self::USER_SERIAL] = (int) $user->record->user_serial;
|
||||
$_SESSION[self::USER_NAME] = (string) $user->record->user_name;
|
||||
$_SESSION[self::USER_FULL_NAME] = (string) $user->record->user_full_name;
|
||||
$_SESSION[self::USER_EMAIL] = (string) $user->record->user_email;
|
||||
$_SESSION[self::USER_ROLE] = (string) $user->record->user_role;
|
||||
|
||||
$this->current_user_serial = $_SESSION[self::USER_SERIAL] ?? 0;
|
||||
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
|
||||
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
|
||||
|
||||
$system_admins = $this->getSettings()->xpath("//SystemAdministrator");
|
||||
|
||||
foreach ($system_admins as $admin) {
|
||||
if ((string) $admin === $user_name) {
|
||||
$_SESSION[self::USER_ROLE] = "System Administrator";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
(new Journal())->journalEntry("{$_SESSION[self::USER_NAME]} logged in ({$_SESSION[self::USER_ROLE]}).");
|
||||
|
||||
(new Users())->updateLogin();
|
||||
|
||||
header("Location: ./");
|
||||
exit();
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
// User NOT Validated.
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user