Skip to content
Snippets Groups Projects
Commit eca51107 authored by Rava Maulana's avatar Rava Maulana
Browse files

prepare merge

parent cd90b4b9
No related merge requests found
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
<!-- Global CSS --> <!-- Global CSS -->
<link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/globals.css"> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/globals.css">
<link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/search/search.css"> <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/search/search.css">
<!-- Page CSS -->
<link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/home/Home.css">
<!-- JavaScript Library --> <!-- JavaScript Library -->
<script type="text/javascript" src="<?= BASE_URL ?>/javascript/player.js" defer></script> <script type="text/javascript" src="<?= BASE_URL ?>/javascript/player.js" defer></script>
<script type="text/javascript" src="<?= BASE_URL ?>/javascript/dashboard/layout.js" defer></script> <script type="text/javascript" src="<?= BASE_URL ?>/javascript/dashboard/layout.js" defer></script>
...@@ -22,7 +24,7 @@ ...@@ -22,7 +24,7 @@
<body> <body>
<?php include(dirname(__DIR__) . "/common/sidebar.php")?> <?php include(dirname(__DIR__) . "/common/sidebar.php")?>
<?php include(dirname(__DIR__) . "/common/profile.php")?> <?php include(dirname(__DIR__) . "/common/profile.php")?>
<main> <main id="main-section">
<!-- Called by app.js --> <!-- Called by app.js -->
</main> </main>
<?php include(dirname(__DIR__) . "/common/player.php")?> <?php include(dirname(__DIR__) . "/common/player.php")?>
......
<!DOCTYPE html> <section>
<html lang="en"> <div class="comedy-content">
<head> <h4>COMEDY</h4>
<meta charset="UTF-8"> <div class="podcast-list">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <?php if (isset($this->data["tech_podcasts"])) : ?>
<!-- Global CSS -->
<link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/globals.css">
<!-- Page-specific CSS -->
<link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/home/home.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,700;1,9..40,400;1,9..40,700&display=swap" rel="stylesheet">
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'>
<title>Homepage</title>
</head>
<body>
<main>
<div class="comedy-content">
<h4>COMEDY</h4>
<div class="podcast-list">
<?php if (isset($this->data["tech_podcasts"])): ?>
<div class="podcast-list"> <div class="podcast-list">
<?php foreach ($this->data["tech_podcasts"] as $podcast): ?> <?php foreach ($this->data["tech_podcasts"] as $podcast) : ?>
<div class="podcast"> <div class="podcast">
<img class="thumbnail" src="<?= STORAGE_URL . $podcast->url_thumbnail ?>" alt="image"> <img class="thumbnail" src="<?= STORAGE_URL . $podcast->url_thumbnail ?>" alt="image">
<div class="info"> <div class="info">
<div class="sh5"><?=$podcast->title?> </div> <div class="sh5"><?= $podcast->title ?> </div>
<div class="b5"><?=$podcast->name?></div> <div class="b5"><?= $podcast->name ?></div>
</div> </div>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
...@@ -35,9 +18,7 @@ ...@@ -35,9 +18,7 @@
<div class="sh4"> <div class="sh4">
&nbsp; no results found. &nbsp; no results found.
</div> </div>
<?php endif;?> <?php endif; ?>
</div>
</div> </div>
</main> </div>
</body> </section>
</html> \ No newline at end of file
\ No newline at end of file
...@@ -6,12 +6,27 @@ class AppController ...@@ -6,12 +6,27 @@ class AppController
{ {
// Session validation // Session validation
session_start(); session_start();
if (isset($_SESSION["is_premium"]) && $_SESSION["is_premium"]) {
http_response_code(403);
header("Location: http://localhost:5173");
return;
}
if (!isset($_SESSION["user_id"])) { if (!isset($_SESSION["user_id"])) {
http_response_code(403); http_response_code(403);
header("Location: " . BASE_URL . "/login"); header("Location: " . BASE_URL . "/login");
return; return;
} }
if ($_SESSION["expire"] < time()) {
session_destroy();
http_response_code(403);
header('Location: ' . BASE_URL . "/login");
return;
}
// Get id_episode from session // Get id_episode from session
$epsId = ""; $epsId = "";
if (isset($_SESSION["eps_id"])) { if (isset($_SESSION["eps_id"])) {
......
...@@ -5,7 +5,7 @@ class GetHomeController ...@@ -5,7 +5,7 @@ class GetHomeController
public function call() public function call()
{ {
session_start(); session_start();
$data = []; $data = [];
// podcast Info // podcast Info
......
...@@ -7,16 +7,14 @@ class GetLoginController ...@@ -7,16 +7,14 @@ class GetLoginController
require_once __DIR__ . "/../../views/login/login.php"; require_once __DIR__ . "/../../views/login/login.php";
require_once __DIR__ . "/../../views/home/home_view.php"; require_once __DIR__ . "/../../views/home/home_view.php";
session_start(); session_start();
if(isset($_SESSION['user_id'])){ if (isset($_SESSION['user_id']) && $_SESSION["expire"] >= time()) {
header("Location: " . BASE_URL . "/home?user_id=" . $_SESSION["user_id"]); header("Location: " . BASE_URL . "/home?user_id=" . $_SESSION["user_id"]);
} else {
}else{
$data = []; $data = [];
$view = new LoginView($data); $view = new LoginView($data);
$view->render(); $view->render();
} }
} }
} }
\ No newline at end of file
...@@ -22,14 +22,16 @@ class PostLoginController ...@@ -22,14 +22,16 @@ class PostLoginController
exit; exit;
} else { } else {
if (password_verify($password, $user['password'])) { if (password_verify($password, $user['password'])) {
$_SESSION["user_id"] = $user['id_user']; $_SESSION["start"] = time();
$_SESSION["eps_id"] = ""; $_SESSION["expire"] = time() + 60;
$_SESSION["role_id"] = $user['is_admin'];
if ($username == "premium") { if ($username == "premium") {
$ch = curl_init(); $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://tubes-rest-service:3000/token/create"); curl_setopt($ch, CURLOPT_URL, "http://tubes-rest-service:3000/token/create");
curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $_ENV["REST_PHP_KEY"],
]);
curl_setopt( curl_setopt(
$ch, $ch,
CURLOPT_POSTFIELDS, CURLOPT_POSTFIELDS,
...@@ -43,11 +45,20 @@ class PostLoginController ...@@ -43,11 +45,20 @@ class PostLoginController
curl_close($ch); curl_close($ch);
$jwtToken = json_decode($output, TRUE)["token"]; $jwtToken = json_decode($output, TRUE)["token"];
$_SESSION["token"] = $jwtToken;
$_SESSION["is_premium"] = true;
http_response_code(201); http_response_code(201);
header('Content-type: application/json');
echo json_encode(["redirect_url" => "http://localhost:5173/?token=" . $jwtToken]);
exit;
} }
$_SESSION["user_id"] = $user['id_user'];
$_SESSION["eps_id"] = "";
$_SESSION["role_id"] = $user['is_admin'];
$_SESSION["is_premium"] = false;
http_response_code(201); http_response_code(201);
header('Content-type: application/json'); header('Content-type: application/json');
echo json_encode(["redirect_url" => BASE_URL . "/home"]); echo json_encode(["redirect_url" => BASE_URL . "/home"]);
......
...@@ -46,8 +46,8 @@ class App ...@@ -46,8 +46,8 @@ class App
$router->post("public/logout", new LogoutController()); $router->post("public/logout", new LogoutController());
$router->get("public/home", new GetHomeController()); // $router->get("public/home", new GetHomeController());
$router->get("public/search", new GetSearchController()); // $router->get("public/search", new GetSearchController());
$router->get("public/login", new GetLoginController()); $router->get("public/login", new GetLoginController());
$router->post("public/login", new PostLoginController()); $router->post("public/login", new PostLoginController());
$router->get("public/signup", new GetSignupController()); $router->get("public/signup", new GetSignupController());
......
const mainSection = document.querySelector('main'); const mainSection = document.querySelector('#main-section');
const sidebar = document.querySelector('.sidebar'); const sidebar = document.querySelector('.sidebar');
const urls = window.location.href.split("?")[0].split("/"); const urls = window.location.href.split("?")[0].split("/");
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment