mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2024-11-26 14:07:08 +00:00
94 lines
3.3 KiB
PHP
94 lines
3.3 KiB
PHP
<?php
|
|
|
|
include 'config.php';
|
|
|
|
if (isset($_POST["submitted"])) {
|
|
$error_message = joinTeam();
|
|
}
|
|
|
|
function joinTeam() {
|
|
global $DB, $YEAR, $MAIL_ADDRESS, $access_code, $data;
|
|
|
|
if ($_SESSION["team_id"] != NULL)
|
|
return "Vous êtes déjà dans une équipe.";
|
|
|
|
$access_code = htmlspecialchars($_POST["access_code"]);
|
|
|
|
if (!isset($access_code) || strlen($access_code) != 6)
|
|
return "Le code d'accès doit comporter 6 caractères.";
|
|
|
|
$result = $DB->query("SELECT * FROM `teams` WHERE `access_code` = '" . $access_code . "' AND `year` = '$YEAR';");
|
|
if (($data = $result->fetch()) === FALSE)
|
|
return "Ce code d'accès est invalide.";
|
|
|
|
if ($_SESSION["role"] != "PARTICIPANT" && $_SESSION["role"] != "ENCADRANT")
|
|
return "Seuls les participants et les encadrants peuvent rejoindre une équipe.";
|
|
|
|
if ($data["validation_status"] != "NOT_READY")
|
|
return "Cette équipe est déjà en cours de validation ou validée, vous ne pouvez pas la rejoindre.";
|
|
|
|
for ($i = 1; $i <= $_SESSION["role"] == "PARTICIPANT" ? 6 : 2; ++$i) {
|
|
if ($data[strtolower($_SESSION["role"]) . "_" . strval($i)] == NULL)
|
|
break;
|
|
}
|
|
|
|
if ($_SESSION["role"] == "PARTICIPANT" && $i == 7 || $_SESSION["role"] == "ENCADRANT" && $i == 3)
|
|
return "Il n'y a plus de place pour vous dans l'équipe.";
|
|
|
|
$DB->prepare("UPDATE `users` SET `team_id` = ? WHERE `id` = " . $_SESSION["user_id"] . ";")->execute([$data["id"]]);
|
|
/** @noinspection SqlResolve */
|
|
$DB->prepare("UPDATE `teams` SET `" . strtolower($_SESSION["role"]) . "_" . strval($i) . "` = ? WHERE `id` = " . $data["id"] . ";")->execute([$_SESSION["user_id"]]);
|
|
|
|
$_SESSION["team_id"] = $data["id"];
|
|
$_SESSION["team_validation_status"] = $data["validation_status"];
|
|
|
|
$msg = "Bonjour " . $_SESSION["first_name"] . " " . $_SESSION["surname"] . ",\r\n\r\n";
|
|
$msg .= "Vous venez de rejoindre l'équipe « " . $data["name"] . " » (" . $data["trigram"] . ") pour le TFJM² de " . $data["name"] . " et nous vous en remercions.\r\n\r\n";
|
|
$msg .= "Cordialement,\r\n\r\nL'organisation du TFJM² $YEAR";
|
|
mail($_SESSION["email"], "Équipe rejointe TFJM² $YEAR", $msg, "From: $MAIL_ADDRESS\r\n");
|
|
|
|
return false;
|
|
}
|
|
|
|
?>
|
|
|
|
<?php include "header.php" ?>
|
|
|
|
<?php
|
|
|
|
if (!isset($_SESSION["role"]) or ($_SESSION["role"] != "PARTICIPANT" && $_SESSION["role"] != "ENCADRANT")) {
|
|
?>
|
|
<h2>Vous devez être participant ou encadrant pour pouvoir rejoindre une équipe.</h2>
|
|
<?php } else if (isset($access_code)) { ?>
|
|
Vous avez bien rejoint l'équipe <?php echo $data["name"] ?> !
|
|
<?php } else if ($_SESSION["team_id"] != NULL) { ?>
|
|
<h2>Vous êtes déjà dans une équipe.</h2>
|
|
<?php } else { ?>
|
|
|
|
<?php if (isset($error_message) && $error_message) echo "<h2>Erreur : " . $error_message . "</h2>"; ?>
|
|
|
|
<form method="POST">
|
|
<input type="hidden" name="submitted" value="true" />
|
|
<table style="width: 100%;">
|
|
<tbody>
|
|
<tr>
|
|
<td style="width: 30%;">
|
|
<label for="access_code">Code d'accès :</label>
|
|
</td>
|
|
<td style="width: 70%;">
|
|
<input style="width: 100%;" type="text" id="access_code" name="access_code" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
<input style="width: 100%;" type="submit" value="Rejoindre l'équipe" />
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</form>
|
|
|
|
<?php include "footer.php" ?>
|
|
|
|
<?php } ?>
|