You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sae_2a_anglais/Project/php/controller/AdminController.php

137 lines
4.7 KiB

<?php
namespace controller;
use config\Validation;
use model\MdlAdmin;
use Exception;
class AdminController extends UserController
{
public function showAllUsers(): void {
global $twig;
global $user;
$model = new MdlAdmin();
$users = $model->getAllUsers();
echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId(), 'userRole' => $user->getRoles()]);
}
public function showAllAdmins(): void {
global $twig;
global $user;
$model = new MdlAdmin();
$users = $model->getAllAdmins();
echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId(), 'userRole' => $user->getRoles()]);
}
public function showAllTeachers(): void {
global $twig;
global $user;
$model = new MdlAdmin();
$users = $model->getAllTeachers();
echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId(), 'userRole' => $user->getRoles()]);
}
public function showAllStudents(): void {
global $twig;
global $user;
$model = new MdlAdmin();
$users = $model->getAllStudents();
echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId(), 'userRole' => $user->getRoles()]);
}
public function removeUser(): void {
try {
$userToRemove = Validation::filter_int($_GET['userToRemove'] ?? null);
$model = new MdlAdmin();
$model->removeUser($userToRemove);
$this->showAllUsers();
}
catch (Exception $e) {
throw new Exception("invalid user ID");
}
}
public function showAllGroups(): void {
global $twig;
global $user;
$model = new MdlAdmin();
$groups = $model->getAllGroups();
$unassignedUsers = $model->getUnassignedUsers();
echo $twig->render('manageGroupView.html', ['groups' => $groups, 'unassignedUsers' => $unassignedUsers, 'userID' => $user->getId(), 'userRole' => $user->getRoles()]);
}
public function showGroupDetails(): void {
try {
global $twig;
global $user;
$selectedGroup = Validation::filter_int($_GET['selectedGroup'] ?? null);
$model = new MdlAdmin();
$groups = $model->getAllGroups();
$users = $model->getUsersOfGroup($selectedGroup);
$unassignedUsers = $model->getUnassignedUsers();
echo $twig->render('manageGroupView.html', ['groups' => $groups, 'selectedGroup' => $selectedGroup, 'users' => $users, 'unassignedUsers' => $unassignedUsers, 'userID' => $user->getId(), 'userRole' => $user->getRoles()]);
}
catch (Exception $e) {
throw new Exception("invalid group ID");
}
}
public function removeUserFromGroup(): void {
try {
$userToRemove = Validation::filter_int($_GET['userToRemove'] ?? null);
$groupID = Validation::filter_int($_GET['selectedGroup'] ?? null);
$model = new MdlAdmin();
$model->removeUserFromGroup($userToRemove);
$_GET['selectedGroup'] = $groupID;
$this->showGroupDetails();
}
catch (Exception $e) {
throw new Exception("invalid group ID");
}
}
public function removeGroup(): void {
try {
$selectedGroup = Validation::filter_int($_GET['selectedGroup'] ?? null);
$model = new MdlAdmin();
$model->removeGroup($selectedGroup);
$this->showAllGroups();
}
catch (Exception $e) {
throw new Exception("invalid group ID");
}
}
public function addGroup(): void {
try {
$num = Validation::filter_int($_POST['num'] ?? null);
$year = Validation::filter_int($_POST['year'] ?? null);
$sector = Validation::filter_str_simple($_POST['sector'] ?? null);
$model = new MdlAdmin();
$groupID = $model->addGroup($num, $year, $sector);
$_GET['selectedGroup'] = $groupID;
$this->showGroupDetails();
}
catch (Exception $e) {
throw new Exception("invalid form");
}
}
public function addUserToGroup(): void {
try {
$userToAdd = Validation::filter_int($_GET['userToAdd'] ?? null);
$group = Validation::filter_int($_GET['groupID'] ?? null);
$model = new MdlAdmin();
$model->addUserToGroup($userToAdd, $group);
$_GET['selectedGroup'] = $group;
$this->showGroupDetails();
}
catch (Exception $e) {
throw new Exception("invalid IDs");
}
}
}