File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1212use Illuminate \Http \RedirectResponse ;
1313use Illuminate \Http \Request ;
1414use Illuminate \Support \Facades \DB ;
15+ use League \Csv \EscapeFormula ;
1516use 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
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 2626use Illuminate \Support \Facades \Log ;
2727use Illuminate \Support \Facades \Mail ;
2828use Illuminate \Support \Facades \Password ;
29+ use League \Csv \EscapeFormula ;
2930use 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
You can’t perform that action at this time.
0 commit comments