mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 03:42:11 +01:00 
			
		
		
		
	Utilisation des nouvelles classes, amélioration du code
This commit is contained in:
		@@ -1,63 +1,46 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
function loadUserValues() {
 | 
			
		||||
	global $DB, $URL_BASE, $YEAR;
 | 
			
		||||
	$_SESSION["final"] = Tournament::getFinalTournament();
 | 
			
		||||
 | 
			
		||||
	$_SESSION["user"] = $_SESSION["team"] = $_SESSION["tournament"] = null;
 | 
			
		||||
	unset($_SESSION["user"]);
 | 
			
		||||
	unset($_SESSION["role"]);
 | 
			
		||||
	unset($_SESSION["team"]);
 | 
			
		||||
	unset($_SESSION["tournament"]);
 | 
			
		||||
 | 
			
		||||
	if (isset($_SESSION["user_id"])) {
 | 
			
		||||
		$response = $DB->query("SELECT * FROM `users` WHERE `id` ='" . $_SESSION["user_id"] . "' AND `year` = '$YEAR';");
 | 
			
		||||
		$data = $response->fetch();
 | 
			
		||||
		if ($data === FALSE)
 | 
			
		||||
			unset($_SESSION["user_id"]);
 | 
			
		||||
		else {
 | 
			
		||||
			$_SESSION["email"] = $data["email"];
 | 
			
		||||
			$_SESSION["surname"] = $data["surname"];
 | 
			
		||||
			$_SESSION["first_name"] = $data["first_name"];
 | 
			
		||||
			$_SESSION["birth_date"] = $data["birth_date"];
 | 
			
		||||
			$_SESSION["role"] = $data["role"];
 | 
			
		||||
			$_SESSION["team_id"] = $data["team_id"];
 | 
			
		||||
		$user = $_SESSION["user"] = User::fromId($_SESSION["user_id"]);
 | 
			
		||||
		$_SESSION["role"] = $user->getRole();
 | 
			
		||||
 | 
			
		||||
		if ($user->getTeamId() !== null) {
 | 
			
		||||
			$team = $_SESSION["team"] = Team::fromId($user->getTeamId());
 | 
			
		||||
			$_SESSION["tournament"] = Tournament::fromId($team->getTournamentId());
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (isset($_SESSION["user_id"]) && isset($_SESSION["team_id"]) && $_SESSION["team_id"] != NULL) {
 | 
			
		||||
			$response = $DB->query("SELECT `tournament`, `validation_status`, `final_selection` FROM `teams` WHERE `id` ='" . $_SESSION["team_id"] . "' AND `year` = '$YEAR';");
 | 
			
		||||
			$data = $response->fetch();
 | 
			
		||||
			$_SESSION["tournament_id"] = $data["tournament"];
 | 
			
		||||
			$_SESSION["team_validation_status"] = $data["validation_status"];
 | 
			
		||||
		if (isset($_GET["be-admin"])) {
 | 
			
		||||
			quitTeam();
 | 
			
		||||
			$user->setRole(Role::ADMIN);
 | 
			
		||||
			exit();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ((isset($data["final_selection"]) && $data["final_selection"]) || $_SESSION["role"] == "ADMIN" || $_SESSION["role"] == "ORGANIZER") {
 | 
			
		||||
			$response = $DB->query("SELECT `id`, `name` FROM `tournaments` WHERE `final` AND `year` = $YEAR;");
 | 
			
		||||
			$data = $response->fetch();
 | 
			
		||||
			$_SESSION["final_id"] = $data["id"];
 | 
			
		||||
			$_SESSION["final_name"] = $data["name"];
 | 
			
		||||
		if (isset($_GET["be-organizer"])) {
 | 
			
		||||
			quitTeam();
 | 
			
		||||
			$user->setRole(Role::ORGANIZER);
 | 
			
		||||
			exit();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (isset($_SESSION["user_id"]) && isset($_GET["be-admin"])) {
 | 
			
		||||
		$DB->exec("UPDATE `users` SET `role` = 'ADMIN' WHERE `id` = '" . $_SESSION["user_id"] . "';");
 | 
			
		||||
		quitTeam();
 | 
			
		||||
		header("Location: $URL_BASE");
 | 
			
		||||
		exit();
 | 
			
		||||
	}
 | 
			
		||||
		if (isset($_GET["be-participant"])) {
 | 
			
		||||
			quitTeam();
 | 
			
		||||
			$user->setRole(Role::PARTICIPANT);
 | 
			
		||||
			exit();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (isset($_SESSION["user_id"]) && isset($_GET["be-organizer"])) {
 | 
			
		||||
		$DB->exec("UPDATE `users` SET `role` = 'ORGANIZER' WHERE `id` = '" . $_SESSION["user_id"] . "';");
 | 
			
		||||
		quitTeam();
 | 
			
		||||
		header("Location: $URL_BASE");
 | 
			
		||||
		exit();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (isset($_SESSION["user_id"]) && isset($_GET["be-participant"])) {
 | 
			
		||||
		$DB->exec("UPDATE `users` SET `role` = 'PARTICIPANT' WHERE `id` = '" . $_SESSION["user_id"] . "';");
 | 
			
		||||
		quitTeam();
 | 
			
		||||
		header("Location: $URL_BASE");
 | 
			
		||||
		exit();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (isset($_SESSION["user_id"]) && isset($_GET["be-encadrant"])) {
 | 
			
		||||
		$DB->exec("UPDATE `users` SET `role` = 'ENCADRANT' WHERE `id` = '" . $_SESSION["user_id"] . "';");
 | 
			
		||||
		quitTeam();
 | 
			
		||||
		header("Location: $URL_BASE");
 | 
			
		||||
		exit();
 | 
			
		||||
		if (isset($_GET["be-encadrant"])) {
 | 
			
		||||
			quitTeam();
 | 
			
		||||
			$user->setRole(Role::ENCADRANT);
 | 
			
		||||
			exit();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -71,35 +54,44 @@ function echoDate($date = NULL, $with_time = false) {
 | 
			
		||||
function quitTeam() {
 | 
			
		||||
	global $DB, $URL_BASE;
 | 
			
		||||
 | 
			
		||||
	if ($_SESSION["role"] == "ADMIN" || $_SESSION["role"] == "ORGANIZER")
 | 
			
		||||
	header("Location: $URL_BASE");
 | 
			
		||||
 | 
			
		||||
	/** @var User $user */
 | 
			
		||||
	$user = $_SESSION["user"];
 | 
			
		||||
	$user_id = $user->getId();
 | 
			
		||||
	$role = $user->getRole();
 | 
			
		||||
 | 
			
		||||
	if ($role == Role::ADMIN || $role == Role::ORGANIZER)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	for ($i = 1; $i <= ($_SESSION["role"] == "PARTICIPANT" ? 6 : 2); ++$i)
 | 
			
		||||
	for ($i = 1; $i <= ($role == Role::ENCADRANT ? 6 : 2); ++$i)
 | 
			
		||||
		/** @noinspection SqlResolve */
 | 
			
		||||
		$DB->exec("UPDATE `teams` SET `" . strtolower($_SESSION["role"]) . "_$i` = NULL WHERE `" . strtolower($_SESSION["role"]) . "_$i` = " . $_SESSION["user_id"] . ";");
 | 
			
		||||
	$DB->exec("UPDATE `users` SET `team_id` = NULL WHERE `id` = " . $_SESSION["user_id"] . ";");
 | 
			
		||||
		$DB->exec("UPDATE `teams` SET `" . strtolower(Role::getName($role)) . "_$i` = NULL WHERE `" . strtolower(Role::getName($role)) . "_$i` = $user_id;");
 | 
			
		||||
	$user->setTeamId(null);
 | 
			
		||||
	$DB->exec("UPDATE `teams` SET `encadrant_1` = `encadrant_2`, `encadrant_2` = NULL WHERE `encadrant_1` IS NULL;");
 | 
			
		||||
	for ($i = 1; $i <= 5; ++$i) {
 | 
			
		||||
		/** @noinspection SqlResolve */
 | 
			
		||||
		$DB->exec("UPDATE `teams` SET `participant_$i` = `participant_" . strval($i + 1) . "`, `participant_" . strval($i + 1) . "` = NULL WHERE `participant_$i` IS NULL;");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$req = $DB->query("SELECT `file_id` FROM `documents` WHERE `user` = '" . $_SESSION["user_id"] . "';");
 | 
			
		||||
	$req = $DB->query("SELECT `file_id` FROM `documents` WHERE `user` = $user_id;");
 | 
			
		||||
	while (($data = $req->fetch()) !== false)
 | 
			
		||||
		unlink("$URL_BASE/files/" . $data["file_id"]);
 | 
			
		||||
	$DB->exec("DELETE FROM `documents` WHERE `user` = '" . $_SESSION["user_id"] . "';");
 | 
			
		||||
	$DB->exec("DELETE FROM `documents` WHERE `user` = $user_id;");
 | 
			
		||||
 | 
			
		||||
	if ($DB->exec("DELETE FROM `teams` WHERE `encadrant_1` IS NULL AND `participant_1` IS NULL;") > 0) {
 | 
			
		||||
		$req = $DB->query("SELECT `file_id` FROM `solutions` WHERE `team` = '" . $_SESSION["team_id"] . "';");
 | 
			
		||||
		$team_id = $user->getTeamId();
 | 
			
		||||
		$req = $DB->query("SELECT `file_id` FROM `solutions` WHERE `team` = $team_id;");
 | 
			
		||||
		while (($data = $req->fetch()) !== false)
 | 
			
		||||
			unlink("$URL_BASE/files/" . $data["file_id"]);
 | 
			
		||||
		$DB->exec("DELETE FROM `solutions` WHERE `team` = " . $_SESSION["team_id"] . ";");
 | 
			
		||||
		$DB->exec("DELETE FROM `solutions` WHERE `team` = $team_id;");
 | 
			
		||||
 | 
			
		||||
		$req = $DB->query("SELECT `file_id` FROM `syntheses` WHERE `team` = '" . $_SESSION["team_id"] . "';");
 | 
			
		||||
		$req = $DB->query("SELECT `file_id` FROM `syntheses` WHERE `team` = $team_id;");
 | 
			
		||||
		while (($data = $req->fetch()) !== false)
 | 
			
		||||
			unlink("$URL_BASE/files/" . $data["file_id"]);
 | 
			
		||||
		$DB->exec("DELETE FROM `syntheses` WHERE `team` = " . $_SESSION["team_id"] . ";");
 | 
			
		||||
		$DB->exec("DELETE FROM `syntheses` WHERE `team` = $team_id;");
 | 
			
		||||
	}
 | 
			
		||||
	unset($_SESSION["team_id"]);
 | 
			
		||||
	unset($_SESSION["team_validation_status"]);
 | 
			
		||||
 | 
			
		||||
	$_SESSION["team"] = null;
 | 
			
		||||
	unset($_SESSION["team"]);
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user