diff options
Diffstat (limited to 'src/web/_model/main.php')
-rw-r--r-- | src/web/_model/main.php | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/src/web/_model/main.php b/src/web/_model/main.php deleted file mode 100644 index cd34740..0000000 --- a/src/web/_model/main.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php /* Copyright (c) 2024 Freya Murphy */ -class Main_model { - - // the website database - public $db; - - // the current user session (can be NULL) - public $session; - - // current loaded users - private $users; - - // stores the current request info - public $info; - - // tthe logged in user - private $user; - - /** - * Loads the main model - * @param Loader $load - the main loader object - */ - function __construct($load) { - /// load the database helper - $this->db = new DatabaseHelper(); - /// load the current session - if (array_key_exists('jwt', $_SESSION)) { - $this->get_session($_SESSION['jwt']); - } else { - $this->session = NULL; - }; - /// init other vars - $this->users = array(); - $this->user = NULL; - } - - /** - * Loads current session - * @param string $jwt - the user provided JWT - */ - private function get_session($jwt) { - $query = $this->db - ->select("_api.verify_jwt(?) AS user_id;"); - $result = $query->row($jwt); - $user_id = $result['user_id']; - if ($user_id) { - $this->session = array( - 'id' => $user_id, - 'jwt' => $jwt - ); - $user = $this->user(); - if ($user === FALSE) { - /// valid jwt for invalid user!!! - $this->session = NULL; - $this->user = NULL; - } - } - } - - /** - * Gets the stamp for a asset path - * @param string $path - */ - private function asset_stamp($path): int { - $root = $GLOBALS['webroot']; - $path = $root . '/../public/' . $path; - return filemtime($path); - } - - /** - * Loads a css html link - * @param string $path - the path to the css file - */ - public function link_css($path) { - $stamp = $this->asset_stamp($path); - return '<link rel="stylesheet" href="/public/' . $path . '?stamp=' . $stamp . '">'; - } - - /** - * Loads a js html link - * @param string $path - the path to the js file - */ - public function link_js($path) { - $stamp = $this->asset_stamp($path); - return '<script src="/public/'. $path . '?stamp=' . $stamp . '"></script>'; - } - - /** - * Gets the current user - */ - public function user() { - if ($this->user) { - return $this->user; - } - if ($this->session) { - $this->user = $this->db - ->select('*') - ->from('api.user') - ->where('id') - ->eq($this->session['id']) - ->row(); - return $this->user; - } - return NULL; - } - - /** - * Formats a date - * @param string $date - the data in RFC3999 format - * @returns the formatted date - */ - public function date($date) { - $date=date_create($date); - return date_format($date, "Y-m-d D H:m"); - } - -} - -?> |