mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2025-06-25 07:00:32 +02:00
Organizers can change name & trigram
This commit is contained in:
@ -14,6 +14,18 @@ if ($_SESSION["role"] == Role::ORGANIZER && !$tournament->organize($_SESSION["us
|
||||
if ($team === null)
|
||||
require_once "server_files/404.php";
|
||||
|
||||
if (isset($_POST["team_edit"])) {
|
||||
$edit_team = new EditTeam($_POST);
|
||||
try {
|
||||
$edit_team->makeVerifications();
|
||||
$edit_team->updateTeam();
|
||||
}
|
||||
catch (AssertionError $e) {
|
||||
$has_error = true;
|
||||
$error_message = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST["validate"])) {
|
||||
$team->setValidationStatus(ValidationStatus::VALIDATED);
|
||||
Mailer::sendValidateTeam($team, $_POST["message"]);
|
||||
@ -23,7 +35,6 @@ elseif (isset($_POST["unvalidate"])) {
|
||||
Mailer::sendUnvalidateTeam($team, $_POST["message"]);
|
||||
}
|
||||
|
||||
|
||||
if (isset($_POST["select"])) {
|
||||
$team->selectForFinal(true);
|
||||
$team->setValidationStatus(ValidationStatus::NOT_READY);
|
||||
@ -57,6 +68,50 @@ if (isset($_POST["download_zip"])) {
|
||||
exit();
|
||||
}
|
||||
|
||||
class EditTeam
|
||||
{
|
||||
public $name;
|
||||
public $trigram;
|
||||
public $tournament_id;
|
||||
private $team;
|
||||
private $tournament;
|
||||
|
||||
public function __construct($data)
|
||||
{
|
||||
global $team;
|
||||
|
||||
foreach ($data as $key => $value)
|
||||
$this->$key = htmlspecialchars($value);
|
||||
|
||||
$this->trigram = strtoupper($this->trigram);
|
||||
$this->team = $team;
|
||||
$this->tournament = Tournament::fromId($this->tournament_id);
|
||||
}
|
||||
|
||||
public function makeVerifications()
|
||||
{
|
||||
ensure($this->name != "" && $this->name != null, "Veuillez spécifier un nom d'équipe.");
|
||||
ensure($this->name == $this->team->getName() || !teamExists($this->name), "Une équipe existe déjà avec ce nom.");
|
||||
ensure(preg_match("#^[A-Z]{3}$#", $this->trigram), "Le trigramme n'est pas valide.");
|
||||
ensure($this->trigram == $this->team->getTrigram() || !trigramExists($this->trigram), "Une équipe a déjà choisi ce trigramme.");
|
||||
ensure($this->tournament != null, "Le tournoi indiqué n'existe pas.");
|
||||
ensure($this->tournament_id == $this->team->getTournamentId() || $_SESSION["role"] == Role::ADMIN, "Vous n'avez pas la permission pour changer cette équipe de tournoi.");
|
||||
}
|
||||
|
||||
public function updateTeam()
|
||||
{
|
||||
global $URL_BASE;
|
||||
|
||||
$this->team->setName($this->name);
|
||||
$this->team->setTrigram($this->trigram);
|
||||
$this->team->setTournamentId($this->tournament_id);
|
||||
|
||||
$_SESSION["tournament"] = $this->tournament;
|
||||
|
||||
header("Location: $URL_BASE/equipe/$this->trigram");
|
||||
}
|
||||
}
|
||||
|
||||
$documents = $tournament->getAllDocuments($team->getId());
|
||||
$documents_final = null;
|
||||
|
||||
|
Reference in New Issue
Block a user