From c5500020ae337913a5a1ed8fbe6661aa077ad072 Mon Sep 17 00:00:00 2001 From: Deon George Date: Fri, 14 Apr 2023 19:47:33 +1000 Subject: [PATCH] Fix for system registration, new systems couldnt be added. --- app/Http/Controllers/SystemController.php | 6 +-- app/Http/Requests/SystemRegister.php | 44 ++++++++++--------- .../views/user/system/register.blade.php | 6 +-- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/app/Http/Controllers/SystemController.php b/app/Http/Controllers/SystemController.php index 1b6c1b0..6b4fe24 100644 --- a/app/Http/Controllers/SystemController.php +++ b/app/Http/Controllers/SystemController.php @@ -580,7 +580,7 @@ class SystemController extends Controller } /** - * register system + * Register a system, or link to an existing system */ public function system_register(SystemRegister $request) { @@ -588,14 +588,14 @@ class SystemController extends Controller if ($request->isMethod('GET')) return view('user.system.register'); - if ($request->action != 'create') + if ($request->action === 'register' && $request->system_id) return view('user.system.widget.register_confirm') ->with('o',System::findOrFail($request->system_id)); $o = System::findOrNew($request->system_id); // If the system exists, and we are 'register', we'll start the address claim process - if ($o->exists && $request->action == 'register') { + if ($o->exists && $request->action === 'Link') { $validate = Setup::findOrFail(config('app.id'))->system->inMyZones($o->addresses); // If we have addresses, we'll trigger the routed netmail diff --git a/app/Http/Requests/SystemRegister.php b/app/Http/Requests/SystemRegister.php index 37f95e9..82aea87 100644 --- a/app/Http/Requests/SystemRegister.php +++ b/app/Http/Requests/SystemRegister.php @@ -12,39 +12,41 @@ class SystemRegister extends FormRequest { private System $so; - /** - * Determine if the user is authorized to make this request. - * - * @return bool - */ - public function authorize(Request $request) - { + /** + * Determine if the user is authorized to make this request. + * + * @return bool + */ + public function authorize(Request $request) + { $this->so = System::findOrNew($request->system_id); return Gate::allows($this->so->users->count() ? 'update' : 'register',$this->so); - } + } - /** - * Get the validation rules that apply to the request. - * - * @return array - */ - public function rules(Request $request) - { - if ((! $request->isMethod('post')) || ($request->action == 'register')) + /** + * Get the validation rules that apply to the request. + * + * If the system exists (POST & action="register" & system_id=), then no validation required + * If the system doesnt exist (POST & action="register" & system_id undefined) then we need just a name to start the process (action="create") + * Then, full validation + * @return array + */ + public function rules(Request $request) + { + if ((! $request->isMethod('post')) || ($request->action === 'register')) return []; - if ((! $this->so->exists) && ($request->action == 'create')) { + if ((! $this->so->exists) && ($request->action === 'create')) return [ 'name' => 'required|min:3', ]; - } - return array_filter(array_merge( + return array_filter(array_merge( [ 'name' => 'required|min:3', ], - ($this->so->exists || ($request->action != 'create')) ? [ + ($this->so->exists || ($request->action !== 'create')) ? [ 'location' => 'required|min:3', 'sysop' => 'required|min:3', @@ -62,5 +64,5 @@ class SystemRegister extends FormRequest 'hold' => 'required|boolean', ] : [], )); - } + } } \ No newline at end of file diff --git a/resources/views/user/system/register.blade.php b/resources/views/user/system/register.blade.php index 4f86e01..e4a4e70 100644 --- a/resources/views/user/system/register.blade.php +++ b/resources/views/user/system/register.blade.php @@ -34,7 +34,7 @@ - @if (old('submit') != 'create') + @if (old('submit') !== 'create')
@@ -131,7 +131,7 @@ switch (data.status) { case 200: // if json is null, means no match, won't do again. - if(data.responseText==null || (data.responseText.length===0)) return; + if(data.responseText===null || (data.responseText.length===0)) return; $('#create').empty().append(data.responseText); @if($errors->count()) @@ -166,7 +166,7 @@ }) } - if ({{ old('submit') == 'create' ? 'true' : 'false' }}) { + if ({{ old('submit') === 'create' ? 'true' : 'false' }}) { getform(); }