Lucie GOIGOUX 1 year ago
commit e748f6b732

@ -1,8 +1,7 @@
<?php <?php
namespace controleur; namespace controller;
use config\Connection;
use model\MdlAdmin; use model\MdlAdmin;
use model\UserGateway; use model\UserGateway;
@ -11,22 +10,30 @@ class AdminController
public function __construct() public function __construct()
{ {
global $twig; global $twig;
$mdl = new MdlAdmin(new UserGateway(new Connection($dsn, $login, $password)));
session_start(); session_start();
$actionList = ['addUser', 'removeUser', 'addGroup', 'removeGroup', 'showGroups', 'findUser']; $actionList = ['showUsers', 'removeUser', 'addGroup', 'removeGroup', 'showGroups'];
$dVueEreur = []; $dVueEreur = [];
try { try {
$action = $_REQUEST['action'] ?? null; $action = $_REQUEST['action'] ?? null;
switch($action) { switch($action) {
case 'showAllUsers':
case null: case null:
$this->Reinit(); $this->showAllUsers();
break; break;
case 'addUser': case 'showAllAdmins':
$mdl->addUser(); $this->showAllAdmins();
break;
case 'showAllTeachers':
$this->showAllTeachers();
break;
case 'showAllStudents':
$this->showAllStudents();
break; break;
default: default:
@ -44,7 +51,7 @@ class AdminController
exit(0); exit(0);
} }
public function Reinit() /*public function Reinit()
{ {
global $twig; global $twig;
@ -55,5 +62,33 @@ class AdminController
echo $twig->render('vuephp1.html', [ echo $twig->render('vuephp1.html', [
'dVue' => $dVue 'dVue' => $dVue
]); ]);
}*/
public function showAllUsers(): void {
global $twig;
$model = new MdlAdmin();
$users = $model->showAllUsers();
echo $twig->render('usersView.html', ['users' => $users]);
}
public function showAllAdmins(): void {
global $twig;
$model = new MdlAdmin();
$users = $model->showAllAdmins();
echo $twig->render('usersView.html', ['users' => $users]);
}
public function showAllTeachers(): void {
global $twig;
$model = new MdlAdmin();
$users = $model->showAllTeachers();
echo $twig->render('usersView.html', ['users' => $users]);
}
public function showAllStudents(): void {
global $twig;
$model = new MdlAdmin();
$users = $model->showAllStudents();
echo $twig->render('usersView.html', ['users' => $users]);
} }
} }

@ -1,6 +1,6 @@
<?php <?php
namespace model; namespace controller;
class FrontController class FrontController
{ {

@ -5,6 +5,7 @@ use config\Connection;
use model\User; use model\User;
use PDO; use PDO;
use PDOException; use PDOException;
use Exception;
class UserGateway extends AbsGateway class UserGateway extends AbsGateway
{ {
@ -75,6 +76,48 @@ class UserGateway extends AbsGateway
} }
} }
public function findAllAdmins(): array {
try {
$this->con->executeQuery("SELECT u.* FROM User_ u, Be b WHERE u.id=b.userID AND b.roleID=1 ");
$results = $this->con->getResults();
$tab = array();
foreach ($results as $row)
$tab[] = new User($row['id'], $row['password'], $row['email'], $row['name'], $row['surname'], $row['nickname'], $row['image'], $row['extraTime'], $row['groupID'], $this->getRoles($row['id']));
return $tab;
}
catch(PDOException $e ){
throw new Exception($e->getMessage());
}
}
public function findAllTeachers(): array {
try {
$this->con->executeQuery("SELECT u.* FROM User_ u, Be b WHERE u.id=b.userID AND b.roleID=2");
$results = $this->con->getResults();
$tab = array();
foreach ($results as $row)
$tab[] = new User($row['id'], $row['password'], $row['email'], $row['name'], $row['surname'], $row['nickname'], $row['image'], $row['extraTime'], $row['groupID'], $this->getRoles($row['id']));
return $tab;
}
catch(PDOException $e ){
throw new Exception($e->getMessage());
}
}
public function findAllStudents(): array {
try {
$this->con->executeQuery("SELECT u.* FROM User_ u, Be b WHERE u.id=b.userID AND b.roleID=3");
$results = $this->con->getResults();
$tab = array();
foreach ($results as $row)
$tab[] = new User($row['id'], $row['password'], $row['email'], $row['name'], $row['surname'], $row['nickname'], $row['image'], $row['extraTime'], $row['groupID'], $this->getRoles($row['id']));
return $tab;
}
catch(PDOException $e ){
throw new Exception($e->getMessage());
}
}
public function findById(int $id) public function findById(int $id)
{ {
try { try {

@ -2,28 +2,26 @@
namespace model; namespace model;
use config\Connection;
use gateway\UserGateway; use gateway\UserGateway;
class AbsModel class AbsModel
{ {
protected UserGateway $gtw;
private string $role; private string $role;
/** /**
* @param UserGateway $gtw
* @param string $role * @param string $role
*/ */
public function __construct(UserGateway $gtw, string $role) public function __construct(string $role)
{ {
$this->gtw = $gtw;
$this->role = $role; $this->role = $role;
} }
public function connection($login, $password){ public function connection($login, $password){
$cleanedLogin = strip_tags($login); $cleanedLogin = strip_tags($login);
$cleanedPassword = strip_tags($password); $cleanedPassword = strip_tags($password);
$gtw = new UserGateway(new Connection($dsn, $login, $password));
$student = $this->gtw->findUserByLoginPassword($cleanedLogin, $cleanedPassword); $student = $gtw->findUserByLoginPassword($cleanedLogin, $cleanedPassword);
if ($student) { if ($student) {
session_start(); session_start();

@ -2,19 +2,17 @@
namespace model; namespace model;
use config\Connection;
use gateway\UserGateway; use gateway\UserGateway;
class MdlAdmin extends AbsModel class MdlAdmin extends AbsModel
{ {
/** public function __construct()
* @param UserGateway $userGtw
*/
public function __construct(UserGateway $userGtw)
{ {
parent::__construct($userGtw, "admin"); parent::__construct("admin");
} }
public function isAdmin(){ /*public function isAdmin(){
if( isset ($_SESSION['login'])){ if( isset ($_SESSION['login'])){
$login = strip_tags($_SESSION['login']); $login = strip_tags($_SESSION['login']);
$user = $this->gtw->findUserByEmail($login); $user = $this->gtw->findUserByEmail($login);
@ -22,9 +20,25 @@ class MdlAdmin extends AbsModel
else return null; else return null;
} }
else return null; else return null;
}*/
public function showAllUsers(): array {
$gtw = new UserGateway(new Connection('mysql:host=localhost;dbname=dbanrichard7', 'anrichard7', 'achanger'));
return $gtw->findAll();
}
public function showAllAdmins(): array {
$gtw = new UserGateway(new Connection('mysql:host=localhost;dbname=dbanrichard7', 'anrichard7', 'achanger'));
return $gtw->findAllAdmins();
} }
public function addUser(string $password, string $email, string $name, string $surname, string $nickname, string $image, bool $extraTime, int $group, array $roles){ public function showAllTeachers(): array {
$gtw = new UserGateway(new Connection('mysql:host=localhost;dbname=dbanrichard7', 'anrichard7', 'achanger'));
return $gtw->findAllTeachers();
}
public function showAllStudents(): array {
$gtw = new UserGateway(new Connection('mysql:host=localhost;dbname=dbanrichard7', 'anrichard7', 'achanger'));
return $gtw->findAllStudents();
} }
} }
Loading…
Cancel
Save