Fix: Utilisation du wrapper scuris pour tous
This commit is contained in:
parent
d701fd8b14
commit
45672460d1
@ -665,21 +665,22 @@ if ($_GET["propalid"])
|
||||
print '<table class="border" width="100%">';
|
||||
|
||||
$file = $conf->propal->dir_output . "/$propal->ref/$propal->ref.pdf";
|
||||
$relativepath = "$propal->ref/$propal->ref.pdf";
|
||||
|
||||
$var=true;
|
||||
|
||||
if (file_exists($file))
|
||||
{
|
||||
print "<tr $bc[0]><td>PDF</td>";
|
||||
|
||||
$encfile = urlencode($file);
|
||||
|
||||
print '<td><a href="'.DOL_URL_ROOT . '/document.php?file='.$encfile.'">'.$propal->ref.'.pdf</a></td>';
|
||||
print "<tr $bc[$var]><td>".$langs->trans("Propal")." PDF</td>";
|
||||
|
||||
print '<td><a href="'.DOL_URL_ROOT . '/document.php?modulepart=propal&file='.urlencode($relativepath).'">'.$propal->ref.'.pdf</a></td>';
|
||||
print '<td align="right">'.filesize($file). ' bytes</td>';
|
||||
print '<td align="right">'.strftime("%d %B %Y %H:%M:%S",filemtime($file)).'</td></tr>';
|
||||
}
|
||||
|
||||
if ($propal->brouillon == 1 && $user->rights->propale->creer)
|
||||
{
|
||||
print "<tr $bc[1]><td>Modèle</td><td align=\"right\">";
|
||||
print "<tr $bc[$var]><td>Modèle</td><td align=\"right\">";
|
||||
$html = new Form($db);
|
||||
$modelpdf = new Propal_Model_pdf($db);
|
||||
$html->select_array("modelpdf",$modelpdf->liste_array(),$propal->modelpdf);
|
||||
@ -916,7 +917,7 @@ else
|
||||
print "<tr $bc[$var]>";
|
||||
print '<td><a href="propal.php?propalid='.$objp->propalid.'">';
|
||||
print img_file();
|
||||
print "</a> <a href=\"propal.php?propalid=$objp->propalid\">$objp->ref</a></TD>\n";
|
||||
print "</a> <a href=\"propal.php?propalid=$objp->propalid\">$objp->ref</a></td>\n";
|
||||
if ($objp->client == 1)
|
||||
{
|
||||
$url = DOL_URL_ROOT.'/comm/fiche.php?socid='.$objp->idp;
|
||||
|
||||
@ -25,8 +25,7 @@
|
||||
/**
|
||||
\file htdocs/document.php
|
||||
\brief Wrapper permettant le téléchargement de fichier de données Dolibarr
|
||||
L'appel ancienne méthode (non sécurisée) est document.php?file=pathcompletdufichier
|
||||
L'appel nouvelle méthode (sécurisée) est document.php?file=pathrelatifdufichier&modulepart=typefichier
|
||||
L'appel est document.php?file=pathrelatifdufichier&modulepart=repfichierconcerne
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
@ -46,15 +45,8 @@ $accessallowed=0;
|
||||
if ($modulepart)
|
||||
{
|
||||
// On fait une vérification des droits et on définit le répertoire concerné
|
||||
if ($modulepart == 'facture_paiement')
|
||||
{
|
||||
$user->getrights('facture');
|
||||
if ($user->rights->facture->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->compta->dir_output.'/'.$original_file;
|
||||
}
|
||||
|
||||
// Wrapping pour les factures
|
||||
if ($modulepart == 'facture')
|
||||
{
|
||||
$user->getrights('facture');
|
||||
@ -64,16 +56,74 @@ if ($modulepart)
|
||||
}
|
||||
$original_file=$conf->facture->dir_output.'/'.$original_file;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// A terme, on ne doit rien pouvoir télécharger via document.php sans fournir type
|
||||
// car c'est grace au type qu'on vérifie que les droits et qu'on définit le répertoire racine des fichiers
|
||||
|
||||
// \todo Corriger ce trou de sécurité pour ne plus permettre l'utilisation via un nom de fichier complet et sans test de droits
|
||||
// Wrapping pour les fiches intervention
|
||||
if ($modulepart == 'ficheinter')
|
||||
{
|
||||
$user->getrights('ficheinter');
|
||||
if ($user->rights->ficheinter->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->ficheinter->dir_output.'/'.$original_file;
|
||||
}
|
||||
|
||||
// Wrapping pour les prelevements
|
||||
if ($modulepart == 'prelevement')
|
||||
{
|
||||
$user->getrights('prelevement');
|
||||
if ($user->rights->prelevement->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->prelevement->dir_output.'/'.$original_file;
|
||||
}
|
||||
|
||||
// Wrapping pour les propales
|
||||
if ($modulepart == 'propal')
|
||||
{
|
||||
$user->getrights('propale');
|
||||
if ($user->rights->propale->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->propal->dir_output.'/'.$original_file;
|
||||
}
|
||||
|
||||
// Wrapping pour les rapport de paiements
|
||||
if ($modulepart == 'facture_paiement')
|
||||
{
|
||||
$user->getrights('facture');
|
||||
if ($user->rights->facture->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->compta->dir_output.'/'.$original_file;
|
||||
}
|
||||
|
||||
// Wrapping pour les societe
|
||||
if ($modulepart == 'societe')
|
||||
{
|
||||
$user->getrights('societe');
|
||||
if ($user->rights->societe->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->societe->dir_output.'/'.$original_file;
|
||||
}
|
||||
|
||||
// Wrapping pour la telephonie
|
||||
if ($modulepart == 'telephonie')
|
||||
{
|
||||
$user->getrights('telephonie');
|
||||
if ($user->rights->telephonie->lire)
|
||||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->telephonie->dir_output.'/'.$original_file;
|
||||
}
|
||||
|
||||
|
||||
// Pour l'instant, autorise la passage
|
||||
$accessallowed=1;
|
||||
}
|
||||
|
||||
// Limite accès si droits non corrects
|
||||
|
||||
@ -94,11 +94,11 @@ if ($result)
|
||||
|
||||
print "<td>".$obj->firstname . " ".$obj->name."</td>\n";
|
||||
print "<td>".$obj->nom."</td>\n";
|
||||
$dir = $conf->telephonie->dir_output . "/ligne/commande/";
|
||||
|
||||
$encfile = urlencode($dir.$obj->filename);
|
||||
$dir = $conf->telephonie->dir_output . "/ligne/commande/";
|
||||
$relativepath = urlencode("ligne/commande/".$obj->filename);
|
||||
|
||||
print '<td><a href="'.DOL_URL_ROOT . '/document.php?file='.$encfile.'&type=application/msexcel">'.$obj->filename.'</a></td>';
|
||||
print '<td><a href="'.DOL_URL_ROOT . '/document.php?modulepart=telephonie&file='.urlencode($relativepath).'&type=application/msexcel">'.$obj->filename.'</a></td>';
|
||||
|
||||
print "</tr>\n";
|
||||
$i++;
|
||||
@ -108,7 +108,7 @@ if ($result)
|
||||
}
|
||||
else
|
||||
{
|
||||
print $db->error() . ' ' . $sql;
|
||||
dolibarr_print_error($db);
|
||||
}
|
||||
|
||||
/* ******************************************** */
|
||||
|
||||
@ -469,6 +469,15 @@ class User
|
||||
|
||||
}
|
||||
|
||||
if ($module == 'prelevement' or $module == '')
|
||||
{
|
||||
if ($obj->fk_id == 151)
|
||||
$this->rights->prelevement->lire = 1;
|
||||
|
||||
if ($obj->fk_id == 152)
|
||||
$this->rights->prelevement->configurer = 1;
|
||||
|
||||
}
|
||||
|
||||
if ($module == 'contrat' or $module == '')
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user