Obtenir la clé publique avec pseudo à l'inscription en AJAX V2 + Voir la clé des vendeurs dans la liste des produits V1

This commit is contained in:
poka 2019-11-04 05:05:59 +01:00
parent f773078413
commit 0e8ea2628b
5 changed files with 58 additions and 68 deletions

View File

@ -1,24 +1,25 @@
<?php
// if(isset($_POST['produit']) && isset($_POST['vendeur']) && isset($_POST['cle_pub']))
// {
// Get public key from pseudo
$parseUser = $_GET['vendeur'];
putenv("parseUser=$parseUser");
$silkPubKey = system('curl -s https:\/\/duniter-g1.p2p.legal/wot/members | grep -w -i -B 1 $parseUser | grep "pubkey" | awk -F \'"\' \'{ print $4 }\'');
if(isset($_GET['vendeur']))
{
// Get public key from pseudo
$parseUser = $_GET['vendeur'];
putenv("parseUser=$parseUser");
$silkPubKey = system('curl -s https:\/\/duniter-g1.p2p.legal/wot/members | grep -w -i -B 1 $parseUser | grep "pubkey" | awk -F \'"\' \'{ print $4 }\'');
if (empty($silkPubKey))
{
$silkPubKeyUser = shell_exec('curl -s https:\/\/duniter-g1.p2p.legal/wot/lookup/$parseUser | head | grep -i -w -A 3 "pubkey" | awk -F \'"\' \'{ print $4 }\' | awk \'NF > 0\'');
putenv("silkPubKeyUser=$silkPubKeyUser");
$silkUser = system('echo "$silkPubKeyUser" | tail -n2 | head -n1');
if ($silkUser == $parseUser)
{
$silkPubKey = system('echo "$silkPubKeyUser" | head -n1');
}
}
if (empty($silkPubKey))
{
$silkPubKeyUser = shell_exec('curl -s https:\/\/duniter-g1.p2p.legal/wot/lookup/$parseUser | head | grep -i -w -A 3 "pubkey" | awk -F \'"\' \'{ print $4 }\' | awk \'NF > 0\'');
putenv("silkPubKeyUser=$silkPubKeyUser");
$silkUser = system('echo "$silkPubKeyUser" | tail -n2 | head -n1');
if ($silkUser == $parseUser)
{
$silkPubKey = system('echo "$silkPubKeyUser" | head -n1');
}
}
// echo $silkPubKey
// }
if (empty($silkPubKey))
{
echo "Aucune clé n'a été trouvé à partir de ce pseudo";
}
}
?>

View File

@ -19,7 +19,7 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
</tr>';
$params["antenne_slug"] = $antenne_slug;
$requete = "SELECT products.*, users.username
$requete = "SELECT products.*, users.username, users.pubkey
FROM products
LEFT JOIN antennes
ON antennes.id = products.antenne_id
@ -41,7 +41,7 @@ $bdd = new \PDO("mysql:host=$host;dbname=$database_name", $username, $password);
$data .= '<td>'.$row['name'].'</td>';
$data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
$data .= '<td>'.$row['username'].'</td>';
$data .= '<td></td>';
$data .= '<td>'.$row['pubkey'].'</td>';
$data .= '<td>'.$row['quantite'].'</td>';
$data .= '<td>'.$row['prix'].'</td>';
$data .= '<td>';

View File

@ -1,4 +1,5 @@
// Add Record
function addRecord(antenne_slug, antenne_id, nom_connecte, id_user) {
var produit = $("#produit").val();

View File

@ -58,8 +58,9 @@ class SignupAction
}
$params = $request->getParsedBody();
$validator = (new Validator($params))
->required('username', 'email', 'password', 'password_confirm', 'firstname', 'lastname', 'created_at')
->required('username', 'pubkey', 'email', 'password', 'password_confirm', 'created_at')
->length('username', 3)
->length('pubkey', 44)
->length('firstname', 2)
->length('lastname', 2)
->email('email')
@ -70,6 +71,7 @@ class SignupAction
if ($validator->isValid()) {
$userParams = [
'username' => $params['username'],
'pubkey' => $params['pubkey'],
'firstname'=> $params['firstname'],
'lastname'=> $params['lastname'],
'email' => $params['email'],
@ -89,6 +91,7 @@ class SignupAction
'errors' => $errors,
'user' => [
'username' => $params['username'],
'pubkey' => $params['pubkey'],
'email' => $params['email'],
'firstname'=> $params['firstname'],
'lastname'=> $params['lastname'],

View File

@ -1,18 +1,13 @@
{% extends 'layout.twig' %}
{% block body %}
<!-- <script type="text/javascript" src="../../../public/js/script.js"></script>-->
<div class="container" style="background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
<form action="{{ path('account.signup') }}" method="post">
{{ csrf_input() }}
{{ field('username', user.username, "Pseudo") }}
{{ field('pubkey', user.pubkey, "Clé publique") }}
<!--<input type="text" size="30" onkeyup="showResult(this.value)">-->
<input type="text" id="vendeur-input" />
<div id="livesearch"></div>
<div id="livesearch-pubkey"></div>
<div id=cle_pub>{{ field('pubkey', user.pubkey, "Clé publique") }}</div>
{{ field('firstname', user.firstname, "Prénom") }} {{ field('lastname', user.lastname, "Nom") }}
{{ field('email', user.email, "Email", {type: 'email'}) }}
{{ field('password', null, "Mot de passe", {type: 'password'}) }}
@ -24,49 +19,39 @@
<script>
function showResult(str) {
if (str.length==0) {
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("livesearch").innerHTML=this.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","/ajax/getG1PubKey.php?vendeur="+str,true);
xmlhttp.send();
}
</script>
<script>
var textInput = document.getElementById('vendeur-input');
var textInput = document.getElementById('username');
var timeout = null;
textInput.onkeyup = function (e) {
clearTimeout(timeout);
// Make a new timeout set to go off in 800ms
timeout = setTimeout(function () {
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("livesearch").innerHTML=this.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","/ajax/getG1PubKey.php?vendeur="+textInput.value,true);
xmlhttp.send();
}, 1000);
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
pubkeyAnswer=this.responseText;
pubkeyIsNull = pubkeyAnswer.includes("Aucune clé n'a été trouvé à partir de ce pseudo");
// (pubkeyIsNull) ? sentenceAnswer=this.responseText : sentenceAnswer="j'ai trouvé ta clé publique Ḡ1 !";
// sentenceAnswer=this.responseText;
document.getElementById("livesearch-pubkey").innerHTML=pubkeyAnswer;
(pubkeyIsNull) ? document.getElementById("pubkey").value="" : document.getElementById("pubkey").value=pubkeyAnswer;
document.getElementById("livesearch-pubkey").style.border="1px solid #A5ACB2";
(pubkeyIsNull) ? noPubKey("block") : noPubKey("hide");
}
}
xmlhttp.open("GET","/ajax/getG1PubKey.php?vendeur="+textInput.value,true);
xmlhttp.send();
}, 800);
};
function noPubKey(state) {
var textMbr = document.getElementById("cle_pub");
if (state == "hide"){
textMbr.style.display = "none";
} else {
textMbr.style.display = "block";
}
}
</script>
{% endblock %}