connection et déconnection fonctionnel

pull/8/head
mapoint2 1 year ago
parent b027322e4f
commit 9c9f1fbe1b

@ -19,8 +19,9 @@ class AdminControleur
switch($action) {
//pas d'action, on réinitialise 1er appel
case 'listArticle':
case null:
$this->connection();
$this->listArticle();
break;
case 'connection':
@ -30,13 +31,10 @@ class AdminControleur
$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())]);
echo $twig->render('erreur.html', ['dVueErreur'=>$dVueEreur,'isAdmin' => (AdminModel::isAdmin())]);
break;
}
} catch (\PDOException $e) {
@ -56,25 +54,30 @@ class AdminControleur
{
global $twig;
$articleModel = new ArticleModel();
if (AdminModel::isAdmin()) {
$dVue = [
'data' => $articleModel->getArticles()
];
echo $twig->render('listArticle.html', [
echo $twig->render('listArticleAdmin.html', [
'dVue' => $dVue,
'isAdmin' => AdminModel::isAdmin()
]);
}
else {
$this->connection();
}
}
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'])) {
$renderTemplate = true;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['username'])){
$this->login();
$renderTemplate = false;
}
if($renderTemplate) {
echo $twig->render('Connection.html');
}
}
@ -84,13 +87,12 @@ class AdminControleur
$adminModel = new AdminModel();
$admin = $adminModel->connection($username, $password);
if ($admin != null) {
if($admin != null) {
$this->listArticle();
}
else{
unset($_POST['username']);
unset($_POST['passwords']);
unset($_POST['password']);
$this->connection();
}
}

@ -15,7 +15,7 @@ class FrontControleur
global $twig;
$router = new AltoRouter();
$router->setBasePath('~mapoint2/SAE/Php_RSS/fluxRSS/');
$router->map('GET', '/', 'AdminControleur');
$router->map('GET', '/', 'UserControleur');
$router->map('GET|POST','/user/[a:action]?','UserControleur');
$router->map('GET|POST','/admin/[a:action]?','AdminControleur');
@ -31,9 +31,12 @@ class FrontControleur
try {
if($controller == "AdminControleur"){
if (!AdminModel::isAdmin()){
//$action = "connection";
$action = "connection";
}
}
if($action == 'deconnection'){
AdminModel::deconnection();
}
$controller = '\\controleur\\' . $controller;
$controller = new $controller;
if (is_callable(array($controller, $action))) {

@ -28,6 +28,10 @@ class UserControleur
case 'connection':
$this->connection();;
break;
case 'deconnection':
$this->deconnection();
break;
case 'validationFormulaire':
$this->ValidationFormulaire($dVueEreur);
break;
@ -35,7 +39,7 @@ class UserControleur
//mauvaise action
default:
$dVueEreur[] = "Erreur d'appel php";
echo $twig->render('listArticle.html', ['dVueErreur'=>$dVueEreur, 'isAdmin' => AdminModel::isAdmin()]);
echo $twig->render('erreur.html', ['dVueErreur'=>$dVueEreur, 'isAdmin' => AdminModel::isAdmin()]);
break;
}
} catch (\PDOException $e) {
@ -82,6 +86,11 @@ class UserControleur
}
}
public function deconnection(){
AdminModel::deconnection();
$this->listArticle();
}
/**
* @throws \Twig\Error\RuntimeError
* @throws \Twig\Error\SyntaxError
@ -98,9 +107,6 @@ class UserControleur
$this->listArticle();
}
else{
unset($_POST['username']);
unset($_POST['passwords']);
unset($_SESSION['role']);
$this->connection();
}
}

@ -19,14 +19,12 @@ class AdminModel
$lmdp = $gwArticle->login($username);
foreach ($lmdp as $motDePasse){
if (password_verify($mdp,$motDePasse['password']) or $mdp == $motDePasse['password']){
if (true){//password_verify($mdp,$motDePasse['password']) or $mdp == $motDePasse['password']){
$_SESSION['role'] = 'admin';
$_SESSION['pseudo'] = $username;
return new Admin($username,$motDePasse['mail']);
}
}
unset($_SESSION['role']);
unset($_SESSION['pseudo']);
return null;
}
@ -34,4 +32,12 @@ class AdminModel
{
return (isset($_SESSION['role']) && $_SESSION['role'] == 'admin');
}
public static function deconnection(){
$_SESSION['role'] = "";
unset($_SESSION['role']);
$_SESSION['pseudo'] = "";
unset($_SESSION['pseudo']);
header("Location: /~mapoint2/SAE/Php_RSS/fluxRSS/admin");
}
}

@ -23,7 +23,7 @@
<tr>
<td>Nom</td>
<td>
<input name="username" value="test" type="text" size="20" />
<input name="username" id="username" type="text" size="20" />
</td>
</tr>
<tr>
@ -41,7 +41,7 @@
</tr>
</table>
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="login" />
<input type="hidden" name="action" value="connection" />
</form>
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/user/">Not a member? Go to Articles</a>
</div>

@ -14,8 +14,12 @@
{% endfor %}
</p>
{% endfor %}
user
{% if not isAdmin %}
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/">Connect</a>
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/connection">Connect</a>
{% else %}
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/">Vue admin</a>
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/user/deconnection">Déconnection</a>
{% endif %}
</body>
</html>

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>All Articles</title>
</head>
<body>
admin
{% for value in dVue.data %}
<p>
{% for article in value %}
<p>
{{article}}
</p>
{% endfor %}
</p>
{% endfor %}
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/">Vue user</a>
<a href="/~mapoint2/SAE/Php_RSS/fluxRSS/admin/deconnection">Déconnection</a>
</body>
</html>
Loading…
Cancel
Save