modified users table, class and sign in class

This commit is contained in:
2026-08-09 20:00:09 -04:00
parent 2d96a7b6e5
commit e2cceaa734
24 changed files with 131 additions and 154 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ class Alerts extends Base {
// Variables.
private $current_user_id = "";
private $current_user_name = "";
private $current_user_email = "";
private $pagination_size = 20;
@@ -24,7 +24,7 @@ class Alerts extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
+3 -2
View File
@@ -24,9 +24,9 @@ class Base {
const ENVIRONMENT = "BASEPROJECT_ENVIRONMENT";
const ACTIVE_SESSION = "BASEPROJECT_ACTIVE_SESSION";
const USER_ID = "BASEPROJECT_USER_ID";
const USER_SERIAL = "BASEPROJECT_USER_SERIAL";
const USER_NAME = "BASEPROJECT_USER_NAME";
const USER_FULL_NAME = "BASEPROJECT_USER_FULL_NAME";
const USER_EMAIL = "BASEPROJECT_USER_EMAIL";
const USER_ROLE = "BASEPROJECT_USER_ROLE";
const USER_AUTHENTICATED = "BASEPROJECT_USER_AUTHENTICATED";
@@ -86,6 +86,7 @@ class Base {
$XSLParms["THEME"] = $_SESSION[self::THEME] ?? self::THEME;
$XSLParms["ENVIRONMENT"] = $_SESSION[self::ENVIRONMENT] ?? "Production";
$XSLParms["USER_NAME"] = $_SESSION[self::USER_NAME] ?? "";
$XSLParms["USER_FULL_NAME"] = $_SESSION[self::USER_FULL_NAME] ?? "";
$XSLParms["USER_ROLE"] = $_SESSION[self::USER_ROLE] ?? "Guest";
$XSLParms["RANDOM_NUMBER"] = rand();
$XSLParms["TODAY_YYYYMMDD"] = date("Y-m-d");
@@ -622,8 +623,8 @@ class Base {
$_SESSION[self::ENVIRONMENT] = (string) ($settings->Environment ?? "Production");
$_SESSION[self::USER_AUTHENTICATED] = false;
$_SESSION[self::USER_SERIAL] = 0;
$_SESSION[self::USER_ID] = "";
$_SESSION[self::USER_NAME] = "";
$_SESSION[self::USER_FULL_NAME] = "";
$_SESSION[self::USER_EMAIL] = "";
$_SESSION[self::USER_ROLE] = "Guest";
$_SESSION[self::REPORTS_GET] = "";
+2 -2
View File
@@ -8,7 +8,7 @@ class Dropdowns extends Base {
// Variables.
private $current_user_id = "";
private $current_user_name = "";
private $current_user_email = "";
private $pagination_size = 20;
@@ -24,7 +24,7 @@ class Dropdowns extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
-2
View File
@@ -8,7 +8,6 @@ class Journal extends Base {
// Variables.
private $current_user_id = "";
private $current_user_name = "";
private $current_user_email = "";
@@ -25,7 +24,6 @@ class Journal extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
+2 -2
View File
@@ -12,7 +12,7 @@ class Notes extends Base {
// Variables
private $current_user_id = "";
private $current_user_name = "";
private $current_user_email = "";
@@ -26,7 +26,7 @@ class Notes extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
}
+2 -2
View File
@@ -8,7 +8,7 @@ class Popovers extends Base {
// Variables.
private $current_user_id = "";
private $current_user_name = "";
private $current_user_email = "";
private $pagination_size = 20;
@@ -24,7 +24,7 @@ class Popovers extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
+2 -2
View File
@@ -8,7 +8,7 @@ class Reports extends Base {
// Variables.
private $current_user_id = "";
private $current_user_name = "";
private $current_user_email = "";
private $pagination_size = 20;
@@ -24,7 +24,7 @@ class Reports extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
+5 -6
View File
@@ -8,9 +8,9 @@ class SignIn extends Base {
// Variables
private $current_user_id = "";
private $current_user_serial = "";
private $current_user_name = "";
private $current_user_full_name = "";
private $current_user_email = "";
// ===============================
@@ -23,8 +23,8 @@ class SignIn extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_full_name = $_SESSION[self::USER_FULL_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
}
@@ -63,12 +63,12 @@ class SignIn extends Base {
die();
}
if ((int) $user->record->user_active === 0) {
if ((string) $user->record->user_status !== 'active') {
echo $this->applyXSL("", $this->getXSL("signIn"), $XSLParms);
die();
}
$stored_hashed_password = $user->record->user_password;
$stored_hashed_password = $user->record->user_password_hash;
if (!password_verify($user_password, $stored_hashed_password)) {
@@ -80,12 +80,11 @@ class SignIn extends Base {
$_SESSION[self::USER_AUTHENTICATED] = true;
$_SESSION[self::USER_SERIAL] = (int) $user->record->user_serial;
$_SESSION[self::USER_ID] = (string) $user->record->user_id;
$_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_id = $_SESSION[self::USER_ID] ?? "";
$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] ?? "";
+2 -2
View File
@@ -5,7 +5,7 @@ class Statuses extends Base {
// Variables.
private $current_user_serial = 0;
private $current_user_id = "";
private $current_user_name = "";
private $current_user_email = "";
private $pagination_size = 20;
@@ -22,7 +22,7 @@ class Statuses extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_serial = $_SESSION[self::USER_SERIAL] ?? 0;
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
+12 -14
View File
@@ -8,7 +8,7 @@ class Users extends Base {
// Variables
private $current_user_id = "";
private $current_user_serial = "";
private $current_user_name = "";
private $current_user_email = "";
@@ -25,10 +25,8 @@ class Users extends Base {
date_default_timezone_set(self::TIMEZONE);
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
$this->pagination_page = $_SESSION[self::PAGINATION_PAGE] ?? 1;
}
@@ -292,18 +290,18 @@ class Users extends Base {
$SQL = "select view_users.*
from view_users
where user_id = '{$user_name}'";
where user_name = '{$user_name}'";
return $this->getTable("user", $SQL);
}
// ======================
// Return a User's Serial
// ======================
// =====================
// Return a Users Serial
// =====================
public function getUserSerial($user_id = "") {
public function getUserSerial($user_name = "") {
$users = $this->getUserByUserId($user_id);
$users = $this->getUserByUserId($user_name);
return ($users->count() === 0) ? 0 : (int) $users->record->user_serial;
}
@@ -440,19 +438,19 @@ class Users extends Base {
public function userExists() {
$user_serial = filter_input(INPUT_POST, "user_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0;
$user_id = filter_input(INPUT_POST, "user_id") ?: "";
$user_name = filter_input(INPUT_POST, "user_name") ?: "";
$user_id = strtolower(trim(preg_replace("/\s+/", " ", $user_id)));
$user_name = strtolower(trim(preg_replace("/\s+/", " ", $user_name)));
$SQL = "select user_id
$SQL = "select user_name
from view_users
where user_serial != :user_serial
and user_id = :user_id";
and user_name = :user_name";
$statement = $this->connect()->prepare($SQL);
$statement->bindValue(":user_serial", $user_serial);
$statement->bindValue(":user_id", $user_id);
$statement->bindValue(":user_name", $user_name);
$statement->execute();
+34 -50
View File
@@ -35,8 +35,7 @@
define("INITIALIZATION_FILE_NAME", "../xml/settings.xml");
define("INIT_SCRIPT_USER", "Init Script");
// Safety switch.
// Change this to true when you intentionally want to rebuild system tables.
// Safety switch - Change this to true when you intentionally want to rebuild system tables.
$allow_rebuild = true;
if (!$allow_rebuild) {
@@ -44,9 +43,9 @@
exit();
}
// --------------------------
// Load Application Settings
// --------------------------
// --------------------------
// Load Application Settings
// --------------------------
$applicationSettings = simplexml_load_file(INITIALIZATION_FILE_NAME);
@@ -55,9 +54,9 @@
exit();
}
// ---------------------
// Database Connection
// ---------------------
// ---------------------
// Database Connection
// ---------------------
$host = (string) $applicationSettings->DatabaseServer;
$database = (string) $applicationSettings->DatabaseName;
@@ -66,8 +65,7 @@
try {
$connection = new PDO(
"mysql:host={$host};dbname={$database};charset=utf8mb4",
$user,
"mysql:host={$host};dbname={$database};charset=utf8mb4", $user,
$password,
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
@@ -82,17 +80,13 @@
exit();
}
// ----------------------------
// Get Table Definition Files
// ----------------------------
// ----------------------------
// Get Table Definition Files
// ----------------------------
$tableFiles = glob("*.php");
$excludedFiles = [
"_createSystemTable.php",
"_createTable.php",
basename(__FILE__),
];
$excludedFiles = ["_createSystemTable.php", "_createTable.php", basename(__FILE__),];
$tableFiles = array_values(array_filter($tableFiles, function ($file) use ($excludedFiles) {
return !in_array($file, $excludedFiles, true);
@@ -100,9 +94,9 @@
sort($tableFiles);
// ----------------------------
// Process Table Files
// ----------------------------
// -------------------
// Process Table Files
// -------------------
foreach ($tableFiles as $tableFile) {
@@ -160,9 +154,9 @@
echoLog("System tables created successfully.", "success");
// -------------------------
// Helper Functions
// -------------------------
// ----------------
// Helper Functions
// ----------------
function runSQL($SQL, PDO $connection, $context = "query") {
try {
@@ -221,8 +215,7 @@
],
];
$SQL = "
INSERT INTO popovers (
$SQL = " INSERT INTO popovers (
popover_name,
popover_title,
popover_placeholder,
@@ -235,9 +228,7 @@
:popover_placeholder,
:popover_text,
CURDATE(),
:popover_creator
)
";
:popover_creator )";
$statement = $connection->prepare($SQL);
@@ -258,40 +249,33 @@
$password = password_hash("349Jamot@", PASSWORD_DEFAULT);
$SQL = "
INSERT INTO users (
user_id,
$SQL = "INSERT INTO users (
user_name,
user_first_name,
user_last_name,
user_email,
user_password,
user_password_hash,
user_role,
user_change_password,
user_active,
user_creator,
user_created
user_creator
) VALUES (
:user_id,
:user_name,
:user_first_name,
:user_last_name,
:user_email,
:user_password,
:user_password_hash,
:user_role,
:user_change_password,
:user_active,
:user_creator,
CURDATE()
)
";
:user_creator )";
$statement = $connection->prepare($SQL);
$statement->execute([
":user_id" => "DSYSADMIN",
":user_name" => "James Richie",
":user_name" => "jric11",
":user_first_name" => "James",
":user_last_name" => "Richie",
":user_email" => "james.richie@onesourceits.com",
":user_password" => $password,
":user_password_hash" => $password,
":user_role" => "Administrator",
":user_change_password" => 1,
":user_active" => 1,
":user_creator" => INIT_SCRIPT_USER,
]);
+1 -1
View File
@@ -19,5 +19,5 @@ $SQL = "create table alerts
)
default character set = utf8";
default character set = utf8mb4";
?>
+1 -1
View File
@@ -25,6 +25,6 @@ $SQL = "create table dropdowns
)
default character set = utf8";
default character set = utf8mb4";
?>
+1 -1
View File
@@ -20,6 +20,6 @@ $SQL = "create table dropdowntypes
)
default character set = utf8";
default character set = utf8mb4";
?>
+1 -1
View File
@@ -15,6 +15,6 @@ $SQL = "create table journal
)
default character set = utf8";
default character set = utf8mb4";
?>
+1 -1
View File
@@ -18,5 +18,5 @@ $SQL = "create table notes
)
default character set = utf8";
default character set = utf8mb4";
?>
+1 -1
View File
@@ -19,6 +19,6 @@ $SQL = "create table popovers
)
default character set = utf8";
default character set = utf8mb4";
?>
+1 -1
View File
@@ -19,6 +19,6 @@ $SQL = "create table reports
)
default character set = utf8";
default character set = utf8mb4";
?>
+1 -1
View File
@@ -19,6 +19,6 @@ $SQL = "create table statuses
)
default character set = utf8";
default character set = utf8mb4";
?>
+16 -14
View File
@@ -1,29 +1,31 @@
<?php
$SQL = "create table users
(
$SQL = "create table users (
user_serial serial,
user_id varchar(100) default null,
user_name varchar(128) default null,
user_email varchar(100) default null,
user_client_name varchar(128) default null,
user_password varchar(255) not null,
user_first_name varchar(128) default null,
user_last_name varchar(128) default null,
user_email varchar(100) not null,
user_password_hash varchar(255) not null,
user_role varchar(255) not null,
user_change_password boolean default false,
user_active boolean default true,
user_login datetime default null,
user_status varchar(255) not null default 'active',
user_last_login datetime default null,
user_creator varchar(100) default null,
user_created datetime default null,
user_created datetime not null default current_timestamp ,
user_changer varchar(100) default null,
user_changed datetime default null,
user_changed datetime not null default current_timestamp on update current_timestamp,
primary key (user_serial),
unique key (user_name),
unique key (user_email),
index (user_name)
)
default character set = utf8";
) default character set = utf8mb4
collate = utf8mb4_unicode_ci";
?>
+1 -1
View File
@@ -16,6 +16,6 @@ $SQL = "create table zipcodes
)
default character set = utf8";
default character set = utf8mb4";
?>
+4 -5
View File
@@ -3,10 +3,9 @@
$SQL = "create view view_users as
select users.*,
date_format(user_login, '%c/%e/%Y %l:%i %p') as user_login_verbose,
date_format(user_last_login, '%c/%e/%Y %l:%i %p') as user_login_verbose,
date_format(user_created, '%c/%e/%Y %l:%i %p') as user_created_verbose,
date_format(user_changed, '%c/%e/%Y %l:%i %p') as user_changed_verbose
from users
order by users.user_name";
date_format(user_changed, '%c/%e/%Y %l:%i %p') as user_changed_verbose,
concat_ws(' ', NULLIF(TRIM(user_first_name), ''), NULLIF(TRIM(user_last_name), '') ) AS user_full_name
from users";
?>
+6 -10
View File
@@ -28,7 +28,7 @@
<xsl:value-of select="$APPLICATION_NAME"/>
</title>
<link rel="icon" type="image/x-icon" href="images/dec-international-logo.png"/>
<link rel="icon" type="image/x-icon" href="images/baseproject-logo.png"/>
<link href="css/themes/Sandstone/bootstrap.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
<link href="css/bootstrap-icons.min.css?version={$VERSION}" rel="stylesheet" media="screen"/>
@@ -68,7 +68,7 @@
<div class="container-xxl">
<a class="navbar-brand ms-1 me-0" href="./" aria-label="Home" data-bs-toggle="tooltip" data-bs-title="Home" data-bs-custom-class="custom-tooltip" data-bs-placement="right" data-bs-offset="0,5">
<i class="bi bi-cloud me-2"></i>
<!--<i class="bi bi-cloud me-2"></i>-->
<xsl:value-of select="$APPLICATION_NAME"/>
</a>
@@ -163,7 +163,7 @@
<span>
<i class="bi bi-person-circle me-2" aria-hidden="true"></i>
</span>
<xsl:value-of select="$USER_NAME"/>
<xsl:value-of select="$USER_FULL_NAME"/>
</span>
</a>
@@ -182,10 +182,6 @@
<a class="dropdown-item ps-2 setup-alerts" href="javascript:void(0);">
<i class="bi bi-info-circle me-2"/>Alerts</a>
<a class="dropdown-item ps-2 setup-counties" href="javascript:void(0);">
<i class="bi bi-building me-2"/>Counties
</a>
<a class="dropdown-item ps-2 setup-dropdowntypes" href="javascript:void(0);">
<i class="bi bi-caret-down-square me-2"/>Dropdown Types
</a>
@@ -206,10 +202,10 @@
<i class="bi bi-card-checklist me-2"/>Statuses
</a>
<a class="dropdown-item ps-2 setup-subscriptions" href="javascript:void(0);">
<!-- <a class="dropdown-item ps-2 setup-subscriptions" href="javascript:void(0);">
<i class="bi bi-list-check me-2"/>Subscriptions
</a>
-->
<div class="dropdown-divider mt-1 mb-1"></div>
@@ -261,7 +257,7 @@
<small class="text-muted pb-4">Copyright © <span>
<xsl:value-of select="$COPYRIGHT"/>
|
</span> DEC International, LLC | All Rights Reserved</small>
</span> OneSource IT Solutions | All Rights Reserved</small>
</div>
</div>
+2 -2
View File
@@ -9,8 +9,8 @@
<div class="col text-center">
<span class="text-primary fw-bold" style="font-size: 2rem;">
<i class="bi bi-cloud me-2"></i>
DEC Data Manager
<!--<i class="bi bi-cloud me-2"></i>-->
Base Project Template
</span>
</div>