diff options
Diffstat (limited to '')
-rw-r--r-- | src/web/_controller/auth.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/web/_controller/auth.php b/src/web/_controller/auth.php new file mode 100644 index 0000000..fd1931c --- /dev/null +++ b/src/web/_controller/auth.php @@ -0,0 +1,45 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ +class Auth_controller extends XSS_Controller { + + private $auth_model; + + function __construct() { + parent::__construct(); + $this->auth_model = $this->load_model('auth'); + $this->load_lang('auth'); + } + + public function index(): void { + $this->load_controller('index')->index(); + } + + public function login(): void { + if ($this->auth_model->session()) + $this->redirect('/home'); + + parent::index(); + $data = $this->auth_model->get_data(); + $this->view('head', $data); + $this->view('auth/main', $data); + $this->view('footer', $data); + } + + public function logout(): void { + if ($this->auth_model->session()) + $_SESSION['jwt'] = NULL; + $this->redirect('/auth/login'); + } + + public function update(): void { + $key = $this->post_data('key'); + $value = $this->post_data('value'); + + if (!$key || !$value) + $this->error(400); + + $_SESSION[$key] = $value; + } + +} + +?> |