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.
162 lines
4.9 KiB
162 lines
4.9 KiB
<?php
|
|
|
|
namespace controller;
|
|
|
|
use config\Validation;
|
|
use model\MdlAdmin;
|
|
use Exception;
|
|
|
|
class AdminController extends UserController
|
|
{
|
|
private string $invgpID = "invalid group ID";
|
|
|
|
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($this->invgpID);
|
|
}
|
|
}
|
|
|
|
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($this->invgpID);
|
|
}
|
|
}
|
|
|
|
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($this->invgpID);
|
|
}
|
|
}
|
|
|
|
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");
|
|
}
|
|
}
|
|
}
|