1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-06-26 00:27:32 +02:00

Utilisation d'un dispatcher pour gérer les redirections

This commit is contained in:
galaxyoyo
2019-09-07 13:42:36 +02:00
parent ae648d7615
commit 4d3f6d1847
45 changed files with 246 additions and 190 deletions

View File

@ -1,9 +1,7 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["role"]) || ($_SESSION["role"] != Role::PARTICIPANT && $_SESSION["role"] != Role::ENCADRANT))
require_once "../403.php";
require_once "server_files/403.php";
$tournaments_response = $DB->query("SELECT `id`, `name` FROM `tournaments` WHERE `date_inscription` > CURRENT_DATE AND `year` = '$YEAR';");
@ -62,6 +60,4 @@ function registerTeam() {
return false;
}
require_once "../views/header.php";
require_once "../views/ajouter_equipe.php";
require_once "../views/footer.php";
require_once "server_files/views/ajouter_equipe.php";

View File

@ -1,9 +1,7 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["role"]) || $_SESSION["role"] != Role::ADMIN)
require_once "../403.php";
require_once "server_files/403.php";
if (isset($_POST["submitted"])) {
$error_message = addOrganizer();
@ -59,6 +57,4 @@ function addOrganizer()
return false;
}
require_once "../views/header.php";
require_once "../views/ajouter_organisateur.php";
require_once "../views/footer.php";
require_once "server_files/views/ajouter_organisateur.php";

View File

@ -1,9 +1,7 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["role"]) || $_SESSION["role"] != Role::ADMIN)
require_once "../403.php";
require_once "server_files/403.php";
$orgas_response = $DB->query("SELECT `id`, `surname`, `first_name` FROM `users` WHERE (`role` = 'ORGANIZER' OR `role` = 'ADMIN') AND `year` = '$YEAR';");
@ -109,6 +107,4 @@ function registerTournament() {
return false;
}
require_once "../views/header.php";
require_once "../views/ajouter_tournoi.php";
require_once "../views/footer.php";
require_once "server_files/views/ajouter_tournoi.php";

View File

@ -1,7 +1,5 @@
<?php
require_once "../config.php";
$token = $_GET["token"];
if (isset($token)) {
@ -16,6 +14,6 @@ if (isset($token)) {
else {
$error_message = "Il n'y a pas de compte à valider !";
}
require_once "../views/header.php";
require_once "server_files/views/header.php";
echo "<h2>$error_message</h2>";
require_once "../views/footer.php";
require_once "server_files/views/footer.php";

View File

@ -1,7 +1,5 @@
<?php
require_once "../config.php";
if (isset($_POST["submitted"]) && !isset($_SESSION["user_id"])) {
$error_message = login();
}
@ -132,6 +130,4 @@ function sendConfirmEmail() {
return false;
}
require_once "../views/header.php";
require_once "../views/connexion.php";
require_once "../views/footer.php";
require_once "server_files/views/connexion.php";

View File

@ -1,10 +1,8 @@
<?php
require_once "../config.php";
unset($_SESSION["user_id"]);
session_destroy();
require_once "../views/header.php";
require_once "server_files/views/header.php";
echo "<h2>Déconnexion réussie !</h2>";
require_once "../views/footer.php";
require_once "server_files/views/footer.php";

View File

@ -1,16 +1,14 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["user_id"]) || $_SESSION["role"] != Role::ORGANIZER && $_SESSION["role"] != Role::ADMIN)
require_once "../403.php";
require_once "server_files/403.php";
$trigram = htmlspecialchars($_GET["trigram"]);
$team = Team::fromTrigram($trigram);
if ($team === null)
require_once "../404.php";
require_once "server_files/404.php";
if (isset($_POST["validate"])) {
$team->setValidationStatus(ValidationStatus::VALIDATED);
@ -73,6 +71,4 @@ if ($team->isSelectedForFinal()) {
$tournament = Tournament::fromId($team->getTournamentId());
require_once "../views/header.php";
require_once "../views/equipe.php";
require_once "../views/footer.php";
require_once "server_files/views/equipe.php";

View File

@ -1,6 +1,3 @@
<?php
require_once "../config.php";
require_once "../views/header.php";
require_once "../views/index.php";
require_once "../views/footer.php";
require_once "server_files/views/index.php";

View File

@ -1,20 +1,18 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["role"]))
require_once "../403.php";
require_once "server_files/403.php";
$id = $_GET["id"];
$user = User::fromId($id);
if ($_SESSION["role"] != Role::ORGANIZER && $_SESSION["role"] != Role::ADMIN) {
if ($user->getId() != $_SESSION["user_id"] && ($user->getTeamId() == null || $user->getTeamId() != $_SESSION["user"]->getTeamId()))
require_once "../403.php";
require_once "server_files/403.php";
}
if ($user === null) {
require_once "../404.php";
require_once "server_files/404.php";
}
$team = Team::fromId($user->getTeamId());
@ -22,6 +20,4 @@ $team = Team::fromId($user->getTeamId());
$documents_req = $DB->query("SELECT * FROM `documents` WHERE `user` = $id;");
$tournaments_req = $DB->query("SELECT `tournament`, `name` FROM `organizers` JOIN `tournaments` ON `tournaments`.`id` = `tournament` WHERE `organizer` = $id ORDER BY `date_start`, `name`;");
require_once "../views/header.php";
require_once "../views/informations.php";
require_once "../views/footer.php";
require_once "server_files/views/informations.php";

