mirror of
https://gitlab.com/animath/si/plateforme-corres2math.git
synced 2025-06-25 02:20:29 +02:00
Flexibilité sur la validation des vidéos accrue
This commit is contained in:
@ -3,9 +3,54 @@
|
||||
if (!isset($_SESSION["user_id"]) || $_SESSION["role"] != Role::ADMIN)
|
||||
require_once "server_files/403.php";
|
||||
|
||||
$has_error = false;
|
||||
$error_message = null;
|
||||
|
||||
if (isset($_POST["validate_video"])) {
|
||||
$validate_video = new ValidateVideo($_POST);
|
||||
try {
|
||||
$validate_video->makeVerifications();
|
||||
$validate_video->validate();
|
||||
}
|
||||
catch (AssertionError $e) {
|
||||
$has_error = true;
|
||||
$error_message = $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
class ValidateVideo
|
||||
{
|
||||
private $video_id;
|
||||
private $accept;
|
||||
private $reject;
|
||||
/** @var Video */
|
||||
private $video;
|
||||
|
||||
public function __construct($data)
|
||||
{
|
||||
foreach ($data as $key => $value)
|
||||
$this->$key = $value;
|
||||
}
|
||||
|
||||
public function makeVerifications()
|
||||
{
|
||||
$this->video = Video::fromId($this->video_id);
|
||||
ensure($this->video != null, "La vidéo n'existe pas.");
|
||||
ensure($this->video->getValidation() == 0, "La vidéo est déjà validée / rejetée.");
|
||||
ensure(($this->accept == null || $this->reject == null) && $this->accept != $this->reject, "Impossible de déterminer s'il faut accepter ou non la vidéo.");
|
||||
}
|
||||
|
||||
public function validate()
|
||||
{
|
||||
$this->video->setValidation($this->accept ? 1 : -1);
|
||||
Mailer::validateVideo($this->video);
|
||||
}
|
||||
}
|
||||
|
||||
$videos = [];
|
||||
|
||||
for ($problem = 1; $problem <= 4; ++$problem)
|
||||
$videos[] = Video::getVideos(Reason::SOLUTION, $problem);
|
||||
|
||||
|
||||
require_once "server_files/views/videos_solutions.php";
|
Reference in New Issue
Block a user