Updated File Structure
This commit is contained in:
@@ -1,13 +0,0 @@
|
||||
<?php
|
||||
$host = '172.16.18.3';
|
||||
$db = 'TechOdysseyDashboard';
|
||||
$user = 'tod_admin';
|
||||
$pass = 'QprczJwYor./_.T*';
|
||||
|
||||
try {
|
||||
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch (PDOException $e) {
|
||||
die("Database connection failed: " . $e->getMessage());
|
||||
}
|
||||
?>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?php
|
||||
function loadEnv($path) {
|
||||
if (!file_exists($path)) {
|
||||
throw new Exception('.env file not found.');
|
||||
}
|
||||
|
||||
$lines = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||||
foreach ($lines as $line) {
|
||||
if (strpos($line, '=') !== false) {
|
||||
list($key, $value) = explode('=', $line, 2);
|
||||
$_ENV[$key] = trim($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
include '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/session_check.php';
|
||||
require '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/envLoader.php'; // Load envLoader from php/
|
||||
loadEnv(__DIR__ . '/../../../.env'); // Go up three levels to root for .env
|
||||
|
||||
$clientId = $_ENV['ETSY_KEYSTRING'];
|
||||
$redirectUri = $_ENV['ETSY_REDIRECT_URI'];
|
||||
$scope = 'transactions_r';
|
||||
$state = bin2hex(random_bytes(16));
|
||||
|
||||
session_start();
|
||||
$_SESSION['oauth_state'] = $state;
|
||||
|
||||
// Authorization URL
|
||||
$url = "https://www.etsy.com/oauth/connect?" . http_build_query([
|
||||
'response_type' => 'code',
|
||||
'client_id' => $clientId,
|
||||
'redirect_uri' => $redirectUri,
|
||||
'scope' => $scope,
|
||||
'state' => $state
|
||||
]);
|
||||
|
||||
header("Location: $url");
|
||||
exit;
|
||||
?>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?php
|
||||
include '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/session_check.php';
|
||||
require '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/envLoader.php'; // Load envLoader from php/
|
||||
loadEnv(__DIR__ . '/../../../.env'); // Go up three levels to find .env
|
||||
|
||||
session_start();
|
||||
|
||||
if ($_GET['state'] !== $_SESSION['oauth_state']) {
|
||||
die('Invalid state. Possible CSRF attack.');
|
||||
}
|
||||
|
||||
$code = $_GET['code'];
|
||||
|
||||
$clientId = $_ENV['ETSY_KEYSTRING'];
|
||||
$clientSecret = $_ENV['ETSY_SECRET'];
|
||||
$redirectUri = $_ENV['ETSY_REDIRECT_URI'];
|
||||
|
||||
$data = [
|
||||
'grant_type' => 'authorization_code',
|
||||
'client_id' => $clientId,
|
||||
'client_secret' => $clientSecret,
|
||||
'code' => $code,
|
||||
'redirect_uri' => $redirectUri
|
||||
];
|
||||
|
||||
$ch = curl_init("https://api.etsy.com/v3/public/oauth/token");
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
|
||||
$response = curl_exec($ch);
|
||||
$tokens = json_decode($response, true);
|
||||
|
||||
file_put
|
||||
@@ -1,27 +0,0 @@
|
||||
<?php
|
||||
include '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/session_check.php';
|
||||
require '/mnt/www-live/TechOdyssey_Designs_Dashboard/assets/php/envLoader.php'; // Load envLoader from php/
|
||||
loadEnv(__DIR__ . '/../../../.env'); // Go up three levels to find .env
|
||||
|
||||
function refreshAccessToken() {
|
||||
$tokens = json_decode(file_get_contents('etsyTokens.json'), true);
|
||||
$refreshToken = $tokens['refresh_token'];
|
||||
|
||||
$data = [
|
||||
'grant_type' => 'refresh_token',
|
||||
'client_id' => $_ENV['ETSY_KEYSTRING'],
|
||||
'client_secret' => $_ENV['ETSY_SECRET'],
|
||||
'refresh_token' => $refreshToken
|
||||
];
|
||||
|
||||
$ch = curl_init("https://api.etsy.com/v3/public/oauth/token");
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
|
||||
$response = curl_exec($ch);
|
||||
$newTokens = json_decode($response, true);
|
||||
|
||||
file_put_contents('etsyTokens.json', json_encode($newTokens));
|
||||
echo "Token refreshed successfully.";
|
||||
}
|
||||
?>
|
||||
@@ -1,23 +0,0 @@
|
||||
<?php
|
||||
session_start();
|
||||
require 'db.php';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$username = htmlspecialchars($_POST['username']);
|
||||
$password = $_POST['password'];
|
||||
|
||||
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
|
||||
$stmt->execute([$username]);
|
||||
$user = $stmt->fetch();
|
||||
|
||||
if ($user && password_verify($password, $user['password']) && !$user['disabled']) {
|
||||
// Store user ID, username, and role in session
|
||||
$_SESSION['user_id'] = $user['id'];
|
||||
$_SESSION['username'] = $user['username'];
|
||||
$_SESSION['role'] = $user['role']; // Store user role
|
||||
echo 'success';
|
||||
} else {
|
||||
echo 'Invalid login credentials';
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,161 +0,0 @@
|
||||
<!--sidebar wrapper -->
|
||||
<div class="sidebar-wrapper" data-simplebar="true">
|
||||
<div class="sidebar-header">
|
||||
<div>
|
||||
<img src="assets/images/logo-icon.png" class="logo-icon" alt="logo icon">
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="logo-text">TechOdyssey</h4>
|
||||
</div>
|
||||
<div class="mobile-toggle-icon ms-auto"><i class='bx bx-x'></i>
|
||||
</div>
|
||||
</div>
|
||||
<!--navigation-->
|
||||
<ul class="metismenu" id="menu">
|
||||
<li>
|
||||
<a href="javascript:;" class="has-arrow">
|
||||
<div class="parent-icon"><i class='bx bx-home-alt'></i>
|
||||
</div>
|
||||
<div class="menu-title">Dashboard</div>
|
||||
</a>
|
||||
<ul>
|
||||
<li> <a href="index.html"><i class='bx bx-radio-circle'></i>Infographic</a>
|
||||
</li>
|
||||
<li> <a href="index2.html"><i class='bx bx-radio-circle'></i>eCommerce</a>
|
||||
</li>
|
||||
<li> <a href="index3.html"><i class='bx bx-radio-circle'></i>Analytics</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" class="has-arrow">
|
||||
<div class="parent-icon"><i class="bx bx-category"></i>
|
||||
</div>
|
||||
<div class="menu-title">Application</div>
|
||||
</a>
|
||||
<ul>
|
||||
<li> <a href="app-emailbox.html"><i class='bx bx-radio-circle'></i>Email</a>
|
||||
</li>
|
||||
<li> <a href="app-chat-box.html"><i class='bx bx-radio-circle'></i>Chat Box</a>
|
||||
</li>
|
||||
<li> <a href="app-file-manager.html"><i class='bx bx-radio-circle'></i>File Manager</a>
|
||||
</li>
|
||||
<li> <a href="app-contact-list.html"><i class='bx bx-radio-circle'></i>Contatcs</a>
|
||||
</li>
|
||||
<li> <a href="app-to-do.html"><i class='bx bx-radio-circle'></i>Todo List</a>
|
||||
</li>
|
||||
<li> <a href="app-invoice.html"><i class='bx bx-radio-circle'></i>Invoice</a>
|
||||
</li>
|
||||
<li> <a href="app-fullcalender.html"><i class='bx bx-radio-circle'></i>Calendar</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="menu-label">UI Elements</li>
|
||||
<li>
|
||||
<a href="widgets.html">
|
||||
<div class="parent-icon"><i class='bx bx-cookie'></i>
|
||||
</div>
|
||||
<div class="menu-title">Widgets</div>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="javascript:;" class="has-arrow">
|
||||
<div class="parent-icon"><i class='bx bx-cart'></i>
|
||||
</div>
|
||||
<div class="menu-title">eCommerce</div>
|
||||
</a>
|
||||
<ul>
|
||||
<li> <a href="ecommerce-products.html"><i class='bx bx-radio-circle'></i>Products</a>
|
||||
</li>
|
||||
<li> <a href="ecommerce-products-details.html"><i class='bx bx-radio-circle'></i>Product Details</a>
|
||||
</li>
|
||||
<li> <a href="ecommerce-add-new-products.html"><i class='bx bx-radio-circle'></i>Add New Products</a>
|
||||
</li>
|
||||
<li> <a href="ecommerce-orders.html"><i class='bx bx-radio-circle'></i>Orders</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a class="has-arrow" href="javascript:;">
|
||||
<div class="parent-icon"><i class='bx bx-bookmark-heart'></i>
|
||||
</div>
|
||||
<div class="menu-title">Components</div>
|
||||
</a>
|
||||
<ul>
|
||||
<li> <a href="component-alerts.html"><i class='bx bx-radio-circle'></i>Alerts</a>
|
||||
</li>
|
||||
<li> <a href="component-accordions.html"><i class='bx bx-radio-circle'></i>Accordions</a>
|
||||
</li>
|
||||
<li> <a href="component-badges.html"><i class='bx bx-radio-circle'></i>Badges</a>
|
||||
</li>
|
||||
<li> <a href="component-buttons.html"><i class='bx bx-radio-circle'></i>Buttons</a>
|
||||
</li>
|
||||
<li> <a href="component-cards.html"><i class='bx bx-radio-circle'></i>Cards</a>
|
||||
</li>
|
||||
<li> <a href="component-carousels.html"><i class='bx bx-radio-circle'></i>Carousels</a>
|
||||
</li>
|
||||
<li> <a href="component-list-groups.html"><i class='bx bx-radio-circle'></i>List Groups</a>
|
||||
</li>
|
||||
<li> <a href="component-media-object.html"><i class='bx bx-radio-circle'></i>Media Objects</a>
|
||||
</li>
|
||||
<li> <a href="component-modals.html"><i class='bx bx-radio-circle'></i>Modals</a>
|
||||
</li>
|
||||
<li> <a href="component-navs-tabs.html"><i class='bx bx-radio-circle'></i>Navs & Tabs</a>
|
||||
</li>
|
||||
<li> <a href="component-navbar.html"><i class='bx bx-radio-circle'></i>Navbar</a>
|
||||
</li>
|
||||
<li> <a href="component-paginations.html"><i class='bx bx-radio-circle'></i>Pagination</a>
|
||||
</li>
|
||||
<li> <a href="component-popovers-tooltips.html"><i class='bx bx-radio-circle'></i>Popovers & Tooltips</a>
|
||||
</li>
|
||||
<li> <a href="component-progress-bars.html"><i class='bx bx-radio-circle'></i>Progress</a>
|
||||
</li>
|
||||
<li> <a href="component-spinners.html"><i class='bx bx-radio-circle'></i>Spinners</a>
|
||||
</li>
|
||||
<li> <a href="component-notifications.html"><i class='bx bx-radio-circle'></i>Notifications</a>
|
||||
</li>
|
||||
<li> <a href="component-avtars-chips.html"><i class='bx bx-radio-circle'></i>Avatrs & Chips</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a class="has-arrow" href="javascript:;">
|
||||
<div class="parent-icon"><i class="bx bx-repeat"></i>
|
||||
</div>
|
||||
<div class="menu-title">Content</div>
|
||||
</a>
|
||||
<ul>
|
||||
<li> <a href="content-grid-system.html"><i class='bx bx-radio-circle'></i>Grid System</a>
|
||||
</li>
|
||||
<li> <a href="content-typography.html"><i class='bx bx-radio-circle'></i>Typography</a>
|
||||
</li>
|
||||
<li> <a href="content-text-utilities.html"><i class='bx bx-radio-circle'></i>Text Utilities</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a class="has-arrow" href="javascript:;">
|
||||
<div class="parent-icon"> <i class="bx bx-donate-blood"></i>
|
||||
</div>
|
||||
<div class="menu-title">Icons</div>
|
||||
</a>
|
||||
<ul>
|
||||
<li> <a href="icons-line-icons.html"><i class='bx bx-radio-circle'></i>Line Icons</a>
|
||||
</li>
|
||||
<li> <a href="icons-boxicons.html"><i class='bx bx-radio-circle'></i>Boxicons</a>
|
||||
</li>
|
||||
<li> <a href="icons-feather-icons.html"><i class='bx bx-radio-circle'></i>Feather Icons</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="form-froala-editor.html">
|
||||
<div class="parent-icon"><i class='bx bx-code-alt'></i>
|
||||
</div>
|
||||
<div class="menu-title">Froala Editor</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--end navigation-->
|
||||
</div>
|
||||
<!--end sidebar wrapper -->
|
||||
@@ -1,7 +0,0 @@
|
||||
<?php
|
||||
session_start();
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header("Location: /login.php");
|
||||
exit();
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user