Lucie GOIGOUX 1 year ago
commit 45953fca03

@ -73,8 +73,8 @@ INSERT INTO Vocabulary VALUES ("Motorbike");
INSERT INTO Register VALUES ("English", "Cat"); INSERT INTO Register VALUES ("English", "Cat");
INSERT INTO Register VALUES ("English", "Dog"); INSERT INTO Register VALUES ("English", "Dog");
INSERT INTO Register VALUES ("English", "Rabbit"); INSERT INTO Register VALUES ("English", "Rabbit");
INSERT INTO REGISTER VALUES ("English", "Mouse"); INSERT INTO Register VALUES ("English", "Mouse");
INSERT INTO REGISTER VALUES ("English", "Fish"); INSERT INTO Register VALUES ("English", "Fish");
INSERT INTO Register VALUES ("English", "Computer"); INSERT INTO Register VALUES ("English", "Computer");
INSERT INTO Register VALUES ("English", "Motorbike"); INSERT INTO Register VALUES ("English", "Motorbike");

@ -10,37 +10,41 @@ class AdminController
{ {
public function showAllUsers(): void { public function showAllUsers(): void {
global $twig; global $twig;
global $user;
$model = new MdlAdmin(); $model = new MdlAdmin();
$users = $model->getAllUsers(); $users = $model->getAllUsers();
echo $twig->render('usersView.html', ['users' => $users]); echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId()]);
} }
public function showAllAdmins(): void { public function showAllAdmins(): void {
global $twig; global $twig;
global $user;
$model = new MdlAdmin(); $model = new MdlAdmin();
$users = $model->getAllAdmins(); $users = $model->getAllAdmins();
echo $twig->render('usersView.html', ['users' => $users]); echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId()]);
} }
public function showAllTeachers(): void { public function showAllTeachers(): void {
global $twig; global $twig;
global $user;
$model = new MdlAdmin(); $model = new MdlAdmin();
$users = $model->getAllTeachers(); $users = $model->getAllTeachers();
echo $twig->render('usersView.html', ['users' => $users]); echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId()]);
} }
public function showAllStudents(): void { public function showAllStudents(): void {
global $twig; global $twig;
global $user;
$model = new MdlAdmin(); $model = new MdlAdmin();
$users = $model->getAllStudents(); $users = $model->getAllStudents();
echo $twig->render('usersView.html', ['users' => $users]); echo $twig->render('usersView.html', ['users' => $users, 'userID' => $user->getId()]);
} }
public function removeUser(): void { public function removeUser(): void {
try { try {
$id = Validation::filter_int($_GET['userID'] ?? null); global $user;
$model = new MdlAdmin(); $model = new MdlAdmin();
$model->removeUser($id); $model->removeUser($user->getId());
$this->showAllUsers(); $this->showAllUsers();
} }
catch (Exception $e) { catch (Exception $e) {
@ -50,21 +54,24 @@ class AdminController
public function showAllGroups(): void { public function showAllGroups(): void {
global $twig; global $twig;
global $user;
$model = new MdlAdmin(); $model = new MdlAdmin();
$groups = $model->getAllGroups(); $groups = $model->getAllGroups();
$unassignedUsers = $model->getUnassignedUsers(); $unassignedUsers = $model->getUnassignedUsers();
echo $twig->render('manageGroupView.html', ['groups' => $groups, 'unassignedUsers' => $unassignedUsers]); echo $twig->render('manageGroupView.html', ['groups' => $groups, 'unassignedUsers' => $unassignedUsers, 'userID' => $user->getId()]);
} }
public function showGroupDetails(): void { public function showGroupDetails(): void {
try { try {
global $twig; global $twig;
global $user;
$selectedGroup = Validation::filter_int($_GET['selectedGroup'] ?? null); $selectedGroup = Validation::filter_int($_GET['selectedGroup'] ?? null);
$model = new MdlAdmin(); $model = new MdlAdmin();
$groups = $model->getAllGroups(); $groups = $model->getAllGroups();
$users = $model->getUsersOfGroup($selectedGroup); $users = $model->getUsersOfGroup($selectedGroup);
$unassignedUsers = $model->getUnassignedUsers(); $unassignedUsers = $model->getUnassignedUsers();
echo $twig->render('manageGroupView.html', ['groups' => $groups, 'selectedGroup' => $selectedGroup, 'users' => $users, 'unassignedUsers' => $unassignedUsers]);
echo $twig->render('manageGroupView.html', ['groups' => $groups, 'selectedGroup' => $selectedGroup, 'users' => $users, 'unassignedUsers' => $unassignedUsers, 'userID' => $user->getId()]);
} }
catch (Exception $e) { catch (Exception $e) {
throw new Exception("invalid group ID"); throw new Exception("invalid group ID");
@ -113,10 +120,10 @@ class AdminController
public function addUserToGroup(): void { public function addUserToGroup(): void {
try { try {
$user = Validation::filter_int($_GET['userID'] ?? null); global $user;
$group = Validation::filter_int($_GET['groupID'] ?? null); $group = Validation::filter_int($_GET['groupID'] ?? null);
$model = new MdlAdmin(); $model = new MdlAdmin();
$model->addUserToGroup($user, $group); $model->addUserToGroup($user->getId(), $group);
$_GET['selectedGroup'] = $group; $_GET['selectedGroup'] = $group;
$this->showGroupDetails(); $this->showGroupDetails();
} }

@ -50,7 +50,6 @@ class FrontController
break; break;
default : default :
if ($id != null && !$this->checkIdExist($id)) throw new Exception("identifiant invalide");
if ($target == null) throw new Exception("pas de target"); if ($target == null) throw new Exception("pas de target");
if (isset($_SESSION['login']) && isset($_SESSION['roles'])) { if (isset($_SESSION['login']) && isset($_SESSION['roles'])) {
@ -62,6 +61,7 @@ class FrontController
$mdl = new $mdl; $mdl = new $mdl;
if (is_callable(array($mdl, 'is'))) { if (is_callable(array($mdl, 'is'))) {
global $user;
$user = call_user_func_array(array($mdl, 'is'), array($_SESSION['login'], $_SESSION['roles'])); $user = call_user_func_array(array($mdl, 'is'), array($_SESSION['login'], $_SESSION['roles']));
if (!$user || $user->getId() != $id) throw new Exception("erreur 403 permission denied"); if (!$user || $user->getId() != $id) throw new Exception("erreur 403 permission denied");

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>In English Please !</title>
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
<!-- Google fonts-->
<link href="https://fonts.googleapis.com/css?family=Varela+Round" rel="stylesheet" />
<link
href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i"
rel="stylesheet" />
<!-- Core theme CSS (includes Bootstrap)-->
<link href="css/styles.css" rel="stylesheet" />
</head>
<body id="navBar">
<!-- Navigation-->
<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="secondNav">
<div class="container px-4 px-lg-5">
<a class="navbar-brand" href="index.html">Logo</a>
<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false"
aria-label="Toggle navigation">
Menu
<i class="fas fa-bars"></i>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="#game">Game</a></li>
<li class="nav-item"><a class="nav-link" href="#download">Download</a></li>
<li class="nav-item"><a class="nav-link" href="login.html">My account</a></li>
</ul>
</div>
</div>
</nav>
</body>
</html>

@ -1,4 +1,4 @@
<form action="addGroup" method="GET"> <form action="{{ base }}/admin/{{ userID }}/addGroup" method="GET">
<input name="num" type="text" placeholder="number" required> <input name="num" type="text" placeholder="number" required>
<input name="year" type="text" placeholder="year" required> <input name="year" type="text" placeholder="year" required>
<input name="sector" type="text" placeholder="sector" required> <input name="sector" type="text" placeholder="sector" required>

@ -21,11 +21,10 @@
<section> <section>
<h1>Add words</h1> <h1>Add words</h1>
{% if user is defined %} {% if user is defined %}
<form action="index.php" method="GET"> <form action="{{base}}/teacher/addVocabList" method="GET">
<table> <table>
<tr> <tr>
<td colspan="2"> <td colspan="2">
<input type="hidden" name="action" value="addVocabList">
<input type="hidden" name="userID" value="{{user}}"> <input type="hidden" name="userID" value="{{user}}">
<input type="text" name="listName" placeholder="list name" required> <input type="text" name="listName" placeholder="list name" required>
</td> </td>

@ -1,4 +1,5 @@
<table> <table>
{{ userID }}
{% if groups is defined %} {% if groups is defined %}
{% for row in groups %} {% for row in groups %}
{% if selectedGroup is defined and selectedGroup == row.id %} {% if selectedGroup is defined and selectedGroup == row.id %}
@ -21,7 +22,7 @@
{% if 'showGroupDetails' in actions %} {% if 'showGroupDetails' in actions %}
<td> <td>
<a href="showGroupDetails?selectedGroup={{ row.id }}"> <a href="{{base}}/admin/{{userID}}/showGroupDetails?selectedGroup={{ row.id }}">
<input class="btn-black" type="button" value="Show"/> <input class="btn-black" type="button" value="Show"/>
</a> </a>
</td> </td>
@ -29,7 +30,7 @@
{% if 'removeGroup' in actions %} {% if 'removeGroup' in actions %}
<td> <td>
<a href="removeGroup?selectedGroup={{ row.id }}"> <a href="{{base}}/admin/{{userID}}/removeGroup?selectedGroup={{ row.id }}">
<input class="btn-black" type="button" value="Remove"/> <input class="btn-black" type="button" value="Remove"/>
</a> </a>
</td> </td>

@ -24,22 +24,21 @@
} }
</style> </style>
<body> <body>
<section class="groupList"> <section class="groupList">
<h2>Group list</h2> <h2>Group list</h2>
{% include 'groupContainer.twig' with {'actions' : ['showGroupDetails', 'removeGroup']} %} {% include 'groupContainer.twig' with {'actions' : ['showGroupDetails', 'removeGroup']} %}
</section> </section>
<section class="users">
<section class="users">
<h2>Users of the group</h2> <h2>Users of the group</h2>
{% include 'userContainer.twig' with {'users' : users, 'action' : 'removeUserFromGroup'} %} {% include 'userContainer.twig' with {'users' : users, 'action' : 'removeUserFromGroup'} %}
</section> </section>
<section class="addGroupForm"> <section class="addGroupForm">
<h2>Add group</h2> <h2>Add group</h2>
{% include 'addGroupForm.twig' %} {% include 'addGroupForm.twig' %}
</section> </section>
<section class="unassignedUsers"> <section class="unassignedUsers">
<h1>Unassigned users</h1> <h1>Unassigned users</h1>
{% include 'userContainer.twig' with {'users' : unassignedUsers, 'action' : 'addUserToGroup'} %} {% include 'userContainer.twig' with {'users' : unassignedUsers, 'action' : 'addUserToGroup'} %}
</section> </section>
</body> </body>
</html> </html>

@ -1,4 +1,4 @@
<form action="modifyPassword" method="GET"> <form action="{{base}}/user/modifyPassword" method="GET">
<input type="hidden" name="user" value={{user.id}}> <input type="hidden" name="user" value={{user.id}}>
<input type="text" name="currentPassword" placeholder="current password" required> <input type="text" name="currentPassword" placeholder="current password" required>
<input type="text" name="newPassword" placeholder="new password" required> <input type="text" name="newPassword" placeholder="new password" required>

@ -32,7 +32,7 @@
<tr><td>ID : </td><td>{{user.id}}</td></tr> <tr><td>ID : </td><td>{{user.id}}</td></tr>
<tr><td>Nickname : </td><td>{{user.nickname}}</td> <tr><td>Nickname : </td><td>{{user.nickname}}</td>
<td> <td>
<form action="modifyNickname" method="GET"> <form action="{{base}}/user/modifyNickname" method="GET">
<input type="hidden" name="user" value={{user.id}}> <input type="hidden" name="user" value={{user.id}}>
<input name="newNickname" type="text" placeholder="new nickname" required> <input name="newNickname" type="text" placeholder="new nickname" required>
<input type="submit" value="Modify your nickname"> <input type="submit" value="Modify your nickname">

@ -1,61 +0,0 @@
<table>
{% if translations is defined %}
{% for row in translations %}
<tr>
<td>{{ row.id }}</td>
<td>{{ row.word1 }}</td>
<td>{{ row.word2 }}</td>
<td>{{ row.listVocab }}</td>
</tr>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Manage groups</title>
<!-- Vos liens de styles et de scripts -->
</head>
<body>
<section>
<h1>Quiz</h1>
<form action="quiz" method="post">
{% if translations is defined %}
{% for translation in translations %}
<h2>{{ translation.word1 }}</h2>
{% set answers = [translation.word2] %}
{% for i in 0..3 %}
<input type="radio" name="answer{{ i }}" value="{{ valid[i] }}"> {{ answers[i] }}<br>
{% endfor %}
{% endfor %}
{% endif %}
<input type="submit" value="Submit">
</form>
<h1>Translator</h1>
<form action="quiz" method="POST">
{% if translations is defined %}
<table>
<tr>
<td>ID</td>
<td>Word 1</td>
<td>Word 2</td>
<td>List Vocabulary</td>
</tr>
{% for translation in translations %}
<tr>
<td>{{ translation.id }}</td>
<td>{{ translation.word1 }}</td>
<td>{{ translation.word2 }}</td>
<td>{{ translation.listVocab }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
</form>
</section>
</body>
</html>
</table>

@ -24,17 +24,17 @@
{% if action is defined %} {% if action is defined %}
{% if action == 'removeUserFromGroup' %} {% if action == 'removeUserFromGroup' %}
<td><a href="removeUserFromGroup?id={{row.id}}&selectedGroup={{selectedGroup}}"> <td><a href="{{base}}/admin/{{ userID }}/removeUserFromGroup?id={{row.id}}&selectedGroup={{selectedGroup}}">
<input class="btn-black" type="button" value="Delete from group"/> <input class="btn-black" type="button" value="Delete from group"/>
</a></td> </a></td>
{% elseif action == 'addUserToGroup' %} {% elseif action == 'addUserToGroup' %}
<td><a href="addUserToGroup?userID={{row.id}}&groupID={{selectedGroup}}"> <td><a href="{{base}}/admin/{{ userID }}/addUserToGroup?userID={{row.id}}&groupID={{selectedGroup}}">
<input class="btn-black" type="button" value="Add to group"/> <input class="btn-black" type="button" value="Add to group"/>
</a></td> </a></td>
{% elseif action == 'removeUser' %} {% elseif action == 'removeUser' %}
<td><a href="removeUser?userID={{row.id}}"> <td><a href="{{base}}/admin/{{ userID }}/removeUser?userID={{row.id}}">
<input class="btn-black" type="button" value="Delete"/> <input class="btn-black" type="button" value="Delete"/>
</a></td> </a></td>
{% endif %} {% endif %}

Loading…
Cancel
Save