ajout connextion fonctionnel

pull/6/head
mapoint2 1 year ago
parent 9cbb6e6766
commit 4674a7f2ad

@ -12,4 +12,4 @@ $rep = __DIR__ . '/../';
$base = 'dbrorossetto';
$login = 'rorossetto';
$mdp = 'tpphp';
$path = '~mapoint2/Tp/routeur/Srouteur';
$path = '~mapoint2/public_html/SAE/Php_RSS';

@ -2,7 +2,96 @@
namespace controleur;
use model\AdminModel;
use model\ArticleModel;
class AdminControleur
{
public function __construct(){
global $twig; // nécessaire pour utiliser variables globales
//debut
//on initialise un tableau d'erreur
$dVueEreur = [];
try {
$action = $_REQUEST['action'] ?? null;
switch($action) {
//pas d'action, on réinitialise 1er appel
case null:
$this->connection();
break;
case 'connection':
$this->connection();;
break;
case 'validationFormulaire':
$this->ValidationFormulaire($dVueEreur);
break;
case 'listArticle':
$this->listArticle();
break;
//mauvaise action
default:
$dVueEreur[] = "Erreur d'appel php";
echo $twig->render('listArticle.html', ['dVueErreur'=>$dVueEreur,'isAdmin' => AdminModel::isAdmin()]);
break;
}
} catch (\PDOException $e) {
//si erreur BD, pas le cas ici
$dVueEreur[] = 'Erreur PDO : ' . $e->getMessage();
echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]);
} catch (\Exception $e2) {
$dVueEreur[] = 'Erreur : ' . $e2->getMessage();
echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]);
}
//fin
exit(0);
}
public function listArticle()
{
global $twig;
$articleModel = new ArticleModel();
$dVue = [
'data' => $articleModel->getArticles()
];
echo $twig->render('listArticle.html', [
'dVue' => $dVue,
'isAdmin' => AdminModel::isAdmin()
]);
}
public function connection(){
global $twig; // nécessaire pour utiliser variables globales
if (!AdminModel::isAdmin()){
$this->listArticle();
}
else {
echo $twig->render('Connection.html');
if (isset($_POST['username']) && isset($_POST['password'])) {
$this->login();
}
}
}
public function login(){
$username = $_POST['username'];
$password = $_POST['password'];
$adminModel = new AdminModel();
$admin = $adminModel->connection($username, $password);
if ($admin != null) {
$this->listArticle();
}
else{
unset($_POST['username']);
unset($_POST['passwords']);
$this->connection();
}
}
}

