Ajustement de la deconnexion et du desaffichage de l'utilisateur qui etait connecte

This commit is contained in:
nox 2020-01-06 01:36:42 +01:00
parent 2a01413fab
commit 0ab166726c
13 changed files with 85 additions and 30 deletions

2
.gitignore vendored
View File

@ -8,4 +8,4 @@ tmp
vendor vendor
composer.json composer.json
composer.lock composer.lock
#src/Framework/SwiftMailerFactory.php src/Framework/SwiftMailerFactory.php

View File

@ -16,12 +16,12 @@ function connexion(nom_connecte, mdp, chemin) {
$("#user-connecte").css('display',"inline-block"); $("#user-connecte").css('display',"inline-block");
$("#contenu_bouton").html(''); $("#contenu_bouton").html('');
$("#contenu_bouton").append(result.username); $("#contenu_bouton").append(result.username);
//$("#input_connecte").attr('value',result.username);
$("#nom_connecte_bis").append(result.username); $("#nom_connecte_bis").append(result.username);
$('#formulaire').attr('action', '/profil/user/'+result.username); $('#formulaire').attr('action', '/profil/user/'+result.username);
$("#deconnexion").css('display',"block"); $("#deconnexion").css('display',"block");
$("#inscription").css('display',"none"); $("#inscription").css('display',"none");
window.location.reload(true);
} else { } else {
$('.alert-danger').html(''); $('.alert-danger').html('');
$(".alert-danger").css('display',"block"); $(".alert-danger").css('display',"block");

View File

@ -18,7 +18,8 @@ try {
$row = $query->fetch(PDO::FETCH_ASSOC); $row = $query->fetch(PDO::FETCH_ASSOC);
if (password_verify($_POST['mdp'],$row['password'])) { if (password_verify($_POST['mdp'],$row['password'])) {
$_SESSION['connecte']=$row['username']; $_SESSION['connecte'] = $row['username'];
$_SESSION['logout'] = false;
echo '{"valide":true,"username":"'.$row['username'].'"}'; echo '{"valide":true,"username":"'.$row['username'].'"}';
} else { } else {
echo '{"valide":false}'; echo '{"valide":false}';

View File

@ -1,6 +1,8 @@
<?php <?php
namespace App\Admin; namespace App\Admin;
if (!isset($_SESSION)) {
session_start();
}
use App\Admin\Table\UserTable; use App\Admin\Table\UserTable;
use App\Gmarche\Table\AntenneTable; use App\Gmarche\Table\AntenneTable;
use Framework\Renderer\RendererInterface; use Framework\Renderer\RendererInterface;
@ -64,9 +66,9 @@ class DashboardAction
$this->session->set('username',$username); $this->session->set('username',$username);
$this->session->set('role',$role); $this->session->set('role',$role);
} }
$sess = $_SESSION;
return $this->renderer->render('@admin/dashboard', return $this->renderer->render('@admin/dashboard',
compact('username','liste_adminGeneral', 'liste_users_suivi', compact('sess','username','liste_adminGeneral', 'liste_users_suivi',
'liste_adminAntenne', 'listeAntennes')); 'liste_adminAntenne', 'listeAntennes'));
} }
} }

View File

@ -1,6 +1,8 @@
<?php <?php
namespace App\Admin; namespace App\Admin;
if (!isset($_SESSION)) {
session_start();
}
use App\Auth\UserTable; use App\Auth\UserTable;
use App\Admin\Table\UserTable as UserTableAdmin; use App\Admin\Table\UserTable as UserTableAdmin;
use App\Gmarche\Table\AntenneTable; use App\Gmarche\Table\AntenneTable;
@ -58,9 +60,9 @@ class DashboardUserAction
$id_affiche = $user->id; $id_affiche = $user->id;
$actif_affiche = $user->actif; $actif_affiche = $user->actif;
$listeAntennes = $this->antenneTable->findAllAntennes(); $listeAntennes = $this->antenneTable->findAllAntennes();
$sess = $_SESSION;
return $this->renderer->render('@admin/dashboard_user', return $this->renderer->render('@admin/dashboard_user',
compact('user_affiche','id_affiche', 'actif_affiche', 'user','liste_users_suivi','listeAntennes')); compact('sess','user_affiche','id_affiche', 'actif_affiche', 'user','liste_users_suivi','listeAntennes'));
} }
} }
} }

View File