View File

@ -1,7 +1,5 @@
<?php
require_once "../config.php";
if (isset($_POST["submitted"])) {
$error_message = register();
}
@ -128,6 +126,4 @@ function register() {
return false;
}
require_once "../views/header.php";
require_once "../views/inscription.php";
require_once "../views/footer.php";
require_once "server_files/views/inscription.php";

View File

@ -1,7 +1,5 @@
<?php
require_once "../config.php";
if (isset($_POST["submitted"])) {
$error_message = updateAccount();
} elseif (isset($_POST["submitted_password"])) {
@ -9,7 +7,7 @@ if (isset($_POST["submitted"])) {
}
if (!isset($_SESSION["user_id"]))
require_once "../403.php";
require_once "server_files/403.php";
/** @var User $user */
$user = $_SESSION["user"];
@ -126,6 +124,4 @@ function updatePassword()
return false;
}
require_once "../views/header.php";
require_once "../views/mon_compte.php";
require_once "../views/footer.php";
require_once "server_files/views/mon_compte.php";

View File

@ -1,7 +1,5 @@
<?php
require_once "../config.php";
if (isset($_POST["leave_team"])) {
quitTeam();
exit();
@ -30,7 +28,7 @@ if (isset($_SESSION["user_id"]) && isset($_SESSION["team"]) && $_SESSION["team"]
$documents_req->execute([$_SESSION["user_id"], $_SESSION[$team->isSelectedForFinal() ? $_SESSION["final"]->getId() : $tournament->getId()]]);
}
else
require_once "../403.php";
require_once "server_files/403.php";
if (isset($_POST["team_edit"])) {
$error_message = updateTeam();
@ -158,6 +156,4 @@ function checkCanValidate()
return $can_validate;
}
require_once "../views/header.php";
require_once "../views/mon_equipe.php";
require_once "../views/footer.php";
require_once "server_files/views/mon_equipe.php";

View File

@ -1,9 +1,7 @@
<?php
require_once "../config.php";
if (isset($_SESSION["team"]) || !isset($_SESSION["user"]) || ($_SESSION["role"] != Role::PARTICIPANT && $_SESSION["role"] != Role::ENCADRANT))
require_once "../403.php";
require_once "server_files/403.php";
if (isset($_POST["submitted"])) {
$error_message = joinTeam();
@ -52,6 +50,4 @@ function joinTeam() {
return false;
}
require_once "../views/header.php";
require_once "../views/rejoindre_equipe.php";
require_once "../views/footer.php";
require_once "server_files/views/rejoindre_equipe.php";

View File

@ -1,20 +1,19 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["team_id"]))
require_once "../403.php";
if (!isset($_SESSION["team"]))
require_once "server_files/403.php";
if (isset($_POST["send_solution"])) {
$error_message = saveSolution();
}
$solutions_req = $DB->prepare("SELECT `file_id`, `problem`, COUNT(`problem`) AS `version` FROM `solutions` WHERE `team` = ? AND `tournament` = ? GROUP BY `problem`, `uploaded_at` ORDER BY `problem`, `uploaded_at` DESC;");
$solutions_req->execute([$_SESSION["team_id"], $_SESSION[isset($_SESSION["final_id"]) ? "final_id" : "tournament_id"]]);
/** @var Team $team */
$team = $_SESSION["team"];
$tournament_req = $DB->prepare("SELECT `date_solutions` FROM `tournaments` WHERE `id` = ?;");
$tournament_req->execute([$_SESSION[isset($_SESSION["final_id"]) ? "final_id" : "tournament_id"]]);
$tournament_data = $tournament_req->fetch();
$solutions_req = $DB->prepare("SELECT `file_id`, `problem`, COUNT(`problem`) AS `version` FROM `solutions` WHERE `team` = ? AND `tournament` = ? GROUP BY `problem`, `uploaded_at` ORDER BY `problem`, `uploaded_at` DESC;");
$solutions_req->execute([$team->getId(), $_SESSION[$team->isSelectedForFinal() ? $_SESSION["final"]->getId() : $team->getTournamentId()]]);
$tournament = Tournament::fromId($team->isSelectedForFinal() ? $_SESSION["final"]->getId() : $team->getTournamentId());
function saveSolution() {
global $LOCAL_PATH, $DB;
@ -58,6 +57,4 @@ function saveSolution() {
return false;
}
require_once "../views/header.php";
require_once "../views/solutions.php";
require_once "../views/footer.php";
require_once "server_files/views/solutions.php";

View File

@ -1,9 +1,7 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["role"]) || $_SESSION["role"] != Role::ADMIN && $_SESSION["role"] != Role::ORGANIZER)
require_once "../403.php";
require_once "server_files/403.php";
/** @noinspection SqlAggregates */
$req = $DB->query("SELECT `tournaments`.`id`, `name` FROM `tournaments` JOIN `organizers` ON `tournament` = `tournaments`.`id` WHERE "
@ -47,7 +45,7 @@ if (isset($_POST["download_zip"])) {
exit();
}
require_once "../views/header.php";
require_once "server_files/views/header.php";
while (($data_tournament = $req->fetch()) !== false) {
echo "<h1>Tournoi de " . $data_tournament["name"] . "</h1>\n";
@ -72,4 +70,4 @@ while (($data_tournament = $req->fetch()) !== false) {
echo "</form><hr />\n";
}
require_once "../views/footer.php";
require_once "server_files/views/footer.php";

View File

@ -1,20 +1,19 @@
<?php
require_once "../config.php";
if (!isset($_SESSION["team_id"]))
require_once "../403.php";
if (!isset($_SESSION["team"]))
require_once "server_files/403.php";
if (isset($_POST["send_synthese"])) {
$error_message = saveSynthese();
}
$syntheses_req = $DB->prepare("SELECT `file_id`, `dest`, COUNT(`dest`) AS `version` FROM `syntheses` WHERE `team` = ? AND `tournament` = ? GROUP BY `dest`, `uploaded_at` ORDER BY `dest`, `uploaded_at` DESC;");
$syntheses_req->execute([$_SESSION["team_id"], $_SESSION[isset($_SESSION["final_id"]) ? "final_id" : "tournament_id"]]);
/** @var Team $team */
$team = $_SESSION["team"];
$tournament_req = $DB->prepare("SELECT `date_solutions`, `date_syntheses` FROM `tournaments` WHERE `id` = ?;");
$tournament_req->execute([$_SESSION[isset($_SESSION["final_id"]) ? "final_id" : "tournament_id"]]);
$tournament_data = $tournament_req->fetch();
$syntheses_req = $DB->prepare("SELECT `file_id`, `dest`, COUNT(`dest`) AS `version` FROM `syntheses` WHERE `team` = ? AND `tournament` = ? GROUP BY `dest`, `uploaded_at` ORDER BY `dest`, `uploaded_at` DESC;");
$syntheses_req->execute([$team->getId(), $_SESSION[$team->isSelectedForFinal() ? $_SESSION["final"]->getId() : $team->getTournamentId()]]);
$tournament = Tournament::fromId($team->isSelectedForFinal() ? $_SESSION["final"]->getId() : $team->getTournamentId());
function saveSynthese() {
global $LOCAL_PATH, $DB;
@ -54,6 +53,4 @@ function saveSynthese() {
return false;
}
require_once "../views/header.php";
require_once "../views/syntheses.php";
require_once "../views/footer.php";
require_once "server_files/views/syntheses.php";

View File

@ -1,7 +1,5 @@
<?php require_once "../config.php";
if (!isset($_SESSION["role"]) || $_SESSION["role"] != Role::ADMIN && $_SESSION["role"] != Role::ORGANIZER)
require_once "../403.php";
<?php if (!isset($_SESSION["role"]) || $_SESSION["role"] != Role::ADMIN && $_SESSION["role"] != Role::ORGANIZER)
require_once "server_files/403.php";
if (isset($_POST["download_zip"])) {
$id = $_POST["tournament"];
@ -40,7 +38,7 @@ if (isset($_POST["download_zip"])) {
exit();
}
require_once "../views/header.php";
require_once "server_files/views/header.php";
$req = $DB->query("SELECT `tournaments`.`id`, `name` FROM `tournaments` JOIN `organizers` ON `tournament` = `tournaments`.`id` WHERE "
. ($_SESSION["role"] == Role::ADMIN ? "" : "`organizer` = '" . $_SESSION["user_id"] . "' AND ")
@ -69,4 +67,4 @@ while (($data_tournament = $req->fetch()) !== false) {
echo "</form><hr />\n";
}
require_once '../views/footer.php';
require_once "server_files/views/footer.php";

View File

@ -1,13 +1,11 @@
<?php
require_once "../config.php";
$tournament_name = htmlspecialchars($_GET["nom"]);
$tournament_name = htmlspecialchars($_GET["name"]);
$tournament = Tournament::fromName($tournament_name);
if ($tournament === null)
require_once "../404.php";
require_once "server_files/404.php";
$orgas_req = $DB->query("SELECT `users`.`id` AS `id` FROM `users` JOIN `organizers` ON `users`.`id` = `organizer` WHERE `tournament` = " . $tournament->getId() . ";");
$orgas = [];
@ -18,7 +16,7 @@ while (($orga_data = $orgas_req->fetch()) !== false) {
}
if (isset($_GET["modifier"]) && $_SESSION["role"] != Role::ADMIN && !in_array($_SESSION["user_id"], $orgas_id))
require_once "../403.php";
require_once "server_files/403.php";
if (isset($_POST["edit_tournament"])) {
$error_message = updateTournament();
@ -123,6 +121,4 @@ function updateTournament() {
exit();
}
require_once "../views/header.php";
require_once "../views/tournoi.php";
require_once "../views/footer.php";
require_once "server_files/views/tournoi.php";

View File

@ -1,11 +1,7 @@
<?php
require_once "../config.php";
$response = $DB->query("SELECT `name`, `date_start`, `date_end`, `date_inscription`, `date_solutions`, `size` FROM `tournaments`
WHERE `year` = '$YEAR' AND `final` = false ORDER BY `date_start`, `name`;");
$final_data = $DB->query("SELECT `name`, `date_start`, `date_end`, `date_solutions`, `size` FROM `tournaments` WHERE `final` AND `year` = $YEAR;")->fetch();
require_once "../views/header.php";
require_once "../views/tournois.php";
require_once "../views/footer.php";
require_once "server_files/views/tournois.php";

View File

@ -1,14 +1,12 @@
<?php
require_once "../config.php";
if (!isset($_GET["file_id"])) {
header("Location: $URL_BASE");
exit();
}
if (!isset($_SESSION["user_id"]))
require_once "../403.php";
require_once "server_files/403.php";
$id = htmlspecialchars($_GET["file_id"]);
$type = "SOLUTION";
@ -34,7 +32,7 @@ if ($data !== false) {
$name = "Problème $problem $trigram.pdf";
if (($_SESSION["role"] == Role::PARTICIPANT || $_SESSION["role"] == Role::ENCADRANT) && (!isset($_SESSION["team"]) || $_SESSION["team"]->getId() != $team->getId()))
require_once "../403.php";
require_once "server_files/403.php";
// TODO Seuls les organisateurs concernés doivent pouvoir télécharger les fichiers
}
@ -49,7 +47,7 @@ if ($data !== false) {
$user = User::fromId($user_id);
if (($_SESSION["role"] == Role::PARTICIPANT || $_SESSION["role"] == Role::ENCADRANT) && $user_id != $_SESSION["user_id"])
require_once "../403.php";
require_once "server_files/403.php";
// TODO Seuls les organisateurs concernés doivent pouvoir télécharger les fichiers
@ -70,7 +68,7 @@ if ($data !== false) {
}
}
else {
require_once "../404.php";
require_once "server_files/404.php";
http_response_code(404);
exit();
}