@ -13,30 +13,29 @@ class FrontControleur
public function __construct(){
global $twig;
$router = new AltoRouter();
$router->setBasePath('~/mapoint2/Tp/routeur/Srouteur');
$router->map('GET', '/', 'UserControleur.php');
$router->map('GET|POST','/user/[a:action]?','UserControleur.php');
$router->map('GET|POST','/admin/[a:action]?','AdminControleur.php');
$router->setBasePath('~mapoint2/SAE/Php_RSS/fluxRSS/');
$router->map('GET', '/[a:action]?', 'UserControleur');
$router->map('GET|POST','/user/[a:action]?','UserControleur');
$router->map('GET|POST','/admin/[a:action]?','AdminControleur');
$match = $router->match();
if (!$match) {
$dVueEreur[] = "Page doesn't exist";
echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]);
}
else {
session_start();
$controller=$match['target'] ?? null;
$action=$match['params']['action'] ?? null;
try {
$controller = '\\controleur\\' . $controller;
$controller = new $controller;
if($controller == "\\controleur\\AdminControleur.php"){
if($controller == "AdminControleur"){
if (!AdminModel::isAdmin()){
echo $twig->render('Connection.html');
$action = "connection";
}
}
$controller = '\\controleur\\' . $controller;
$controller = new $controller;
if (is_callable(array($controller, $action))) {
call_user_func_array(array($controller, $action),
array($match['params']));

@ -10,7 +10,6 @@ class UserControleur
public function __construct()
{
global $twig; // nécessaire pour utiliser variables globales
session_start();
//debut
//on initialise un tableau d'erreur
@ -21,27 +20,22 @@ class UserControleur
switch($action) {
//pas d'action, on réinitialise 1er appel
case 'listArticle':
case null:
$this->Reinit();
$this->listArticle();
break;
case 'login':
$this->login();;
case 'connection':
$this->connection();;
break;
case 'validationFormulaire':
$this->ValidationFormulaire($dVueEreur);
break;
case 'vueArticle':
$tabArticle[] = ArticleModel::getArticles();
$dVueEreur[] = "Erreur d'appel php";
$dataview = ['Article'=> $tabArticle];
echo $twig->render('listArticle.html', ['tabArticle' => $dataview, 'dVueErreur'=>$dVueEreur]);
break;
//mauvaise action
//mauvaise action
default:
$dVueEreur[] = "Erreur d'appel php";
echo $twig->render('listArticle.html', ['dVueErreur'=>$dVueEreur]);
echo $twig->render('listArticle.html', ['dVueErreur'=>$dVueEreur, 'isAdmin' => AdminModel::isAdmin()]);
break;
}
} catch (\PDOException $e) {
@ -57,42 +51,47 @@ class UserControleur
exit(0);
}//fin constructeur
public function listArticle()
{
global $twig;
$articleModel = new ArticleModel();
$dVue = [
'data' => $articleModel->getArticles()
];
echo $twig->render('listArticle.html', [
'dVue' => $dVue,
'isAdmin' => AdminModel::isAdmin()
]);
}
/**
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
* @throws \Twig\Error\LoaderError
*/
public function login(){
public function connection(){
global $twig; // nécessaire pour utiliser variables globales
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$adminModel = new AdminModel();
$admin = $adminModel->connection($username, $password);
if ($admin != null){
$dVue = [
'data' => Parser::getArticles()
];
echo $twig->render('listArticle.html', [
'dVue' => $dVue
]);
}
else{
$this->Reinit();
}
echo $twig->render('Connection.html');
if (isset($_POST['username']) && isset($_POST['password'])) {
$this->login();
}
}
public function Reinit()
{
global $twig; // nécessaire pour utiliser variables globales
$dVue = [
'data' => ArticleModel::getArticles()
];
echo $twig->render('listArticle.html', [
'dVue' => $dVue
]);
public function login(){
$username = $_POST['username'];
$password = $_POST['password'];
$adminModel = new AdminModel();
$admin = $adminModel->connection($username, $password);
if ($admin != null) {
$this->listArticle();
}
else{
unset($_POST['username']);
unset($_POST['passwords']);
$this->connection();
}
}
public function ValidationFormulaire(array $dVueEreur)

@ -7,6 +7,11 @@ class Admin
private string $username;
private string $mail;
public function __construct($username,$mail){
$this->username = $username;
$this->mail = $mail;
}
/**
* @return string
*/

@ -12,7 +12,7 @@ class AdminModel
* @throws \Exception
*/
public function connection (string $username, string $mdp){
//Validation::validationLogin($login);
//Validation::validationLogin($username);
//Validation::validationMdp($mdp);
$gwArticle = new AdminGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp'));
@ -30,6 +30,6 @@ class AdminModel
public static function isAdmin(): bool
{
return $_SESSION['role'] == 'admin';
return isset($_SESSION['role']) && $_SESSION['role'] == 'admin';
}
}

@ -68,9 +68,7 @@ class Parser
$this->articleGateway->removeAllArticleForParser();
$allFlux = $this->fluxGateway->findAllFlux();
var_dump($allFlux);
$allArticles = $this->parseAll($allFlux);
var_dump($allArticles);
foreach ($allArticles as $article) {
$this->articleGateway->addArticle($article);
}
@ -81,7 +79,6 @@ class Parser
$gwArt = new ArticleGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp'));
$gwFl = new FluxGateway(new Connection('mysql:host=londres.uca.local;dbname=dbrorossetto', 'rorossetto', 'tpphp'));
$pars = new Parser( $gwFl,$gwArt);
var_dump($pars->addAllArticles());

@ -18,12 +18,12 @@
{% endif %}
<h1>Login</h1>
<form method="post" name="myform" id="myform" action="/user/login">
<form method="POST" name="myform" id="myform">
<table>
<tr>
<td>Nom</td>
<td>
<input name="username" value="" type="text" size="20" />
<input name="username" value="test" type="text" size="20" />
</td>
</tr>
<tr>
@ -43,7 +43,7 @@
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="login" />
</form>
<a href="listArticle.html">Not a member? Go to Articles</a>
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/">Not a member? Go to Articles</a>
</div>
</body>
</html>

@ -1,58 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Login</title>
</head>
<body>
<div align="center">
{% if dVue is defined %}
{% if dVueEreur is defined and dVueEreur|length >0 %}
<h2>ERREUR !!!!!</h2>
{% for value in dVueEreur %}
<p>{{value}}</p>
{% endfor %}
{% endif %}
{% endif %}
<h1>Login</h1>
<form method="post" name="myform" id="myform">
<table>
<tr>
<td>Nom</td>
<td>
<input name="username" value="{{dVue.nom}}" type="text" size="20" />
</td>
</tr>
<tr>
<td>Password</td>
<td>
<input type="password" id="password" name="password" required>
</td>
</tr>
</table>
<table>
<tr>
<td><input type="submit" value="Envoyer" /></td>
<td><input type="reset" value="Rétablir" /></td>
</tr>
</table>
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="login" />
</form>
<a href="listArticle.html">Not a member? Go to Articles</a>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
</head>
<body>

@ -14,5 +14,8 @@
{% endfor %}
</p>
{% endfor %}
{% if not isAdmin %}
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/">Connect</a>
{% endif %}
</body>
</html>
Loading…
Cancel
Save