_username; } public function getUserId() { return $this->_userId; } /** * Open session, set field variables */ public function __construct() { session_start(); $this->_username = "None"; $this->_loggedIn = false; $this->_userId = "0"; $this->_accessLevel = null; // if user logged in, set variables. if(isset($_SESSION['login'])) { $this->_username = $_SESSION['login']; $this->_userId = $_SESSION['uid']; $this->_loggedIn = true; $this->_accessLevel = $_SESSION['accessLevel']; } } private function setAccessLevel($level) { $this->_accessLevel = $level; $_SESSION['accessLevel'] = $level; } public function getAccessLevel() { return $this->_accessLevel; } /** * @param $username * @param $password * @return bool * Using a username and password, authenticate a user and assign variables from query */ public function Authenticate($username, $password): bool { $users = new UserDataSet(); $userDataSet = $users->checkUserCredentials($username, $password); $accessLevel = $users->checkAccessLevel($username); if(count($userDataSet) > 0) { $_SESSION['login'] = $username; $_SESSION['uid'] = $userDataSet[0]->getId(); $this->setAccessLevel($accessLevel); $this->_loggedIn = true; $this->_username = $username; $this->_userId = $userDataSet[0]->getId(); return true; } else { $this->_loggedIn = false; return false; } } /** * @return void * Unset user variables from session, and set variables to default values - destroying session. */ public function logout() { unset($_SESSION['login']); unset($_SESSION['uid']); $this->_loggedIn = false; $this->_username = "None"; $this->_userId = "0"; session_destroy(); } public function isLoggedIn(): bool { return $this->_loggedIn; } public function __destruct() { } }