Sanitize Trait Added For Universal Support

This commit is contained in:
devansh bawari 2021-03-02 10:46:04 +05:30
parent 3df10d8c74
commit b37fe3d7a1
3 changed files with 39 additions and 21 deletions

View File

@ -0,0 +1,27 @@
<?php
namespace Webkul\Core\Traits;
use Illuminate\Support\Facades\Storage;
use enshrined\svgSanitize\Sanitizer as MainSanitizer;
trait Sanitizer
{
/**
* Sanitize SVG file.
*
* @param string $path
* @return void
*/
public function sanitizeSVG($path)
{
/* sanitizer instance */
$sanitizer = new MainSanitizer();
/* grab svg file */
$dirtySVG = Storage::get($path);
/* save sanitized svg */
Storage::put($path, $sanitizer->sanitize($dirtySVG));
}
}

View File

@ -2,13 +2,16 @@
namespace Webkul\Product\Repositories;
use Illuminate\Container\Container as App;
use Illuminate\Support\Facades\Storage;
use Webkul\Core\Traits\Sanitizer;
use Webkul\Core\Eloquent\Repository;
use Illuminate\Support\Facades\Storage;
use Illuminate\Container\Container as App;
use Webkul\Product\Repositories\ProductRepository;
class SearchRepository extends Repository
{
use Sanitizer;
/**
* ProductRepository object
*
@ -51,6 +54,10 @@ class SearchRepository extends Repository
{
$path = request()->file('image')->store('product-search');
if ($data['image']->getMimeType() === 'image/svg') {
$this->sanitizeSVG($path);
}
return Storage::url($path);
}
}

View File

@ -3,12 +3,14 @@
namespace Webkul\Velocity\Http\Controllers\Admin;
use Illuminate\Support\Str;
use enshrined\svgSanitize\Sanitizer;
use Webkul\Core\Traits\Sanitizer;
use Illuminate\Support\Facades\Storage;
use Webkul\Velocity\Repositories\VelocityMetadataRepository;
class ConfigurationController extends Controller
{
use Sanitizer;
/**
* Locale
*/
@ -250,22 +252,4 @@ class ConfigurationController extends Controller
'product_policy' => '<div class="row col-12 remove-padding-margin"><div class="col-lg-4 col-sm-12 product-policy-wrapper"><div class="card"><div class="policy"><div class="left"><i class="rango-van-ship fs40"></i></div> <div class="right"><span class="font-setting fs20">Free Shipping on Order $20 or More</span></div></div></div></div> <div class="col-lg-4 col-sm-12 product-policy-wrapper"><div class="card"><div class="policy"><div class="left"><i class="rango-exchnage fs40"></i></div> <div class="right"><span class="font-setting fs20">Product Replace &amp; Return Available </span></div></div></div></div> <div class="col-lg-4 col-sm-12 product-policy-wrapper"><div class="card"><div class="policy"><div class="left"><i class="rango-exchnage fs40"></i></div> <div class="right"><span class="font-setting fs20">Product Exchange and EMI Available </span></div></div></div></div></div>',
]);
}
/**
* Sanitize SVG file.
*
* @param string $path
* @return void
*/
private function sanitizeSVG($path)
{
/* sanitizer instance */
$sanitizer = new Sanitizer();
/* grab svg file */
$dirtySVG = Storage::get($path);
/* save sanitized svg */
Storage::put($path, $sanitizer->sanitize($dirtySVG));
}
}