make basic account view

This commit is contained in:
Thomas Rubini 2023-01-17 09:00:13 +01:00
parent 65d96820a2
commit 7fae33a7b3
No known key found for this signature in database
GPG Key ID: C7D287C8C1CAC373
4 changed files with 46 additions and 13 deletions

View File

@ -1,5 +1,9 @@
<?php <?php
$__SESSION_TIMEOUT = 2*60*60;
ini_set("session.gc_maxlifetime", $__SESSION_TIMEOUT);
ini_set("session.cookie_lifetime", $__SESSION_TIMEOUT);
final class UserController final class UserController
{ {
@ -20,11 +24,23 @@ final class UserController
$S_password = self::get_or_die($A_postParams, "password"); $S_password = self::get_or_die($A_postParams, "password");
$O_userModel = new UserModel(); $O_userModel = new UserModel();
if ($O_userModel->isPasswordValid($S_email, $S_password)) { $A_user = $O_userModel->getUserByEmail($S_email);
View::show("user/signin", array("success" => True)); if ($A_user == null) {
} else { return View::show("user/signin", array("success" => False, "msg" => "No user with this email"));
View::show("user/signin", array("success" => False));
} }
if (!password_verify($S_password, $A_user["PASS_HASH"])) {
return View::show("user/signin", array("success" => False, "msg" => "Invalid password"));
}
if ($A_user["DISABLED"]) {
return View::show("user/signin", array("success" => False, "msg" => "This account is disabled"));
}
session_start();
$_SESSION["ID"] = $A_user["ID"];
$_SESSION["EMAIL"] = $A_user["EMAIL"];
$_SESSION["NAME"] = $A_user["NAME"];
$_SESSION["ADMIN"] = $A_user["ADMIN"];
View::show("user/signin", array("success" => True));
} }
public function signUpAction(Array $A_urlParams = null, Array $A_postParams = null) public function signUpAction(Array $A_urlParams = null, Array $A_postParams = null)
@ -53,6 +69,22 @@ final class UserController
$O_userModel->createUser($S_email, $S_username, $S_password_hash); $O_userModel->createUser($S_email, $S_username, $S_password_hash);
return View::show("user/signup", array("success" => True)); return View::show("user/signup", array("success" => True));
}
public function viewAction(Array $A_urlParams = null, Array $A_postParams = null)
{
if(count($A_urlParams)!=0){
return View::show("errors/404");
}
session_start();
if(!isset($_SESSION)){
echo "301 NOT LOGIN";
return;
}
return View::show("user/view", $_SESSION);
} }
} }

View File

@ -24,17 +24,15 @@ final class UserModel
} }
public function isPasswordValid($S_email, $S_password){ public function getUserByEmail($S_email){
$O_model = Model::get(); $O_model = Model::get();
$stmt = $O_model->prepare("SELECT PASS_HASH FROM USER WHERE EMAIL=:email"); $stmt = $O_model->prepare("SELECT * FROM USER WHERE email=:email");
$stmt->bindParam("email", $S_email); $stmt->bindParam("email", $S_email);
$stmt->execute(); $stmt->execute();
if($stmt->rowCount()==1){ $row = $stmt->fetch();
$row = $stmt->fetch(); if ($row === false) return null;
return password_verify($S_password, $row["PASS_HASH"]); return $row;
}
return False;
} }
public function getNameByID($I_id) public function getNameByID($I_id)

View File

@ -3,7 +3,7 @@
if ($A_view["success"]) { if ($A_view["success"]) {
echo "Authentifié avec succès !"; echo "Authentifié avec succès !";
} else { } else {
echo "Authentification échouée"; echo "Authentification échouée. Raison : ".$A_view["msg"];
} }
?> ?>
</p> </p>

3
Views/user/view.php Normal file
View File

@ -0,0 +1,3 @@
<p> Your account : </p>
<p> Email : <?= $A_view["EMAIL"] ?> </p>
<p> Name : <?= $A_view["NAME"] ?> </p>