Implémentation de la connexion de l'utilisateur sur les différents écrans

This commit is contained in:
nox 2019-11-09 23:23:19 +01:00
parent 8d5d361e38
commit ae70c27b94
12 changed files with 181 additions and 183 deletions

View File

@ -15,6 +15,8 @@ try {
$query->execute($params);
$row = $query->fetch(PDO::FETCH_ASSOC);
if (password_verify($_POST['mdp'],$row['password'])) {
session_start();
$_SESSION['user']=$row['username'];
echo '{"valide":true,"username":"'.$row['username'].'"}';
} else {
echo '{"valide":false}';

View File

@ -1,25 +1,23 @@
<?php
ini_set('display_errors', 0);
include '../../config/conf.php';
$antenne_slug = $_GET['antenne_slug'];
$nom_connecte = $_GET['nom_connecte'];
$bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$data = '<table class="table table-bordered table-striped">
<tr style="color: black;">
<th>No.</th>
<th>Bien / service</th>
<th>Photo</th>
<th>Vendeur</th>
<th>Clé publique</th>
<th>Quantité</th>
<th>Prix en junes</th>';
ini_set('display_errors', 0);
include '../../config/conf.php';
$antenne_slug = $_GET['antenne_slug'];
$nom_connecte = $_GET['nom_connecte'];
$bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
// Affichage des intitulés de colonnes
$data = '<table class="table table-bordered table-striped">
<tr style="color: black;">
<th>No.</th>
<th>Bien / service</th>
<th>Photo</th>
<th>Vendeur</th>
<th>Clé publique</th>
<th>Quantité</th>
<th>Prix en junes</th>';
$params["antenne_slug"] = $antenne_slug;
$requete = "SELECT products.*, users.username, users.pubkey
$requete = "SELECT products.*, users.username, users.pubkey
FROM products
LEFT JOIN antennes
ON antennes.id = products.antenne_id
@ -31,11 +29,10 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$stmt->execute($params);
$stmt2->execute($params);
$count = $stmt->rowCount();
$affich_actions = false;
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
if ($row2['username'] == $nom_connecte) {
$affich_actions = true;
} else {
$affich_actions = false;
}
}
if ($affich_actions) {
@ -50,8 +47,7 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data .= "<tr style='background:lightblue;color:black;'>
<td>$number</td>";
<td>$number</td>";
$prix = $row['prix'];
$vendeur = $row['username'];
$produit = $row['name'];
@ -65,7 +61,7 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$data .= '<td>'.$cle_pub_format.'</td>';
$data .= '<td>'.$row['quantite'].'</td>';
$data .= '<td>'.$prix.'</td>';
if ($row['username'] == $_GET['nom_connecte'] ) {
if ($row['username'] == $_GET['nom_connecte'] ) {
$data .= '<td>';
$data .= '<button onclick="GetProduitsDetails(\'';
$data .= $row['id'];
@ -76,12 +72,9 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$data .= $row['image'];
$data .= "'";
$data .= ')" class=\'btn btn-primary\'';
//} else {
// $data .= ')" class=\'btn btn-info\' disabled=true';
// }
$data .= '>Modifier';
$data .= '</button>';
$data .= '</td><td>';
$data .= '</td><td>';
$data .= '<button onclick="DeleteProduits(\'';
$data .= $row['id'];
$data .= "'";
@ -91,28 +84,20 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$data .= $row['image'];
$data .= "'";
$data .= ')" class=\'btn btn-danger\'';
//$data .= ')" class=\'btn btn-info\' disabled=true';
$data .= '>Supprimer</button>';
$data .= '</td>';
} else {
$data .= '>Supprimer</button>';
$data .= '</td>';
} else {
if ($affich_actions) {
$data .= '<td></td><td></td>';
}
}
}
$data .= '</tr>';
$number++;
}
$number++;
}
} else {
// Il n'y a pas encore de biens/services saisis
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
}
else
{
// Il n'y a pas encore de biens/services saisis
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
}
$data .= '</table>';
echo $data;
?>

View File

