Skip to content

Commit 7b7d2c8

Browse files
committed
Added League\Csv\EscapeFormula for a few more reports
1 parent 6debb3a commit 7b7d2c8

3 files changed

Lines changed: 34 additions & 3 deletions

File tree

app/Http/Controllers/Licenses/LicensesController.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use Illuminate\Http\RedirectResponse;
1313
use Illuminate\Http\Request;
1414
use Illuminate\Support\Facades\DB;
15+
use League\Csv\EscapeFormula;
1516
use Symfony\Component\HttpFoundation\StreamedResponse;
1617

1718
/**
@@ -388,6 +389,8 @@ public function getExportLicensesCsv()
388389

389390
fputcsv($handle, $headers);
390391

392+
$formatter = new EscapeFormula('`');
393+
391394
foreach ($licenses as $license) {
392395
// Add a new row with data
393396
$values = [
@@ -419,7 +422,14 @@ public function getExportLicensesCsv()
419422
$license->created_at,
420423
];
421424

422-
fputcsv($handle, $values);
425+
// CSV_ESCAPE_FORMULAS is set to false in the .env
426+
if (config('app.escape_formulas') === false) {
427+
fputcsv($handle, $values);
428+
429+
// CSV_ESCAPE_FORMULAS is set to true or is not set in the .env
430+
} else {
431+
fputcsv($handle, $formatter->escapeRecord($values));
432+
}
423433
}
424434
});
425435

app/Http/Controllers/ReportsController.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ public function postActivityReport(Request $request): StreamedResponse
252252

253253
$response = new StreamedResponse(function () {
254254
Log::debug('Starting streamed response');
255+
Log::debug('CSV escaping is set to: '.config('app.escape_formulas'));
255256

256257
// Open output stream
257258
$handle = fopen('php://output', 'w');
@@ -287,6 +288,8 @@ public function postActivityReport(Request $request): StreamedResponse
287288
Log::debug('Walking results: '.$executionTime);
288289
$count = 0;
289290

291+
$formatter = new EscapeFormula('`');
292+
290293
foreach ($actionlogs as $actionlog) {
291294
$count++;
292295
$target_name = '';
@@ -317,7 +320,15 @@ public function postActivityReport(Request $request): StreamedResponse
317320
$actionlog->action_source,
318321
$actionlog->log_meta,
319322
];
320-
fputcsv($handle, $row);
323+
324+
// CSV_ESCAPE_FORMULAS is set to false in the .env
325+
if (config('app.escape_formulas') === false) {
326+
fputcsv($handle, $row);
327+
328+
// CSV_ESCAPE_FORMULAS is set to true or is not set in the .env
329+
} else {
330+
fputcsv($handle, $formatter->escapeRecord($row));
331+
}
321332
}
322333
});
323334

app/Http/Controllers/Users/UsersController.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
use Illuminate\Support\Facades\Log;
2727
use Illuminate\Support\Facades\Mail;
2828
use Illuminate\Support\Facades\Password;
29+
use League\Csv\EscapeFormula;
2930
use Symfony\Component\HttpFoundation\StreamedResponse;
3031

3132
/**
@@ -572,6 +573,8 @@ public function getExportUserCsv()
572573

573574
fputcsv($handle, $headers);
574575

576+
$formatter = new EscapeFormula('`');
577+
575578
foreach ($users as $user) {
576579
$user_groups = '';
577580

@@ -614,7 +617,14 @@ public function getExportUserCsv()
614617
$user->created_at,
615618
];
616619

617-
fputcsv($handle, $values);
620+
// CSV_ESCAPE_FORMULAS is set to false in the .env
621+
if (config('app.escape_formulas') === false) {
622+
fputcsv($handle, $values);
623+
624+
// CSV_ESCAPE_FORMULAS is set to true or is not set in the .env
625+
} else {
626+
fputcsv($handle, $formatter->escapeRecord($values));
627+
}
618628
}
619629
});
620630

0 commit comments

Comments
 (0)