Debut de l'ajout des points

This commit is contained in:
Mathis 2025-04-10 16:24:35 +02:00
parent 11ac854f88
commit 229f04d98e
3 changed files with 16 additions and 6 deletions

View File

@ -77,7 +77,7 @@ public class AuthHandler {
} }
databaseService.pool databaseService.pool
.preparedQuery("SELECT password FROM users WHERE email = ?") .preparedQuery("SELECT password,points FROM users WHERE email = ?")
.execute(Tuple.of(email)) .execute(Tuple.of(email))
.onSuccess(result -> { .onSuccess(result -> {
if (result.rowCount() == 0) { if (result.rowCount() == 0) {
@ -88,10 +88,20 @@ public class AuthHandler {
} }
String storedHashedPassword = result.iterator().next().getString("password"); String storedHashedPassword = result.iterator().next().getString("password");
Integer nbPointsUser = result.iterator().next().getInteger("points");
BCrypt.Result verification = BCrypt.verifyer().verify(password.toCharArray(), storedHashedPassword); BCrypt.Result verification = BCrypt.verifyer().verify(password.toCharArray(), storedHashedPassword);
if (verification.verified) { if (verification.verified) {
JsonObject claims = new JsonObject().put("sub", email).put("role", "user"); JsonObject claims = new JsonObject().put("sub", email);
if(nbPointsUser<=30){
claims.put("role", "user");
}else if(nbPointsUser<=60){
claims.put("role", "complexe");
}else if(nbPointsUser>=100){
claims.put("role", "admin");
}
String token = jwtAuth.generateToken(claims); String token = jwtAuth.generateToken(claims);
context.response() context.response()
.setStatusCode(200) .setStatusCode(200)

View File

@ -9,8 +9,8 @@ function Header() {
return ( return (
<header className="bg-white shadow-sm"> <header className="bg-white shadow-sm">
<div className=" max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-4 flex justify-between items-center"> <div className="mx-auto px-4 sm:px-6 lg:px-8 py-4 flex justify-between items-center">
<h1 className="text-2xl font-bold text-indigo-600">VigiMétéo</h1> <Link to="/" className="text-2xl font-bold text-indigo-600">VigiMétéo</Link>
<button <button
className="sm:hidden text-gray-600 hover:text-indigo-600" className="sm:hidden text-gray-600 hover:text-indigo-600"
onClick={() => setIsMenuOpen(!isMenuOpen)} onClick={() => setIsMenuOpen(!isMenuOpen)}
@ -21,7 +21,7 @@ function Header() {
<nav <nav
className={`${ className={`${
isMenuOpen ? "block" : "hidden" isMenuOpen ? "block" : "hidden"
} absolute top-16 left-0 w-full bg-white shadow-md sm:static sm:w-auto sm:flex sm:gap-6 sm:shadow-none`} } absolute top-16 left-0 w-full bg-white shadow-md sm:static sm:w-auto sm:flex sm:gap-6 sm:shadow-none z-50`}
> >
<ul className="flex flex-col sm:flex-row gap-4 sm:gap-6 text-gray-600 p-4 sm:p-0"> <ul className="flex flex-col sm:flex-row gap-4 sm:gap-6 text-gray-600 p-4 sm:p-0">
<li> <li>

View File

@ -11,7 +11,7 @@ function ModifObject({ object, defafficherModif }) {
const [isActive, setActive] = useState(object.status === "active"); const [isActive, setActive] = useState(object.status === "active");
function handleSubmit(event) { function handleSubmit(event) {
event.preventDefault(); // Empêche le rechargement de la page event.preventDefault();
axios axios
.post(`${API_BASE_URL}/modifObjet`, { .post(`${API_BASE_URL}/modifObjet`, {
id: object.id, id: object.id,