@ -1,101 +1,101 @@
<?php
ini_set('display_errors', 0);
include '../../config/conf.php';
$antenne_slug = $_GET['antenne_slug'];
ini_set('display_errors', 0);
include '../../config/conf.php';
$antenne_slug = $_GET['antenne_slug'];
$nom_connecte = $_GET['nom_connecte'];
$bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
// Affichage des intitulés de colonnes
$data = '<table class="table table-bordered table-striped">
<tr style="color: black;">
<th>No.</th>
<th>Bien/service recherché</th>
<th>Photo</th>
<th>Acheteur</th>
<th>Clé publique</th>
<th>Quantité</th>
<th>Prix en Ğ1</th>';
// Design initial table header
$data = '<table class="table table-bordered table-striped">
<tr style="color: black;">
<th>No.</th>
<th>Bien/service recherché</th>
<th>Photo</th>
<th>Acheteur</th>
<th>Clé publique</th>
<th>Quantité</th>
<th>Prix en Ğ1</th>
<th colspan="2" style="text-align: center;">Actions</th>
</tr>';
$params["antenne_slug"] = $antenne_slug;
$requete = "SELECT souhaits.*, users.username, users.pubkey
FROM souhaits
LEFT JOIN antennes
ON antennes.id = souhaits.antenne_id
LEFT JOIN users
ON users.id = souhaits.user_id
WHERE antennes.slug = :antenne_slug";
$stmt = $bdd->prepare($requete);
$stmt->execute($params);
$count = $stmt->rowCount();
if ($count > 0)
{
$number = 1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data .= "<tr style='background:lightblue;color:black;'>
<td>$number</td>";
$prix = $row['prix'];
$vendeur = $row['username'];
$produit = $row['name'];
$pubkey = $row['pubkey'];
$vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>";
$pubkeyShort = substr($pubkey, 0, 8);
$data .= '<td>'.$produit.'</td>';
$data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
$data .= '<td>'.$vendeur_format.'</td>';
$data .= '<td>'.$pubkeyShort.'...</td>';
$data .= '<td>'.$row['quantite'].'</td>';
$data .= '<td>'.$prix.'</td>';
$data .= '<td>';
$data .= '<button onclick="GetRecherchesDetails(\'';
$data .= $row['id'];
$data .= "'";
$data .= ',';
$data .= "'$antenne_slug'";
$data .= ",'";
$data .= $row['image'];
$data .= "'";
if ($row['username'] == $_GET['nom_connecte'] ) {
$data .= ')" class=\'btn btn-primary\'';
} else {
$data .= ')" class=\'btn btn-info\' disabled=true';
$params["antenne_slug"] = $antenne_slug;
$requete = "SELECT souhaits.*, users.username, users.pubkey
FROM souhaits
LEFT JOIN antennes
ON antennes.id = souhaits.antenne_id
LEFT JOIN users
ON users.id = souhaits.user_id
WHERE antennes.slug = :antenne_slug";
$stmt = $bdd->prepare($requete);
$stmt2 = $bdd->prepare($requete);
$stmt->execute($params);
$stmt2->execute($params);
$count = $stmt->rowCount();
$affich_actions = false;
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
if ($row2['username'] == $nom_connecte) {
$affich_actions = true;
}
$data .= '>Modifier';
$data .= '</button>';
$data .= '</td><td>';
$data .= '<button onclick="DeleteRecherches(\'';
$data .= $row['id'];
$data .= "'";
$data .= ',';
$data .= "'$antenne_slug'";
$data .= ",'";
$data .= $row['image'];
$data .= "'";
if ($row['username'] == $_GET['nom_connecte'] ) {
$data .= ')" class=\'btn btn-danger\'';
} else {
$data .= ')" class=\'btn btn-info\' disabled=true';
}
$data .= '>Supprimer</button>';
$data .= '</td>';
$data .= '</tr>';
$number++;
}
}
else
{
// Il n'y a pas encore de biens/services recherchés saisis
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
}
$data .= '</table>';
echo $data;
if ($affich_actions) {
$data .= '<th colspan="2" style="text-align: center;">Actions</th>';
$data .= '</tr>';
} else {
$data .= '</tr>';
}
if ($count > 0)
{
$number = 1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data .= "<tr style='background:lightblue;color:black;'>
<td>$number</td>";
$prix = $row['prix'];
$vendeur = $row['username'];
$produit = $row['name'];
$pubkey = $row['pubkey'];
$vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>";
$pubkeyShort = substr($pubkey, 0, 8);
$data .= '<td>'.$produit.'</td>';
$data .= '<td><img src="/uploads/recherches/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
$data .= '<td>'.$vendeur_format.'</td>';
$data .= '<td>'.$pubkeyShort.'...</td>';
$data .= '<td>'.$row['quantite'].'</td>';
$data .= '<td>'.$prix.'</td>';
if ($row['username'] == $_GET['nom_connecte'] ) {
$data .= '<td>';
$data .= '<button onclick="GetRecherchesDetails(\'';
$data .= $row['id'];
$data .= "'";
$data .= ',';
$data .= "'$antenne_slug'";
$data .= ",'";
$data .= $row['image'];
$data .= "'";
$data .= ')" class=\'btn btn-primary\'';
$data .= '>Modifier';
$data .= '</button>';
$data .= '</td><td>';
$data .= '<button onclick="DeleteRecherches(\'';
$data .= $row['id'];
$data .= "'";
$data .= ',';
$data .= "'$antenne_slug'";
$data .= ",'";
$data .= $row['image'];
$data .= "'";
$data .= ')" class=\'btn btn-danger\'';
$data .= '>Supprimer</button>';
$data .= '</td>';
} else {
if ($affich_actions) {
$data .= '<td></td><td></td>';
}
}
$data .= '</tr>';
$number++;
}
} else {
// Il n'y a pas encore de biens/services recherchés saisis
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
}
$data .= '</table>';
echo $data;
?>