@ -1,6 +1,8 @@
<?php <?php
namespace App\Auth\Action; namespace App\Auth\Action;
if (!isset($_SESSION)) {
session_start();
}
use Framework\Renderer\RendererInterface; use Framework\Renderer\RendererInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
@ -19,6 +21,14 @@ class LoginAction
public function __invoke(ServerRequestInterface $request) public function __invoke(ServerRequestInterface $request)
{ {
return $this->renderer->render('@auth/login'); if ($_SESSION['connecte']) {
$_SESSION['logout'] = false;
//echo "session co = valeur";
//die();
} else {
//echo "session co = vide";
//die();
}
return $this->renderer->render('@auth/login', ['sess' => $_SESSION]);
} }
} }

View File

@ -1,6 +1,8 @@
<?php <?php
namespace App\Auth\Action; namespace App\Auth\Action;
if (!isset($_SESSION)) {
session_start();
}
use App\Admin\Table\UserTable; use App\Admin\Table\UserTable;
use App\Auth\DatabaseAuth; use App\Auth\DatabaseAuth;
use Framework\Actions\RouterAwareAction; use Framework\Actions\RouterAwareAction;
@ -57,6 +59,7 @@ class LoginAttemptAction
if ($user) { if ($user) {
$this->test_user($user, $params); $this->test_user($user, $params);
$_SESSION['logout']= false;
return $this->renderer->render('@gmarche/index'); return $this->renderer->render('@gmarche/index');
} else { } else {
(new FlashService($this->session))->error('Identifiant ou mot de passe incorrect'); (new FlashService($this->session))->error('Identifiant ou mot de passe incorrect');

View File

@ -1,6 +1,8 @@
<?php <?php
namespace App\Auth\Action; namespace App\Auth\Action;
if (!isset($_SESSION)) {
session_start();
}
use App\Auth\DatabaseAuth; use App\Auth\DatabaseAuth;
use App\Framework\Response\RedirectBackResponse; use App\Framework\Response\RedirectBackResponse;
use Framework\Renderer\RendererInterface; use Framework\Renderer\RendererInterface;
@ -44,8 +46,13 @@ class LogoutAction
public function __invoke(ServerRequestInterface $request) public function __invoke(ServerRequestInterface $request)
{ {
/*echo "<pre>";
var_dump($request);
echo "</pre>";
die();*/
unset($_SESSION['user']); unset($_SESSION['user']);
unset($_SESSION['connecte']); $_SESSION['connecte']='---';
$_SESSION['logout']=true;
if ($this->session->get('username')) { if ($this->session->get('username')) {
$this->session->delete('username'); $this->session->delete('username');
} }

View File

@ -35,7 +35,15 @@ class ContactAction
$nom_user = ''; $nom_user = '';
$role = '3'; $role = '3';
} }
$sess = $_SESSION; if ($_SESSION['logout']) {
//echo "logout";
//die();
$sess = null;
} else {
//echo "non logout";
//die();
$sess = $_SESSION;
}
return $this->renderer->render('@contact/contact',compact('sess','nom_user','role')); return $this->renderer->render('@contact/contact',compact('sess','nom_user','role'));
} }
} }

View File

