Ajout du popup de connexion et correction affichage des actions en fonction du connecté

This commit is contained in:
nox 2019-11-04 23:26:02 +01:00
parent 873a353243
commit 14cba978fe
7 changed files with 165 additions and 70 deletions

28
public/ajax/connexion.php Normal file
View File

@ -0,0 +1,28 @@
<?php
include '../../config/conf.php';
try {
$bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
if (isset($_POST['nom_connecte']) && isset($_POST['mdp']) != "") {
$params["username"] = $_POST['nom_connecte'];
$requete = "SELECT username, password
FROM users
WHERE username = :username";
$query = $bdd->prepare($requete);
$query->execute($params);
$row = $query->fetch(PDO::FETCH_ASSOC);
if (password_verify($_POST['mdp'],$row['password'])) {
echo '{"valide":true,"username":"'.$row['username'].'"}';
} else {
echo '{"valide":false}';
}
} else {
$response['status'] = 200;
$response['message'] = "Invalid Request!";
}
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage() . "<br/>";
}

View File

@ -2,10 +2,11 @@
ini_set('display_errors', 0); ini_set('display_errors', 0);
include '../../config/conf.php'; include '../../config/conf.php';
$antenne_slug = $_GET['antenne_slug']; $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);
// Design initial table header
$data = '<table class="table table-bordered table-striped"> $data = '<table class="table table-bordered table-striped">
<tr style="color: black;"> <tr style="color: black;">
<th>No.</th> <th>No.</th>
@ -14,9 +15,8 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
<th>Vendeur</th> <th>Vendeur</th>
<th>Clé publique</th> <th>Clé publique</th>
<th>Quantité</th> <th>Quantité</th>
<th>Prix en junes</th> <th>Prix en junes</th>';
<th colspan="2" style="text-align: center;">Actions</th>
</tr>';
$params["antenne_slug"] = $antenne_slug; $params["antenne_slug"] = $antenne_slug;
$requete = "SELECT products.*, users.username $requete = "SELECT products.*, users.username
@ -27,9 +27,23 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
ON users.id = products.user_id ON users.id = products.user_id
WHERE antennes.slug = :antenne_slug"; WHERE antennes.slug = :antenne_slug";
$stmt = $bdd->prepare($requete); $stmt = $bdd->prepare($requete);
$stmt2 = $bdd->prepare($requete);
$stmt->execute($params); $stmt->execute($params);
$stmt2->execute($params);
$count = $stmt->rowCount(); $count = $stmt->rowCount();
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
if ($row2['username'] == $nom_connecte) {
$affich_actions = true;
} else {
$affich_actions = false;
}
}
if ($affich_actions) {
$data .= '<th colspan="2" style="text-align: center;">Actions</th>';
$data .= '</tr>';
} else {
$data .= '</tr>';
}
if ($count > 0) if ($count > 0)
{ {
$number = 1; $number = 1;
@ -44,38 +58,42 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$data .= '<td></td>'; $data .= '<td></td>';
$data .= '<td>'.$row['quantite'].'</td>'; $data .= '<td>'.$row['quantite'].'</td>';
$data .= '<td>'.$row['prix'].'</td>'; $data .= '<td>'.$row['prix'].'</td>';
$data .= '<td>'; if ($row['username'] == $_GET['nom_connecte'] ) {
$data .= '<button onclick="GetProduitsDetails(\''; $data .= '<td>';
$data .= $row['id']; $data .= '<button onclick="GetProduitsDetails(\'';
$data .= "'"; $data .= $row['id'];
$data .= ','; $data .= "'";
$data .= "'$antenne_slug'"; $data .= ',';
$data .= ",'"; $data .= "'$antenne_slug'";
$data .= $row['image']; $data .= ",'";
$data .= "'"; $data .= $row['image'];
if ($row['username'] == $_GET['nom_connecte'] ) { $data .= "'";
$data .= ')" class=\'btn btn-primary\''; $data .= ')" class=\'btn btn-primary\'';
} else { //} else {
$data .= ')" class=\'btn btn-info\' disabled=true'; // $data .= ')" class=\'btn btn-info\' disabled=true';
} // }
$data .= '>Modifier'; $data .= '>Modifier';
$data .= '</button>'; $data .= '</button>';
$data .= '</td><td>'; $data .= '</td><td>';
$data .= '<button onclick="DeleteProduits(\''; $data .= '<button onclick="DeleteProduits(\'';
$data .= $row['id']; $data .= $row['id'];
$data .= "'"; $data .= "'";
$data .= ','; $data .= ',';
$data .= "'$antenne_slug'"; $data .= "'$antenne_slug'";
$data .= ",'"; $data .= ",'";
$data .= $row['image']; $data .= $row['image'];
$data .= "'"; $data .= "'";
if ($row['username'] == $_GET['nom_connecte'] ) { $data .= ')" class=\'btn btn-danger\'';
$data .= ')" class=\'btn btn-danger\'';
//$data .= ')" class=\'btn btn-info\' disabled=true';
$data .= '>Supprimer</button>';
$data .= '</td>';
} else { } else {
$data .= ')" class=\'btn btn-info\' disabled=true'; if ($affich_actions) {
$data .= '<td></td><td></td>';
}
} }
$data .= '>Supprimer</button>';
$data .= '</td>';
$data .= '</tr>'; $data .= '</tr>';
$number++; $number++;

30
public/js/connex.js Normal file
View File

@ -0,0 +1,30 @@
function connexion(nom_connecte, mdp) {
//$("#hidden_user_id").val(id_user);
$.post("/ajax/connexion.php", {
nom_connecte: nom_connecte,
mdp: mdp
}, function (data, status) {
// Fermer la fenêtre modale
$("#connexion_modal").modal("hide");
var result = JSON.parse(data);
if (result.valide) {
$("#bouton-connexion").html('');
$("#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);
} else {
$('.alert-danger').html('');
$(".alert-danger").css('display',"block");
$('.alert-danger').append("Identifiant ou mot de passe invalide");
}
});
}
$(document).ready(function () {
// connexion(nom_connecte, mdp);
});

View File

@ -239,7 +239,6 @@ $(document).ready(function () {
var source = 'recherches'; var source = 'recherches';
} }
$('#add_image').change(function(){ $('#add_image').change(function(){
alert("ça passe le add change");
var fd_add = new FormData(); var fd_add = new FormData();
var files = $('#add_image')[0].files[0]; var files = $('#add_image')[0].files[0];
fd_add.append('add_image',files); fd_add.append('add_image',files);
@ -272,10 +271,8 @@ $(document).ready(function () {
}); });
}); });
$('#image').change(function(){ $('#image').change(function(){
alert('ça passe le modif image');
var fd = new FormData(); var fd = new FormData();
var files = $('#image')[0].files[0]; var files = $('#image')[0].files[0];
//var source = 'recherches';
fd.append('image',files); fd.append('image',files);
fd.append('nom_user',nom_connecte); fd.append('nom_user',nom_connecte);
fd.append('nom_antenne',antenne_slug); fd.append('nom_antenne',antenne_slug);

View File

@ -45,7 +45,7 @@
overflow: hidden; overflow: hidden;
padding: 0 !important; padding: 0 !important;
border-radius: 50px; border-radius: 50px;
height: 26px; height: 28px;
width: 215px; width: 215px;
} }
.toggle_radio > * { .toggle_radio > * {
@ -71,7 +71,7 @@
width: 100px; width: 100px;
height: 20px; height: 20px;
position: absolute; position: absolute;
top: 3px; top: 4px;
border-radius: 50px; border-radius: 50px;
transition: all .4s ease; transition: all .4s ease;
} }
@ -107,12 +107,7 @@
</label> </label>
<div class="toggle_option_slider"> <div class="toggle_option_slider">
</div> </div>
<!--<li class="breadcrumb-item active">PRODUITS</li>
<span style="margin-left:20px;">
<li class="breadcrumb-item"><a href="/gmarche/{{ region_slug }}/{{ antenne_slug }}/1">RECHERCHES</a></li>
</span>-->
</div> </div>
</ol> </ol>
</nav> </nav>
</div> </div>
@ -143,15 +138,14 @@
{% if current_user() %} {% if current_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 <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 %}
<div class="btn btn-primary"> <p>
<a class="nav-link" style="color: white; font-size: 14px;" href="{{ path('auth.login') }}">Veuillez vous identifier pour ajouter un bien/service</a> <span style="color:lightgray;">Veuillez vous identifier dans la barre à droite
</div> ci-dessus pour ajouter/modifier/supprimer des éléments</span>
</p>
{% endif %} {% endif %}
</button> </button>
</p> </p>
<div class="records_content"></div> <div class="records_content"></div>
<div class="records_content2"></div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -45,7 +45,7 @@
overflow: hidden; overflow: hidden;
padding: 0 !important; padding: 0 !important;
border-radius: 50px; border-radius: 50px;
height: 26px; height: 28px;
width: 215px; width: 215px;
} }
.toggle_radio > * { .toggle_radio > * {
@ -71,7 +71,7 @@
width: 100px; width: 100px;
height: 20px; height: 20px;
position: absolute; position: absolute;
top: 3px; top: 4px;
border-radius: 50px; border-radius: 50px;
transition: all .4s ease; transition: all .4s ease;
} }
@ -107,19 +107,11 @@
</label> </label>
<div class="toggle_option_slider"> <div class="toggle_option_slider">
</div> </div>
<!--<li class="breadcrumb-item active">PRODUITS</li>
<span style="margin-left:20px;">
<li class="breadcrumb-item"><a href="/gmarche/{{ region_slug }}/{{ antenne_slug }}/1">RECHERCHES</a></li>
</span>-->
</div> </div>
</ol> </ol>
</nav> </nav>
</div> </div>
<div id="la_page"> <div id="la_page">
<!--<div class="label" style="background-color: white;">
<h4>G-Marché de antenne_name </h4>
</div>-->
{% if antenne_name == 'Paris' %} {% if antenne_name == 'Paris' %}
<script type="text/javascript"> <script type="text/javascript">
$('.fond').css('background-image', "url('/images/toureiffel.jpeg')"); $('.fond').css('background-image', "url('/images/toureiffel.jpeg')");
@ -143,9 +135,10 @@
{% if current_user() %} {% if current_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 <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 %}
<div class="btn btn-primary"> <p>
<a class="nav-link" style="color: white; font-size: 14px;" href="{{ path('auth.login') }}">Veuillez vous identifier pour ajouter un bien/service</a> <span style="color:lightgray;">Veuillez vous identifier dans la barre à droite
</div> ci-dessus pour ajouter/modifier/supprimer des éléments</span>
</p>
{% endif %} {% endif %}
</button> </button>
</p> </p>

View File

@ -27,6 +27,8 @@
grid-column: 2 / 3; grid-column: 2 / 3;
} }
</style> </style>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="/js/connex.js"></script>
</head> </head>
<body class="fond page"> <body class="fond page">
<div class="site"> <div class="site">
@ -47,18 +49,26 @@
{{ "now"|date('d/m/y') }} {{ "now"|date('d/m/y') }}
</div> </div>
{% if current_user() %} {% if current_user() %}
<div class="navbar-text"><span><img src="\avatar_user.png" width="22" height="22" /></span> <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></div> <span id="nom_connecte">{{ current_user().username }}</span>
&nbsp; &nbsp; </div>
<form method="post" action="{{ path('auth.logout') }}"> <form method="post" action="{{ path('auth.logout') }}">
<!-- csrf_input() }}--> <!-- csrf_input() }}-->
<button class="btn btn-danger" style="font-size:14px;">Se déconnecter</button> <button class="btn btn-danger" style="font-size:14px;">Se déconnecter</button>
</form> </form>
{% else %} {% else %}
<div class="nav-item"> <div class="nav-item" id="bouton-connexion">
<a class="nav-link" href="{{ path('auth.login') }}" style="font-size:14px;">Se connecter</a> <button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#connexion_modal">Se connecter
</div> </div>
<div class="nav-item"> <div id="nom_connecte" style="display:none;margin-left:10px;margin-top:6px;margin-right:8px;">
</div>
<div id="deconnexion" style="display:none;">
<form method="post" action="{{ path('auth.logout') }}">
<!-- csrf_input() }}-->
<button class="btn btn-danger" style="font-size:14px;">Se déconnecter</button>
</form>
</div>
<div class="nav-item" id="inscription">
<a class="nav-link" href="{{ path('account.signup') }}" style="font-size:14px;">S'inscrire</a> <a class="nav-link" href="{{ path('account.signup') }}" style="font-size:14px;">S'inscrire</a>
</div> </div>
{% endif %} {% endif %}
@ -69,11 +79,36 @@
{{ flash('success') }} {{ flash('success') }}
</div> </div>
{% endif %} {% endif %}
<div class="alert alert-danger" style="display:none;">
</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
{% block body %}{% endblock %} {% 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;">
<div class="modal-content" style="text-align: left;">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Se connecter</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="pseudo">Pseudo</label>
<input type="text" id="pseudo" placeholder="{{ current_user().username }}" class="form-control"/>
</div>
<div class="form-group">
<label for="mdp">Mot de passe</label>
<input type="password" id="mdp" class="form-control"/>
</div>
</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="connexion(document.getElementById('pseudo').value,document.getElementById('mdp').value)">Valider</button>
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
</div> </div>