mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-15 01:54:09 -08:00
802dc9240d
PHP 5.5.9+ adds the new static `class` property which provides the fully qualified class name. This is preferred over using class name strings as these references are checked by the parser.
80 lines
2.3 KiB
PHP
80 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
class FixDoubleEscape extends Command
|
|
{
|
|
/**
|
|
* The name and signature of the console command.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $signature = 'snipeit:unescape';
|
|
|
|
/**
|
|
* The console command description.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $description = 'This should be run to fix some double-escaping issues from earlier versions of Snipe-IT.';
|
|
|
|
/**
|
|
* Create a new command instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
/**
|
|
* Execute the console command.
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function handle()
|
|
{
|
|
$tables = [
|
|
\App\Models\Asset::class => ['name'],
|
|
\App\Models\License::class => ['name'],
|
|
\App\Models\Consumable::class => ['name'],
|
|
\App\Models\Accessory::class => ['name'],
|
|
\App\Models\Component::class => ['name'],
|
|
\App\Models\Company::class => ['name'],
|
|
\App\Models\Manufacturer::class => ['name'],
|
|
\App\Models\Supplier::class => ['name'],
|
|
\App\Models\Statuslabel::class => ['name'],
|
|
\App\Models\Depreciation::class => ['name'],
|
|
\App\Models\AssetModel::class => ['name'],
|
|
\App\Models\Group::class => ['name'],
|
|
\App\Models\Department::class => ['name'],
|
|
\App\Models\Location::class => ['name'],
|
|
\App\Models\User::class => ['first_name', 'last_name'],
|
|
];
|
|
|
|
$count = [];
|
|
|
|
foreach ($tables as $classname => $fields) {
|
|
$count[$classname] = [];
|
|
$count[$classname]['classname'] = 0;
|
|
|
|
foreach ($fields as $field) {
|
|
$count[$classname]['classname']++;
|
|
$count[$classname][$field] = 0;
|
|
|
|
foreach ($classname::where("$field", 'LIKE', '%&%')->get() as $row) {
|
|
$this->info('Updating '.$field.' for '.$classname);
|
|
$row->{$field} = html_entity_decode($row->{$field}, ENT_QUOTES);
|
|
$row->save();
|
|
$count[$classname][$field]++;
|
|
}
|
|
}
|
|
}
|
|
|
|
$this->info('Update complete');
|
|
}
|
|
}
|