@ -1,5 +1,8 @@
<?php <?php
namespace Framework\Auth; namespace Framework\Auth;
if (!isset($_SESSION)) {
session_start();
}
error_reporting(E_ALL & ~E_NOTICE); error_reporting(E_ALL & ~E_NOTICE);
use App\Auth\UserTable; use App\Auth\UserTable;
use Framework\Auth; use Framework\Auth;
@ -40,13 +43,24 @@ class LoggedInMiddleware implements MiddlewareInterface
{ {
$url_part = explode('/',$request->getServerParams()['HTTP_REFERER'] ?? '/'); $url_part = explode('/',$request->getServerParams()['HTTP_REFERER'] ?? '/');
$username = $url_part[5]; $username = $url_part[5];
if (!$_SESSION['logout']) {
if (is_null($username)) { // echo "logout = false";
$user = $this->auth->getUser() ?: $this->userTable->findBy('username', $request->getAttribute('user')); // die();
} else { } else {
$user = $this->auth->getUser() ?: $this->userTable->findBy('username', $username); // echo "logout = true";
// die();
} }
if (is_null($user)) {
if (!$_SESSION['logout']) {
if (is_null($username)) {
$user = $this->auth->getUser() ?: $this->userTable->findBy('username', $request->getAttribute('user'));
} else {
$user = $this->auth->getUser() ?: $this->userTable->findBy('username', $username);
}
}
// var_dump($user);
// die();
if (is_null($user) or $_SESSION['logout']) {
(new FlashService($this->session))->error('Vous devez vous connecter pour accéder à cette page'); (new FlashService($this->session))->error('Vous devez vous connecter pour accéder à cette page');
return new RedirectResponse($this->router->generateUri('auth.login')); return new RedirectResponse($this->router->generateUri('auth.login'));
} }

View File

@ -50,7 +50,7 @@
Mettez bien le pseudo, la clé publique, le bien ou service, et le prix en june. Mettez bien le pseudo, la clé publique, le bien ou service, et le prix en june.
</div> </div>
<p> <p>
{% if affiche_username() != '' or sess.connecte != '' %} {% if affiche_username() != '' or (sess.connecte != '' and sess.connecte != '---') %}
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#add_new_record_modal">Ajouter un bien ou service <button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#add_new_record_modal">Ajouter un bien ou service
{% else %} {% else %}
<p> <p>

View File

@ -49,13 +49,13 @@
Mettez bien le pseudo, la clé publique, le bien ou service, et le prix en june. Mettez bien le pseudo, la clé publique, le bien ou service, et le prix en june.
</div> </div>
<p> <p>
{% if nom_user != '' %} {% if affiche_username() != '' or (sess.connecte != '' and sess.connecte != '---') %}
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#add_new_record_modal">Ajouter un bien ou service <button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#add_new_record_modal">Ajouter un bien ou service
{% else %} {% else %}
<p> <p>
<span style="color:lightgray;">Veuillez vous identifier dans la barre à droite <span style="color:lightgray;">Veuillez vous identifier dans la barre à droite
ci-dessus pour ajouter/modifier/supprimer des éléments</span> ci-dessus pour ajouter/modifier/supprimer des éléments</span>
</p> </p>
{% endif %} {% endif %}
</button> </button>
</p> </p>

View File

@ -45,10 +45,18 @@
<a class="nav-link {% if accueil %} active{% endif %}" style="font-size:14px;" <a class="nav-link {% if accueil %} active{% endif %}" style="font-size:14px;"
href="{{ path('gmarche.index') }}">Accueil</a> href="{{ path('gmarche.index') }}">Accueil</a>
</li> </li>
{% if (affiche_role()==0 or affiche_role()==1 or affiche_role()==2) and affiche_username()!='' %} {% if (affiche_role()==0 or affiche_role()==1 or affiche_role()==2) and (affiche_username() !=''
or (sess.connecte != '' and sess.connecte != '---')) %}
<li class="nav-item"> <li class="nav-item">
{% if affiche_username() !='' %}
<a class="nav-link {% if explodeUrl()[1]=='dashboard' %} active{% endif %}" style="font-size:14px;" <a class="nav-link {% if explodeUrl()[1]=='dashboard' %} active{% endif %}" style="font-size:14px;"
href="{{ path('dashboard',{user:affiche_username()}) }}">Administration</a> href="{{ path('dashboard',{user:affiche_username()}) }}">Administration</a>
{% else %}
{% if (sess.connecte != '' and sess.connecte != '---') %}
<a class="nav-link {% if explodeUrl()[1]=='dashboard' %} active{% endif %}" style="font-size:14px;"
href="{{ path('dashboard',{user:sess.connecte}) }}">Administration</a>
{% endif %}
{% endif %}
</li> </li>
{% endif %} {% endif %}
<li class="nav-item"> <li class="nav-item">
@ -61,13 +69,13 @@
<div class="navbar-text" style="color:lightgray;margin-right:15px; margin-top:3px;"> <div class="navbar-text" style="color:lightgray;margin-right:15px; margin-top:3px;">
{{ "now"|date('d/m/y') }} {{ "now"|date('d/m/y') }}
</div> </div>
{% if affiche_username() != '' or sess.connecte != '' %} {% if affiche_username() != '' or (sess.connecte != '' and sess.connecte != '---') %}
<form method="post" style="margin-top:5px;" action="{{ path('account.profil',{user:affiche_username()}) }}"> <form method="post" style="margin-top:5px;" action="{{ path('account.profil',{user:affiche_username()}) }}">
<span><img src="\avatar_user.png" width="22" height="22" /></span> <span><img src="\avatar_user.png" width="22" height="22" /></span>
<button id="nom_connecte_bis" style="color:white;font-size: 14px;" class="btn-primary"> <button id="nom_connecte_bis" style="color:white;font-size: 14px;" class="btn-primary">
{% if affiche_username() != '' %} {% if affiche_username() != '' %}
{{ affiche_username() }} {{ affiche_username() }}
{% else %} {% else %}
{{ sess.connecte }} {{ sess.connecte }}
{% endif %} {% endif %}
</button> </button>