View File

@ -9,14 +9,17 @@ function connexion(nom_connecte, mdp) {
// Fermer la fenêtre modale
$("#connexion_modal").modal("hide");
var result = JSON.parse(data);
// Afficher l'avatar et le nom du connecté sur la barre d'état ou message d'erreur
if (result.valide) {
$("#bouton-connexion").html('');
$("#bouton-connexion").append('<span><img src="\avatar_user.png" width="22" height="22" />');
$("#bouton-connexion").append('<span><img src="/avatar_user.png" width="22" height="22" />');
$("#bouton-connexion").append('</span>');
$("#nom_connecte").css('display',"block");
$("#deconnexion").css('display',"block");
$("#inscription").css('display',"none");
$("#nom_connecte").append(result.username);
// On recharge la page pour tenir compte de la connexion de l'utilisateur
window.location.reload(true);
} else {
$('.alert-danger').html('');
$(".alert-danger").css('display',"block");

View File

@ -42,6 +42,8 @@ class LogoutAction
public function __invoke(ServerRequestInterface $request)
{
$gmarchePrefix = $this->container->get('gmarche.prefix');
session_start();
unset($_SESSION['user']);
$this->auth->logout();
$this->flashService->success('Vous êtes maintenant déconnecté');
return new RedirectResponse("$gmarchePrefix");

View File

@ -60,6 +60,12 @@ class AntenneShowAction
'id' => $region->id
]);
}*/
return $this->renderer->render('@gmarche/antenne', compact('slug', 'region', 'gmarchePrefix','antennes', 'page'));
session_start();
if (isset($_SESSION['user'])) {
$user = $_SESSION['user'];
} else {
$user = '';
}
return $this->renderer->render('@gmarche/antenne', compact('user','slug', 'region', 'gmarchePrefix','antennes', 'page'));
}
}

View File

@ -33,7 +33,12 @@ class RegionIndexAction
{
$params = $request->getQueryParams();
$regions = $this->regionTable->findAll()->paginate(15, $params['p'] ?? 1);
return $this->renderer->render('@gmarche/index', compact('regions'));
session_start();
if (isset($_SESSION['user'])) {
$user = $_SESSION['user'];
} else {
$user = '';
}
return $this->renderer->render('@gmarche/index', compact('user','regions'));
}
}

View File

