-
Bitha17 authored6a133b7e
Forked from
IF3110-2023-01-18 / Tugas Besar 1
110 commits behind the upstream repository.
UserController.php 2.70 KiB
<?php
// app/controllers/userController.php
require_once(__DIR__ . '/../Models/User.php');
class UserController {
private $userModel;
public function __construct() {
$this->userModel = new UserModel();
}
public function createUser($name, $username, $email, $hashedPass, $isAdmin) {
return $this->userModel->createUser($name, $username, $email, $hashedPass, $isAdmin);
}
public function getUser($userId) {
return $this->userModel->getUser($userId);
}
public function updateUser($userId, $name, $username, $email, $hashedPass, $isAdmin) {
return $this->userModel->updateUser($userId, $name, $username, $email, $hashedPass, $isAdmin);
}
public function deleteUser($userId) {
return $this->userModel->deleteUser($userId);
}
public function getAllUsers() {
return $this->userModel->getAllUsers();
}
public function registerUser($name, $username, $email, $password, $isAdmin) {
return $this->createUser($name, $username, $email, password_hash($password,PASSWORD_DEFAULT), $isAdmin);
}
public function loginByEmail($email,$password) {
$user = $this->userModel->getUserByEmail($email);
if ($user !== false && password_verify($password, $user['user_hashedPass'])) {
$_SESSION["user_id"] = $user['user_ID'];
return "success";
} else {
return "wrong credentials";
}
}
public function loginByUsername($username,$password) {
$user = $this->userModel->getUserByUsername($username);
if ($user !== false && password_verify($password, $user['user_hashedPass'])) {
$_SESSION["user_id"] = $user['user_ID'];
return "success";
} else {
return "wrong credentials";
}
}
public function logout() {
if (isset($_SESSION["user_id"])) {
unset($_SESSION["user_id"]);
session_destroy();
return "logout successful";
} else {
return "user not logged in";
}
}
public function handleRequest() {
if (isset($_POST['userAction'])) {
if ($_POST['userAction'] === 'login') {
unset($_POST['userAction']);
$emailOrUsername = $_POST['loginIdentifier'];
$password = $_POST['loginPassword'];
if (filter_var($emailOrUsername, FILTER_VALIDATE_EMAIL)){
echo $this->loginByEmail($emailOrUsername, $password);
} else {
echo $this->loginByUsername($emailOrUsername,$password);
}
} else {
// Handle other actions here, if needed
}
}
}
}
?>