From 3083ab623715ee3dfea97eca9c9421b6c31a1263 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 8 Sep 2020 20:44:32 +1000 Subject: [PATCH] Set unique on Group Settings Name --- app/Filters/SystemLogFilters.php | 14 +------------- app/Http/Controllers/SystemLogController.php | 5 ++++- .../GroupSetting/StoreGroupSettingRequest.php | 4 +++- .../GroupSetting/UpdateGroupSettingRequest.php | 2 ++ tests/Feature/GroupSettingTest.php | 6 +++--- 5 files changed, 13 insertions(+), 18 deletions(-) diff --git a/app/Filters/SystemLogFilters.php b/app/Filters/SystemLogFilters.php index 5123f6773b7d..cb659724f0b4 100644 --- a/app/Filters/SystemLogFilters.php +++ b/app/Filters/SystemLogFilters.php @@ -51,23 +51,13 @@ class SystemLogFilters extends QueryFilters */ public function filter(string $filter = '') : Builder { + if (strlen($filter) == 0) { return $this->builder; } return $this->builder; - // return $this->builder->where(function ($query) use ($filter) { - // $query->where('vendors.name', 'like', '%'.$filter.'%') - // ->orWhere('vendors.id_number', 'like', '%'.$filter.'%') - // ->orWhere('vendor_contacts.first_name', 'like', '%'.$filter.'%') - // ->orWhere('vendor_contacts.last_name', 'like', '%'.$filter.'%') - // ->orWhere('vendor_contacts.email', 'like', '%'.$filter.'%') - // ->orWhere('vendors.custom_value1', 'like', '%'.$filter.'%') - // ->orWhere('vendors.custom_value2', 'like', '%'.$filter.'%') - // ->orWhere('vendors.custom_value3', 'like', '%'.$filter.'%') - // ->orWhere('vendors.custom_value4', 'like', '%'.$filter.'%'); - // }); } /** @@ -102,8 +92,6 @@ class SystemLogFilters extends QueryFilters */ public function entityFilter() { - - //return $this->builder->whereCompanyId(auth()->user()->company()->id); return $this->builder->company(); } } diff --git a/app/Http/Controllers/SystemLogController.php b/app/Http/Controllers/SystemLogController.php index 3023b6623351..e968b1cabf31 100644 --- a/app/Http/Controllers/SystemLogController.php +++ b/app/Http/Controllers/SystemLogController.php @@ -60,7 +60,10 @@ class SystemLogController extends BaseController { $system_logs = SystemLog::filter($filters); - return $this->listResponse($system_logs); + if(auth()->user()->isAdmin()) + return $this->listResponse($system_logs); + + return $this->listResponse(SystemLog::query()); } /** diff --git a/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php b/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php index 3a70da5fc97f..844e309eb525 100644 --- a/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php +++ b/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php @@ -31,7 +31,9 @@ class StoreGroupSettingRequest extends Request public function rules() { - $rules['name'] = 'required'; + + $rules['name'] = 'required|unique:group_settings,name,null,null,company_id,'.auth()->user()->companyId(); + $rules['settings'] = new ValidClientGroupSettingsRule(); return $rules; diff --git a/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php b/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php index f442508832ef..0e2aa6f45f76 100644 --- a/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php +++ b/app/Http/Requests/GroupSetting/UpdateGroupSettingRequest.php @@ -34,6 +34,8 @@ class UpdateGroupSettingRequest extends Request { $rules['settings'] = new ValidClientGroupSettingsRule(); + $rules['name'] = 'unique:group_settings,name,'.$this->id.',id,company_id,'.$this->group_setting->company_id; + return $rules; } diff --git a/tests/Feature/GroupSettingTest.php b/tests/Feature/GroupSettingTest.php index c86390c0f520..e088d91da49a 100644 --- a/tests/Feature/GroupSettingTest.php +++ b/tests/Feature/GroupSettingTest.php @@ -37,7 +37,7 @@ class GroupSettingTest extends TestCase $settings->currency_id = 1; $data = [ - 'name' => 'test', + 'name' => 'testX', 'settings' => $settings, ]; @@ -50,7 +50,7 @@ class GroupSettingTest extends TestCase $arr = $response->json(); - $this->assertEquals('test', $arr['data']['name']); + $this->assertEquals('testX', $arr['data']['name']); $this->assertEquals(0, $arr['data']['archived_at']); } @@ -60,7 +60,7 @@ class GroupSettingTest extends TestCase $settings->currency_id = 1; $data = [ - 'name' => 'test', + 'name' => 'testY', 'settings' => $settings, ];