@ -55,7 +55,12 @@ class ProductIndexAction
//$routePrefix = 'product.index';
$viewPath = '@product/admin/products';
$items = $this->productTable->findByAntenneId('antenne_id', $antenne_id)->paginate(20, $page);
return $this->renderer->render($viewPath.'/index', compact('antenne_slug','gmarchePrefix','region_name','region_slug','antenne_id','antenne_name','viewPath', 'items' ));
session_start();
if (isset($_SESSION['user'])) {
$user = $_SESSION['user'];
} else {
$user = '';
}
return $this->renderer->render($viewPath.'/index', compact('user','antenne_slug','gmarchePrefix','region_name','region_slug','antenne_id','antenne_name','viewPath', 'items' ));
}
}

View File

@ -1,6 +1,7 @@
<?php
namespace App\Product\Actions;
use App\Auth\UserTable;
use App\Gmarche\Table\AntenneTable;
use App\Gmarche\Table\RegionTable;
use App\Product\Table\RechTable;
@ -29,12 +30,14 @@ class RechIndexAction
RechTable $rechTable,
AntenneTable $antenneTable,
RegionTable $regionTable,
UserTable $userTable,
ContainerInterface $container
) {
$this->renderer = $renderer;
$this->rechTable = $rechTable;
$this->antenneTable = $antenneTable;
$this->regionTable = $regionTable;
$this->userTable = $userTable;
$this->container = $container;
}
@ -55,7 +58,15 @@ class RechIndexAction
//$routePrefix = 'product.index';
$viewPath = '@product/admin/recherches';
$items = $this->rechTable->findByAntenneId('antenne_id', $antenne_id)->paginate(20, $page);
return $this->renderer->render($viewPath.'/index', compact('antenne_slug','gmarchePrefix','region_name','region_slug','antenne_id','antenne_name','viewPath', 'items' ));
session_start();
if (isset($_SESSION['user'])) {
$user = $_SESSION['user'];
$requete_user = $this->userTable->findBy('username', $user);
$user_id = $requete_user->id;
} else {
$user = '';
$user_id = '';
}
return $this->renderer->render($viewPath.'/index', compact('user','user_id','antenne_slug','gmarchePrefix','region_name','region_slug','antenne_id','antenne_name','viewPath', 'items' ));
}
}

View File

@ -112,9 +112,6 @@
</nav>
</div>
<div id="la_page">
<!--<div class="label" style="background-color: white;">
<h4>G-Marché de antenne_name </h4>
</div>-->
{% if antenne_name == 'Paris' %}
<script type="text/javascript">
$('.fond').css('background-image', "url('/images/toureiffel.jpeg')");
@ -135,7 +132,7 @@
Mettez bien le pseudo, la clé publique, le bien ou service, et le prix en june.
</div>
<p>
{% if current_user() %}
{% if user != '' %}
<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 %}
<p>
@ -160,9 +157,8 @@
<div class="modal-body">
<div class="form-group">
<label for="vendeur">Vendeur</label>
<input type="text" id="vendeur" disabled="disabled" placeholder="{{ current_user().username }}" class="form-control"/>
<input type="text" id="vendeur" disabled="disabled" placeholder="{{ user }}" value="{{ user }} class="form-control"/>
</div>
<div class="form-group">
<label for="produit">Bien ou service</label>
<input type="text" id="produit" placeholder="Bien ou service" class="form-control"/>
@ -193,7 +189,7 @@
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary"
onclick="addRecord('{{ antenne_slug }}','{{ antenne_id }}','{{ current_user().username }}','{{ current_user().id }}')">Ajouter</button>
onclick="addRecord('{{ antenne_slug }}','{{ antenne_id }}','{{ user }}','{{ user_id }}')">Ajouter</button>
</div>
</div>
</div>
@ -236,7 +232,7 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary" onclick="UpdateProduitsDetails('{{ current_user().username }}')" >Sauvegarder</button>
<button type="button" class="btn btn-primary" onclick="UpdateProduitsDetails('{{ user }}')" >Sauvegarder</button>
<input type="hidden" id="hidden_user_id">
<input type="hidden" id="hidden_antenne_slug">
<input type="hidden" id="hidden_image_name">
@ -244,20 +240,7 @@
</div>
</div>
</div>
<!-- <table style="padding:0.15rem;" class="table-striped tableau">
<thead>
<tr>
<th style="width:8rem;">Produit</th>
<th style="width:8rem;">Photo</th>
<th style="width:7rem;">Vendeur</th>
<th style="width:5rem;">Quantité</th>
<th style="width:6rem;">Prix</th>
<th style="width:6rem;">Màj le</th>
<th style="width:12rem;" colspan="2">Actions</th>
</tr>
</thead>
<tbody>
<!--
crochet% set token_input = csrf_input %crochet
paginate(items, routePrefix ~ '.index', {id: item.id, region: explodeUrl()[2],

View File

@ -132,7 +132,7 @@
Mettez bien le pseudo, la clé publique, le bien ou service, et le prix en june.
</div>
<p>
{% if current_user() %}
{% if user != '' %}
<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 %}
<p>
@ -142,24 +142,21 @@
{% endif %}
</button>
</p>
<div class="records_content2"></div>
</div>
</div>
</div>
<div class="modal fade" id="add_new_record_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document" style="color: black;">
<div class="modal-content" style="text-align: left;">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Ajouter une ligne</h4>
<h4 class="modal-title" id="myModalLabel">Ajouter un bien/service que vous recherchez</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="acheteur">Acheteur</label>
<input type="text" id="acheteur" disabled="disabled" placeholder="{{ current_user().username }}" class="form-control"/>
<input type="text" id="acheteur" disabled="disabled" placeholder="{{ user }}" value="{{ user }}" class="form-control"/>
</div>
<div class="form-group">
@ -196,12 +193,11 @@
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary"
onclick="addRecord2('{{ antenne_slug }}','{{ antenne_id }}','{{ current_user().username }}','{{ current_user().id }}')">Ajouter</button>
onclick="addRecord2('{{ antenne_slug }}','{{ antenne_id }}','{{ user }}','{{ user_id }}')">Ajouter</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="update_user_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document" style="color: black;">
<div class="modal-content" style="text-align: left;">
@ -239,7 +235,7 @@
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary" onclick="UpdateRecherchesDetails('{{ current_user().username }}')" >Sauvegarder</button>
<button type="button" class="btn btn-primary" onclick="UpdateRecherchesDetails('{{ user }}')" >Sauvegarder</button>
<input type="hidden" id="hidden_user_id_r">
<input type="hidden" id="hidden_antenne_slug_r">
<input type="hidden" id="hidden_image_name_r">

View File

@ -48,13 +48,14 @@
<div class="navbar-text" style="color:lightgray;margin-right:15px; margin-top:-3px;">
{{ "now"|date('d/m/y') }}
</div>
{% if current_user() %}
<!--{pourcent if current_user() pourcent}-->
{% if user != '' %}
<div class="navbar-text" id="user"><span><img src="\avatar_user.png" width="22" height="22" /></span>
<span id="nom_connecte">{{ current_user().username }}</span>
<span id="nom_connecte">{{ user }}</span>
</div>
<form method="post" action="{{ path('auth.logout') }}">
<!-- csrf_input() }}-->
<button class="btn btn-danger" style="font-size:14px;">Se déconnecter</button>
<button class="btn btn-danger" style="margin-left: 7px; font-size:14px;">Se déconnecter</button>
</form>
{% else %}
<div class="nav-item" id="bouton-connexion">
@ -82,7 +83,6 @@
<div class="alert alert-danger" style="display:none;">
</div>
{% block body %}{% endblock %}
<div class="modal fade" id="connexion_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document" style="color: black;">
@ -94,7 +94,7 @@
<div class="modal-body">
<div class="form-group">
<label for="pseudo">Pseudo</label>
<input type="text" id="pseudo" placeholder="{{ current_user().username }}" class="form-control"/>
<input type="text" id="pseudo" placeholder="{{ user }}" class="form-control"/>
</div>
<div class="form-group">
<label for="mdp">Mot de passe</label>