<?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; /** * 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(); } /** * Loads current session * @param string $jwt - the user provided JWT */ private function get_session($jwt) { $query = $this->db ->select("_api.verify_jwt('" . $jwt . "') AS user_id;"); $result = $query->row(); $user_id = $result['user_id']; if ($user_id) { $this->session = array( 'id' => $user_id, 'jwt' => $jwt ); } } /** * Loads a css html link * @param string $path - the path to the css file */ public function link_css($path) { return '<link rel="stylesheet" href="/public/' . $path . '">'; } /** * Loads a js html link * @param string $path - the path to the js file */ public function link_js($path) { return '<script src="/public/'. $path . '"></script>'; } /** * Gets the current user */ public function user() { if ($this->session) { return $this->db ->select('*') ->from('api.user') ->where('id') ->eq($this->session['id']) ->row(); } else { return NULL; } } } ?>