diff --git a/app/config/dotenv.php b/app/config/dotenv.php deleted file mode 100644 index 79f9697aad6a64844e3db54d3722c58b80297a22..0000000000000000000000000000000000000000 --- a/app/config/dotenv.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php - -class DotEnv -{ - /** - * The directory where the .env file can be located. - * - * @var string - */ - protected $path; - - - public function __construct(string $path) - { - if(!file_exists($path)) { - throw new \InvalidArgumentException(sprintf('%s does not exist', $path)); - } - $this->path = $path; - } - - public function load() :void - { - if (!is_readable($this->path)) { - throw new \RuntimeException(sprintf('%s file is not readable', $this->path)); - } - - $lines = file($this->path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - foreach ($lines as $line) { - - if (strpos(trim($line), '#') === 0) { - continue; - } - - list($name, $value) = explode('=', $line, 2); - $name = trim($name); - $value = trim($value); - - if (!array_key_exists($name, $_SERVER) && !array_key_exists($name, $_ENV)) { - putenv(sprintf('%s=%s', $name, $value)); - $_ENV[$name] = $value; - $_SERVER[$name] = $value; - } - } - } -} \ No newline at end of file diff --git a/app/controllers/admin.php b/app/controllers/admin.php index 407a0c9e35e19adf246f439723a6430950e08c2b..9e099d05edb72d196af576bbd083cad6e0a79b5f 100644 --- a/app/controllers/admin.php +++ b/app/controllers/admin.php @@ -66,8 +66,10 @@ class Admin extends Controller { return new $model; } - public function addBook(){ - if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin' ){ + public function addBook() +{ + try { + if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') { if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Buat path image audio @@ -93,16 +95,21 @@ class Admin extends Controller { $this->model('BookModel')->insertBook($newTitle, $newContent, $selectedAuthor, $selectedCategory, $fileAudio, $fileImage); move_uploaded_file($fileTmpAudio, $audioFilePath); move_uploaded_file($fileTmpImage, $imageFilePath); + } else { + throw new Exception("Invalid input data."); } - } $data['book'] = $this->model('BookModel')->getAllBookAdmin(); $data['author'] = $this->model('AuthorModel')->getAuthor(); $this->view('admin/bookadmin', $data); } else { - $this->view('error/404'); + throw new Exception("Unauthorized access."); } + } catch (Exception $e) { + $error_message = $e->getMessage(); + $this->view('error/403', ['error' => $error_message]); } +} public function addUser(){ if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin' ){ if ($_SERVER['REQUEST_METHOD'] === 'POST') { @@ -137,11 +144,12 @@ class Admin extends Controller { } } - public function editBook(){ + public function editBook() +{ + try { if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') { if ($_SERVER['REQUEST_METHOD'] === 'POST') { - // Buat path image audio $imageDir = LOCALURL . "/img/"; $audioDir = LOCALURL . "/audio/"; @@ -167,17 +175,22 @@ class Admin extends Controller { $this->model('BookModel')->updateBook($bookid, $newTitle, $selectedAuthor, $newContent, $selectedCategory, $fileAudio, $fileImage); move_uploaded_file($fileTmpAudio, $audioFilePath); move_uploaded_file($fileTmpImage, $imageFilePath); + } else { + throw new Exception("Invalid input data."); } $data['book'] = $this->model('BookModel')->getAllBookAdmin(); $data['author'] = $this->model('AuthorModel')->getAuthor(); $this->view('admin/bookadmin', $data); - } - } else{ - $this->view('error/404'); + } else { + throw new Exception("Unauthorized access."); } + } catch (Exception $e) { + $error_message = $e->getMessage(); + $this->view('error/403', ['error' => $error_message]); } +} public function editUser(){ if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') { diff --git a/app/views/popup/popupAdd.php b/app/views/popup/popupAdd.php deleted file mode 100644 index abcdcdf30cb8bc7fde509471d0c9044ff3304787..0000000000000000000000000000000000000000 --- a/app/views/popup/popupAdd.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$popupContentTitle = "Add Book"; -$popupContentText = "Are you sure you want to add this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?> diff --git a/app/views/popup/popupDelete.php b/app/views/popup/popupDelete.php deleted file mode 100644 index 9002efa4fc130ddb53fb85873f7e6cdcd5eb9a31..0000000000000000000000000000000000000000 --- a/app/views/popup/popupDelete.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$deletePopupContentTitle = "Delete Bookmark"; -$deletePopupContentText = "Are you sure you want to delete this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?> diff --git a/app/views/popup/popupEdit.php b/app/views/popup/popupEdit.php deleted file mode 100644 index 5d54f821f239653175823836b55af14994f5274c..0000000000000000000000000000000000000000 --- a/app/views/popup/popupEdit.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$editPopupContentTitle = "Edit Bookmark"; -$editPopupContentText = "Are you sure you want to edit this bookmark?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?> diff --git a/app/views/popup/popupEditDelete.php b/app/views/popup/popupEditDelete.php deleted file mode 100644 index 36008f735ae47af0d49638626336ed0c257ad4f5..0000000000000000000000000000000000000000 --- a/app/views/popup/popupEditDelete.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$editPopupContentTitle = "Edit Bookmark"; -$editPopupContentText = "Are you sure you want to edit this bookmark?"; -$deletePopupContentTitle = "Delete Bookmark"; -$deletePopupContentText = "Are you sure you want to delete this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = '/var/www/html/public/style/popupEditDelete.css'; -$jsFileName = '/var/www/html/public/js/popupEditDelete.js'; - -// Include the template -include('popupTemplateMulti.php'); -?> diff --git a/app/views/popup/popupTemplateMulti.php b/app/views/popup/popupTemplateMulti.php deleted file mode 100644 index dc1d11d574eea80a3a62e119f32415c0323a1d39..0000000000000000000000000000000000000000 --- a/app/views/popup/popupTemplateMulti.php +++ /dev/null @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <link rel="stylesheet" type="text/css" href="<?php echo $cssFileName; ?>"> - <title><?php echo $pageTitle; ?></title> -</head> -<body> - <!-- Edit Popup --> - <div id="editPopup" class="popup"> - <div class="popup-content"> - <h1><?php echo $editPopupContentTitle; ?></h1> - <p><?php echo $editPopupContentText; ?></p><br> - <div class="button-container"> - <button id="continueButtonEdit"><?php echo $continueButtonText; ?></button> - <button id="cancelButtonEdit"><?php echo $cancelButtonText; ?></button> - </div> - </div> - </div> - - <!-- Delete Popup --> - <div id="deletePopup" class="popup"> - <div class="popup-content"> - <h1><?php echo $deletePopupContentTitle; ?></h1> - <p><?php echo $deletePopupContentText; ?></p><br> - <div class="button-container"> - <button id="continueButtonDelete"><?php echo $continueButtonText; ?></button> - <button id="cancelButtonDelete"><?php echo $cancelButtonText; ?></button> - </div> - </div> - </div> - - -</body> -</html> diff --git a/app/views/popup/popupUpdate.php b/app/views/popup/popupUpdate.php deleted file mode 100644 index 135d0cac20b82a484f1c03c87e408c1cab0386c0..0000000000000000000000000000000000000000 --- a/app/views/popup/popupUpdate.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$popupContentTitle = "Update Book"; -$popupContentText = "Are you sure you want to update this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?>