0.2.0: securité (json_encode) + petite améliorations

This commit is contained in:
BuildTools 2020-03-22 06:24:13 +01:00
parent 1b7017a2ee
commit e41129b0b7
7 changed files with 64 additions and 57 deletions

View file

@ -55,40 +55,34 @@ class Facture
throw new UserException("$k est de valeur non-attendue ($data).");
}
break;
case 'receveur_id':
if (!is_numeric($datas[$k]) || $datas[$k] < 0 )
{
throw new UserException("L'id du receveur est non-attendu ($data).");
case 'receveur_id':
if (!is_numeric($datas[$k]) || $datas[$k] < 0) {
throw new UserException("L'id du receveur est non-attendu ($data).");
}
break;
case 'date_emission':
if (!strtotime($datas[$k]))
{
throw new UserException("La date d'émission est non-attendue ($data).");
case 'date_emission':
if (!strtotime($datas[$k])) {
throw new UserException("La date d'émission est non-attendue ($data).");
}
break;
case 'date_echeance':
if (!strtotime($datas[$k]))
{
throw new UserException("La date d'émission est non-attendue ($data).");
case 'date_echeance':
if (!strtotime($datas[$k])) {
throw new UserException("La date d'émission est non-attendue ($data).");
}
if (isset($datas['date_emission']) && (strtotime($datas[$k]) <= strtotime($datas['date_emission']) ) )
{
if (isset($datas['date_emission']) && (strtotime($datas[$k]) <= strtotime($datas['date_emission']))) {
throw new UserException("La date d'échéance est antérieure ou égale à la date d'émission ($data).");
}
break;
case 'moyen_paiement':
$cats = new \Garradin\Compta\Categories;
if(!array_key_exists($datas[$k], $cats->listMoyensPaiement()))
{
throw new UserException("Le moyen de paiement ne correspond pas à la liste interne ($data).");
case 'moyen_paiement':
$cats = new \Garradin\Compta\Categories;
if (!array_key_exists($datas[$k], $cats->listMoyensPaiement())) {
throw new UserException("Le moyen de paiement ne correspond pas à la liste interne ($data).");
}
unset($cats);
break;
case 'contenu':
if(!is_array($datas[$k]) || empty($datas[$k]))
{
throw new UserException("Le contenu du document est vide ($data).");
case 'contenu':
if (!is_array($datas[$k]) || empty($datas[$k])) {
throw new UserException("Le contenu du document est vide ($data).");
}
$total = 0;
$vide = 1;
@ -108,12 +102,11 @@ case 'contenu':
{
throw new UserException("Toutes les désignations/prix sont vides.");
}
$datas[$k] = serialize($datas[$k]);
$datas[$k] = json_encode($datas[$k]);
break;
case 'total':
if(!isset($datas['contenu']))
{
throw new UserException("Pas de contenu fourni pour vérifier le total.");
case 'total':
if (!isset($datas['contenu'])) {
throw new UserException("Pas de contenu fourni pour vérifier le total.");
}
if ($total != $datas[$k])
{
@ -151,7 +144,7 @@ case 'total':
throw new UserException("Pas de facture retournée avec cet id.");
}
$r->contenu = unserialize($r->contenu);
$r->contenu = json_decode($r->contenu, true);
return $r;
}
@ -164,7 +157,7 @@ case 'total':
foreach ($r as $e)
{
$e->contenu = unserialize((string)$e->contenu);
$e->contenu = json_decode((string)$e->contenu, true);
}
return $r;
@ -206,7 +199,7 @@ case 'total':
foreach ($r as $e)
{
$e->contenu = unserialize((string)$e->contenu);
$e->contenu = json_decode((string)$e->contenu, true);
}
return empty($r)?false:$r;