mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 13:12:17 +01:00 
			
		
		
		
	L'adresse mail doit être confirmée pour pouvoir se connecter
This commit is contained in:
		@@ -21,8 +21,12 @@ if (isset($_GET["reset_password"]) && isset($_GET["token"]) && !isset($_SESSION[
 | 
				
			|||||||
        $error_message = resetPassword();
 | 
					        $error_message = resetPassword();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (isset($_GET["confirmation-mail"]) && !isset($_SESSION["user_id"])) {
 | 
				
			||||||
 | 
					    $error_message = sendConfirmEmail();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function login() {
 | 
					function login() {
 | 
				
			||||||
    global $DB, $YEAR;
 | 
					    global $DB, $URL_BASE, $YEAR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $email = htmlspecialchars($_POST["email"]);
 | 
					    $email = htmlspecialchars($_POST["email"]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -31,10 +35,15 @@ function login() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    $password = htmlspecialchars($_POST["password"]);
 | 
					    $password = htmlspecialchars($_POST["password"]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $result = $DB->query("SELECT `id`, `pwd_hash`, `email`, `surname`, `first_name`, `role`, `team_id` FROM `users` WHERE `email` = '" . $email . "';");
 | 
					    $result = $DB->query("SELECT `id`, `pwd_hash`, `email`, `surname`, `first_name`, `role`, `team_id`, `confirm_email` FROM `users` WHERE `email` = '" . $email . "';");
 | 
				
			||||||
    if (($data = $result->fetch()) === FALSE)
 | 
					    if (($data = $result->fetch()) === FALSE)
 | 
				
			||||||
        return "Le compte n'existe pas.";
 | 
					        return "Le compte n'existe pas.";
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if ($data["confirm_email"] !== NULL) {
 | 
				
			||||||
 | 
							$_SESSION["confirm_email"] = $email;
 | 
				
			||||||
 | 
							return "L'adresse mail n'a pas été validée. Veuillez vérifier votre boîte mail (surtout vos spams). <a href=\"$URL_BASE/connexion/confirmation-mail\">Cliquez ici pour renvoyer le mail de confirmation</a>.";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    if (!password_verify($password, $data["pwd_hash"]))
 | 
					    if (!password_verify($password, $data["pwd_hash"]))
 | 
				
			||||||
        return "Le mot de passe est incorrect.";
 | 
					        return "Le mot de passe est incorrect.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -97,9 +106,41 @@ function resetPassword() {
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	$DB->prepare("UPDATE `users` SET `pwd_hash` = ?, `forgotten_password` = NULL WHERE `id` = ?;")->execute([$hash, $id]);
 | 
						$DB->prepare("UPDATE `users` SET `pwd_hash` = ?, `forgotten_password` = NULL WHERE `id` = ?;")->execute([$hash, $id]);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						$msg = "Bonjour,\r\n\r\nNous vous informons que votre mot de passe vient d'être modifié. "
 | 
				
			||||||
 | 
					        . "Si vous n'êtes pas à l'origine de cette manipulation, veuillez immédiatement vérifier vos accès à votre boîte mail et changer votre mot de passe sur la plateforme d'inscription.\r\n\r\n"
 | 
				
			||||||
 | 
							. "Cordialement,\r\n\r\nLe comité national d'organisation du TFJM²";
 | 
				
			||||||
 | 
						mail($email, "Mot de passe modifié TFJM²", $msg, "From: $MAIL_ADDRESS\r\n");
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	return false;
 | 
						return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function sendConfirmEmail() {
 | 
				
			||||||
 | 
					    global $DB, $URL_BASE, $MAIL_ADDRESS, $YEAR;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    $email = htmlspecialchars($_SESSION["confirm_email"]);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if (!isset($email)) {
 | 
				
			||||||
 | 
					        header("Location: $URL_BASE/connexion");
 | 
				
			||||||
 | 
					        exit();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    $data = $DB->query("SELECT `confirm_email` FROM `users` WHERE `email` = '$email' AND `year` = $YEAR;")->fetch();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if ($data === FALSE) {
 | 
				
			||||||
 | 
					        unset($_SESSION["confirm_email"]);
 | 
				
			||||||
 | 
							header("Location: $URL_BASE/connexion");
 | 
				
			||||||
 | 
							exit();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						$confirm_email_uid = $data["confirm_email"];
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						$msg = "Bonjour,\r\n\r\nPour confirmer votre adresse mail, cliquez ici : $URL_BASE/confirmer_mail/$confirm_email_uid\r\n\r\n"
 | 
				
			||||||
 | 
					            . "Cordialement,\r\n\r\nLe comité national d'organisation du TFJM²";
 | 
				
			||||||
 | 
						mail($email, "Confirmation d'adresse mail TFJM² $YEAR", $msg, "From: $MAIL_ADDRESS\r\n");
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<?php include "header.php" ?>
 | 
					<?php include "header.php" ?>
 | 
				
			||||||
@@ -112,6 +153,8 @@ if (isset($error_message) && $error_message === FALSE) {
 | 
				
			|||||||
        echo "Le mail de récupération de mot de passe a bien été envoyé.";
 | 
					        echo "Le mail de récupération de mot de passe a bien été envoyé.";
 | 
				
			||||||
    else if (isset($_POST["reset_password"]))
 | 
					    else if (isset($_POST["reset_password"]))
 | 
				
			||||||
        echo "Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.";
 | 
					        echo "Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.";
 | 
				
			||||||
 | 
					    else if (isset($_GET["confirmation-mail"]))
 | 
				
			||||||
 | 
					        echo "Le mail a bien été renvoyé.";
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo "Connexion réussie !";
 | 
					        echo "Connexion réussie !";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -140,7 +183,7 @@ else if (isset($_SESSION["user_id"])) { ?>
 | 
				
			|||||||
                </tbody>
 | 
					                </tbody>
 | 
				
			||||||
            </table>
 | 
					            </table>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
	<?php } else if (isset($_GET["reset_password"])) { ?>
 | 
						<?php } elseif (isset($_GET["reset_password"])) { ?>
 | 
				
			||||||
        <form method="POST">
 | 
					        <form method="POST">
 | 
				
			||||||
            <input type="hidden" name="token" value="<?= $_GET["token"] ?>" />
 | 
					            <input type="hidden" name="token" value="<?= $_GET["token"] ?>" />
 | 
				
			||||||
            <table style="width: 100%;">
 | 
					            <table style="width: 100%;">
 | 
				
			||||||
@@ -169,6 +212,7 @@ else if (isset($_SESSION["user_id"])) { ?>
 | 
				
			|||||||
                </tbody>
 | 
					                </tbody>
 | 
				
			||||||
            </table>
 | 
					            </table>
 | 
				
			||||||
        </form>
 | 
					        </form>
 | 
				
			||||||
 | 
					    <?php } elseif (isset($_GET["confirmation-mail"])) { ?>
 | 
				
			||||||
	<?php } else { ?>
 | 
						<?php } else { ?>
 | 
				
			||||||
        <form method="POST">
 | 
					        <form method="POST">
 | 
				
			||||||
            <input type="hidden" name="submitted" value="true" />
 | 
					            <input type="hidden" name="submitted" value="true" />
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -154,7 +154,7 @@ if (isset($error_message) && $error_message === FALSE) {
 | 
				
			|||||||
    <h2>Votre compte a bien été mis à jour !</h2>
 | 
					    <h2>Votre compte a bien été mis à jour !</h2>
 | 
				
			||||||
    <?php
 | 
					    <?php
 | 
				
			||||||
    if (isset($email) && filter_var($email, FILTER_VALIDATE_EMAIL)) {
 | 
					    if (isset($email) && filter_var($email, FILTER_VALIDATE_EMAIL)) {
 | 
				
			||||||
        echo "Votre adresse mail a bien été changée. Veuillez vérifier votre boîte mail pour valider votre nouvelle adresse";
 | 
					        echo "Votre adresse mail a bien été changée. Veuillez vérifier votre boîte mail pour valider votre nouvelle adresse, vous en aurez besoin pour vous reconnecter.";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    ?>
 | 
					    ?>
 | 
				
			||||||
<?php } ?>
 | 
					<?php } ?>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user