mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 09:02:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			125 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
include 'config.php';
 | 
						|
 | 
						|
if (isset($_POST["submitted"])) {
 | 
						|
    $error_message = addOrganizer();
 | 
						|
}
 | 
						|
 | 
						|
function addOrganizer() {
 | 
						|
    global $DB, $YEAR, $MAIL_ADDRESS;
 | 
						|
 | 
						|
    $surname = htmlspecialchars($_POST["surname"]);
 | 
						|
 | 
						|
    if (!isset($surname) || $surname == "")
 | 
						|
        return "Le nom est invalide.";
 | 
						|
 | 
						|
    $first_name = htmlspecialchars($_POST["first_name"]);
 | 
						|
 | 
						|
    if (!isset($first_name) || $first_name == "")
 | 
						|
        return "Le prénom est invalide.";
 | 
						|
 | 
						|
    $email = strtolower(htmlspecialchars($_POST["email"]));
 | 
						|
    if (!isset($email) || $email == "" || !filter_var($email, FILTER_VALIDATE_EMAIL))
 | 
						|
        return "L'adresse e-mail est invalide.";
 | 
						|
 | 
						|
    $admin = isset($_POST["admin"]) && $_POST["admin"] == "on";
 | 
						|
 | 
						|
    $req = $DB->prepare("SELECT `id` FROM `users` WHERE `email` = ? AND `year` = '$YEAR';");
 | 
						|
    $req->execute([$email]);
 | 
						|
    if ($req->fetch() !== FALSE)
 | 
						|
        return "Cette adresse e-mail est déjà utilisée.";
 | 
						|
 | 
						|
    $alphabet = "0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 | 
						|
    $password = "";
 | 
						|
    for ($i = 0; $i < 16; ++$i)
 | 
						|
        $password .= $alphabet[rand(0, strlen($alphabet) - 1)];
 | 
						|
    $hash = password_hash($password, PASSWORD_BCRYPT);
 | 
						|
 | 
						|
    $req = $DB->prepare("INSERT INTO `users`(`email`, `pwd_hash`, `surname`, `first_name`, `role`, `year`)
 | 
						|
                VALUES (?, ?, ?, ?, ?, ?);");
 | 
						|
    $req->execute([$email, $hash, $surname, $first_name, $admin ? "ADMIN" : "ORGANIZER", $YEAR]);
 | 
						|
 | 
						|
    $msg = "Bonjour " . $first_name . " " . $surname . ",\r\n\r\n"
 | 
						|
        . "Vous recevez ce message (envoyé automatiquement) car vous êtes organisateur d'un des tournois du TFJM². "
 | 
						|
        . "Veuillez trouver ci-dessous vos informations d'utilisateur pour le site officiel des inscriptions. "
 | 
						|
        . "Elles vous permettront de gérer les inscriptions des équipes de votre tournoi.\r\n\r\n"
 | 
						|
        . "Votre mot de passe est : $password\r\n\r\n"
 | 
						|
        . "Notez bien que ce mot de passe est temporaire, et pour des raisons de sécurité vous devrez le changer "
 | 
						|
        . "lors de votre prochaine connexion sur le site.\r\n\r\n"
 | 
						|
        . "Merci beaucoup pour votre aide !\r\n\r\n"
 | 
						|
        . "Les organisateurs du TFJM²";
 | 
						|
 | 
						|
    mail($email, "Organisateur du TFJM²", $msg, "From: $MAIL_ADDRESS\r\n");
 | 
						|
 | 
						|
    return false;
 | 
						|
}
 | 
						|
 | 
						|
?>
 | 
						|
 | 
						|
<?php include "header.php" ?>
 | 
						|
 | 
						|
<?php
 | 
						|
 | 
						|
if (!isset($_SESSION["role"]) or $_SESSION["role"] != "ADMIN") {
 | 
						|
    ?>
 | 
						|
    <h2>Vous n'êtes pas autorisé à accéder à cette page.</h2>
 | 
						|
<?php } else { ?>
 | 
						|
 | 
						|
    <?php if (isset($error_message)) {
 | 
						|
        if ($error_message !== false) {
 | 
						|
            echo "<h2>Erreur : " . $error_message . "</h2>";
 | 
						|
        } else {
 | 
						|
            echo "<h2>Organisateur ajouté avec succès ! Ses identifiants ont été transmis par mail.</h2>";
 | 
						|
        }
 | 
						|
    }?>
 | 
						|
 | 
						|
    <form method="POST">
 | 
						|
        <input type="hidden" name="submitted" value="true" />
 | 
						|
        <table style="width: 100%;">
 | 
						|
            <tbody>
 | 
						|
            <tr>
 | 
						|
                <td style="width: 30%;">
 | 
						|
                    <label for="surname">Nom :</label>
 | 
						|
                </td>
 | 
						|
                <td style="width: 70%;">
 | 
						|
                    <input style="width: 100%;" type="text" id="surname" name="surname" />
 | 
						|
                </td>
 | 
						|
            </tr>
 | 
						|
            <tr>
 | 
						|
                <td>
 | 
						|
                    <label for="first_name">Prénom :</label>
 | 
						|
                </td>
 | 
						|
                <td>
 | 
						|
                    <input style="width: 100%;" type="text" id="first_name" name="first_name" />
 | 
						|
                </td>
 | 
						|
            </tr>
 | 
						|
            <tr>
 | 
						|
                <td>
 | 
						|
                    <label for="email">Email :</label>
 | 
						|
                </td>
 | 
						|
                <td>
 | 
						|
                    <input style="width: 100%;" type="email" id="email" name="email" />
 | 
						|
                </td>
 | 
						|
            </tr>
 | 
						|
            <tr>
 | 
						|
                <td>
 | 
						|
                    <label for="admin">Compte administrateur :</label>
 | 
						|
                </td>
 | 
						|
                <td>
 | 
						|
                    <input style="width: 100%;" type="checkbox" id="admin" name="admin" />
 | 
						|
                </td>
 | 
						|
            </tr>
 | 
						|
            <tr>
 | 
						|
                <td colspan="2">
 | 
						|
                    <input style="width: 100%;" type="submit" value="Ajouter un organisateur" />
 | 
						|
                </td>
 | 
						|
            </tr>
 | 
						|
            </tbody>
 | 
						|
        </table>
 | 
						|
    </form>
 | 
						|
 | 
						|
    <?php include "footer.php" ?>
 | 
						|
 | 
						|
<?php } ?>
 |