Fixes for blank settings (#3027)

This commit is contained in:
David Bomba 2019-10-29 20:51:23 +11:00 committed by GitHub
parent 5fafbac36f
commit 004d39cc73
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 27 additions and 13 deletions

View File

@ -11,7 +11,9 @@
namespace App\Http\Requests\Client; namespace App\Http\Requests\Client;
use App\DataMapper\ClientSettings;
use App\Http\Requests\Request; use App\Http\Requests\Request;
use App\Http\ValidationRules\ValidSettingsRule;
use App\Models\Client; use App\Models\Client;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -32,11 +34,12 @@ class StoreClientRequest extends Request
public function rules() public function rules()
{ {
$this->sanitize();
/* Ensure we have a client name, and that all emails are unique*/ /* Ensure we have a client name, and that all emails are unique*/
$rules['name'] = 'required|min:1'; $rules['name'] = 'required|min:1';
$rules['id_number'] = 'unique:clients,id_number,' . $this->id . ',id,company_id,' . $this->company_id; $rules['id_number'] = 'unique:clients,id_number,' . $this->id . ',id,company_id,' . $this->company_id;
//$rules['settings'] = 'json'; $rules['settings'] = new ValidSettingsRule();
$contacts = request('contacts'); $contacts = request('contacts');
@ -58,8 +61,8 @@ class StoreClientRequest extends Request
public function sanitize() public function sanitize()
{ {
$input = $this->all(); $input = $this->all();
$input['settings'] = new \stdClass; $input['settings'] = ClientSettings::defaults();
$this->replace($input); $this->replace($input);

View File

@ -12,6 +12,7 @@
namespace App\Http\Requests\Client; namespace App\Http\Requests\Client;
use App\Http\Requests\Request; use App\Http\Requests\Request;
use App\Http\ValidationRules\ValidSettingsRule;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
@ -40,6 +41,7 @@ class UpdateClientRequest extends Request
$rules['shipping_country_id'] = 'integer|nullable'; $rules['shipping_country_id'] = 'integer|nullable';
//$rules['id_number'] = 'unique:clients,id_number,,id,company_id,' . auth()->user()->company()->id; //$rules['id_number'] = 'unique:clients,id_number,,id,company_id,' . auth()->user()->company()->id;
$rules['id_number'] = 'unique:clients,id_number,' . $this->id . ',id,company_id,' . $this->company_id; $rules['id_number'] = 'unique:clients,id_number,' . $this->id . ',id,company_id,' . $this->company_id;
$rules['settings'] = new ValidSettingsRule();
// $rules['settings'] = 'json'; // $rules['settings'] = 'json';

View File

@ -12,6 +12,7 @@
namespace App\Http\Requests\GroupSetting; namespace App\Http\Requests\GroupSetting;
use App\Http\Requests\Request; use App\Http\Requests\Request;
use App\Http\ValidationRules\ValidSettingsRule;
use App\Models\GroupSetting; use App\Models\GroupSetting;
class CreateGroupSettingRequest extends Request class CreateGroupSettingRequest extends Request
@ -27,4 +28,5 @@ class CreateGroupSettingRequest extends Request
return auth()->user()->can('create', GroupSetting::class); return auth()->user()->can('create', GroupSetting::class);
} }
} }

View File

@ -11,7 +11,9 @@
namespace App\Http\Requests\GroupSetting; namespace App\Http\Requests\GroupSetting;
use App\DataMapper\ClientSettings;
use App\Http\Requests\Request; use App\Http\Requests\Request;
use App\Http\ValidationRules\ValidSettingsRule;
use App\Models\GroupSetting; use App\Models\GroupSetting;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -32,22 +34,25 @@ class StoreGroupSettingRequest extends Request
public function rules() public function rules()
{ {
$this->sanitize();
return [ $rules['name'] = 'required';
'name' => 'required', $rules['settings'] = new ValidSettingsRule();
// 'settings' => 'json',
];
return $rules;
} }
public function sanitize() public function sanitize()
{ {
$input = $this->all(); $input = $this->all();
$input['settings'] = ClientSettings::defaults();
$this->replace($input); $this->replace($input);
} }
public function messages() public function messages()
{ {
return [ return [

View File

@ -12,6 +12,7 @@
namespace App\Http\Requests\GroupSetting; namespace App\Http\Requests\GroupSetting;
use App\Http\Requests\Request; use App\Http\Requests\Request;
use App\Http\ValidationRules\ValidSettingsRule;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
@ -31,9 +32,9 @@ class UpdateGroupSettingRequest extends Request
public function rules() public function rules()
{ {
return [ $rules['settings'] = new ValidSettingsRule();
// 'settings' => 'json',
]; return $rules;
} }

View File

@ -143,7 +143,7 @@ class MultiDB
public static function findAndSetDbByDomain($domain) :bool public static function findAndSetDbByDomain($domain) :bool
{ {
//\Log::error("searching for {$domain}"); //\Log::error("searching for {$domain}");
foreach (self::$dbs as $db) foreach (self::$dbs as $db)
{ {

View File

@ -148,6 +148,7 @@ class CreateUsersTable extends Migration
$table->boolean('custom_surcharge_taxes2')->default(false); $table->boolean('custom_surcharge_taxes2')->default(false);
$table->boolean('custom_surcharge_taxes3')->default(false); $table->boolean('custom_surcharge_taxes3')->default(false);
$table->boolean('custom_surcharge_taxes4')->default(false); $table->boolean('custom_surcharge_taxes4')->default(false);
$table->boolean('show_product_cost')->default(false);
$table->unsignedInteger('enabled_tax_rates')->default(1); $table->unsignedInteger('enabled_tax_rates')->default(1);
// $table->string('website')->nullable(); // $table->string('website')->nullable();