Skip to content
Snippets Groups Projects
Commit 73877530 authored by Jonathan Foucher's avatar Jonathan Foucher
Browse files

Fix PDF

parent 2a1cfa21
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@
use App\Models\DangerLevel;
use App\Models\Evaluation;
use App\Models\Measure;
use App\Models\MeasureLevel;
use App\Models\Organization;
use App\Models\User;
......@@ -48,7 +49,7 @@ public function ActionPlanPdf()
$pdf->setOption('header-html', view('pdf.planAction.header', $data));
$pdf->setOption('footer-html', view('pdf.planAction.footer', $data));
// $pdf->setOption('cover', view('pdf.planAction.cover', $data));
$pdf->setOption('cover', view('pdf.planAction.cover', $data));
$pdf->setOption('xsl-style-sheet', view('pdf.planAction.toc', $data));
$pdf->setOption('toc-header-text', 'Table des matières');
$pdf->setOption('toc-text-size-shrink', 1);
......@@ -67,20 +68,28 @@ public function ActionPlanPdf()
unlink(storage_path('app/action_plan/tmp.pdf'));
}
$pdf->save(storage_path('app/action_plan/tmp.pdf'));
// Add measure documents to end of PDF file
$measureDocs = collect($actionSorted)->filter(function (MeasureLevel $ml) {
return null !== $ml->measure->{'level' . $ml->expected_level . '_file'};
})->map(function (MeasureLevel $ml) {
$url = $ml->measure->{'level' . $ml->expected_level . '_file'};
return str_replace('/storage/', storage_path('app/public/'), $url);
})->join('" "');
// foreach measure, get all levels that should be added
$measureDocs = collect($actionSorted)->map(function (MeasureLevel $ml) {
$files = [];
for ($i = $ml->actual_level +1; $i <= $ml->expected_level; $i++) {
if (null !== $ml->measure->{'level' . $i . '_file'}) {
$files[] = str_replace('/storage/', storage_path('app/public/'), $ml->measure->{'level' . $i . '_file'});
}
}
return $files;
})->flatten()->join('" "');
$pdf->save(storage_path('app/action_plan/tmp.pdf'));
// Add measure documents to end of PDF file
if (strlen($measureDocs) > 0) {
$measurePdfs = '"' . $measureDocs . '"';
$command = 'gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="' . storage_path('app/action_plan/' . $filename) . '" "' . storage_path('app/action_plan/tmp.pdf') . '" ' . $measurePdfs;
$command = 'gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="'
. storage_path('app/action_plan/' . $filename)
. '" "' . storage_path('app/action_plan/tmp.pdf') . '" ' . $measurePdfs;
exec($command);
} else {
Storage::disk('local')->move('action_plan/tmp.pdf', 'action_plan/' . $filename);
......@@ -188,6 +197,7 @@ public function DossierCyberSecuritePdf(GraphDataRepository $repository, $organi
$data = [
'organization' => $organization,
'evaluation' => $evaluation,
'measures' => Measure::all(),
'actions' => $actionSorted,
'referentiel' => $evaluation->reference,
'legendLevels' => $dangerLevels,
......
......@@ -427,6 +427,32 @@
<br>
<p>En synthèse, les mesures de sécurité opérationnelles dans la collectivité sont les suivantes :</p>
<table style="width:100%;border:none">
<?php $size = 80; ?>
@foreach($evaluation->measureLevels as $action)
<tr>
<td>
<table style="page-break-inside: avoid;width:100%;border: 1px solid #4281A4;border-collapse: collapse">
<tr>
<td style="padding: 0 20px;border: 1px solid #4281A4;width:80%">
<b>{{$action->measure->short_name}}</b>
</td>
<td style="padding: 0 20px;border: 1px solid #4281A4;width:20%">
@include('pdf.dossierCyberSecurite.measure_circle')
</td>
</tr>
<tr>
<td colspan="2" style="padding: 10px 20px;border: 1px solid #4281A4;">
{{$action->measure->name}}
</td>
</tr>
</table>
</td>
</tr>
@endforeach
</table>
<div class="page-break"></div>
<h3>Annexe 3 – Métriques</h3>
......@@ -472,16 +498,21 @@
<div class="page-break"></div>
<h3>Annexe 4 – Glossaire</h3>
<br>
<p><b>cybersécurité</b></p>
<p><b>cyberespace</b></p>
<p><b>cybermenace</b></p>
<p><b>CMT</b></p>
<p><b>Demande de rançon</b></p>
<p><b>Vol et recel de données</b></p>
<p><b>Fraude au président</b></p>
<p><b>Détournement de la téléphonie</b></p>
<p><b>Défacement du site internet</b></p>
<p><b>Danger</b>
Elément, personne, groupe de personne ou organisation susceptible d’engendrer un risque (assimilé au terme « source de risque » de la méthode EBIOS RM).
</p>
<p><b>Cyberespace</b>
Espace de communication constitué par l’interconnexion mondiale d’équipements de traitement automatisé de données numériques. (ANSSI)
</p><p><b>Cybersécurité</b>
État recherché pour un système d’information lui permettant de résister à des événements issus du cyberespace susceptibles de compromettre la disponibilité, l’intégrité ou la confidentialité des données stockées, traitées ou transmises et des services connexes que ces systèmes offrent ou qu’ils rendent accessibles. La cybersécurité fait appel à des techniques de sécurité des systèmes d’information et s’appuie sur la lutte contre la cybercriminalité et sur la mise en place d’une cyberdéfense. (ANSSI)
</p><p><b>Risque</b>
Danger ou péril dans lequel l’idée de hasard est accusée mais avec la perspective d’un quelconque avantage possible (dictionnaire de la langue philosophique)
Un risque est associé à la possibilité qu’un danger connu exploite un scénario d’attaque connu sur un composant et nuise à l’organisme (Inspiré de la norme ISO 27000).
</p><p><b>Risque cyber</b>
Risque portant sur le système d’information ayant pour origine le cyberespace.
</p><p><b>Système d’Information</b>
Ensemble des ressources destinées à collecter, classifier, stocker, gérer, diffuser les informations au sein d’une organisation.
</p>
</div>
@include('pdf.dossierCyberSecurite.graphs-js')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment