Changement du FrontController pour que les camarades de projets puissent à nouveau accéder à la page d'administration
continuous-integration/drone/push Build is passing Details

interestingProfiles
Johan LACHENAL 2 years ago
parent 9cca9bbe68
commit 5393854b13

@ -15,28 +15,26 @@ class FrontController
* Définit le comportement de la classe à sa création, on appelle le bon controller en fonction de l'action
* et du rôle de la personne qui souhaite réaliser cette action (utilisateur, administrateur...).
*/
public function __construct()
{
$listControllers = array("\\Controller\\ControllerCandidate", "\\Controller\\ControllerAdmin");
global $rep, $views;
$dVueError = array();
$controllerPath = "\\Controller\\Controller";
$mapRoleAccess = array(
"Candidate" => array("Candidate"),
"Admin" => array("Candidate", "Admin"));
if (!isset($_SESSION["role"]))
$currentRole = "Candidate";
else $currentRole = Clean::simpleString($_SESSION["role"]);
try {
$action = isset($_REQUEST['action']) ? Clean::simpleString($_REQUEST['action']) : (new ControllerCandidate())->goToForm();
foreach ($mapRoleAccess[$currentRole] as $role) {
if (method_exists($controllerPath . $role, $action)) {
(new $controllerPath . $role)->$action(); // Si oui, on appelle cette fonction
$action = $_REQUEST['action'] ? $action = $_REQUEST['action'] : (new ControllerCandidate())->goToForm();
foreach ($listControllers as $controller) {
if (method_exists($controller, $action)) {
(new $controller)->$action(); // Si oui, on appelle cette fonction
}
}
} catch (PDOException|Exception $e) {
$dVueError[] = "Erreur innatendue !"; // Ecriture du message d'erreur
echo "ERREUUUUUR";
}
exit(0);
}
}
Loading…
Cancel
Save