user()->isAdmin(); } public function rules() { $rules = [ 'gateway_key' => ['required','alpha_num',Rule::exists('gateways','key')], 'fees_and_limits' => new ValidCompanyGatewayFeesAndLimitsRule(), ]; return $rules; } public function prepareForValidation() { $input = $this->all(); if ($gateway = Gateway::where('key', $input['gateway_key'])->first()) { $default_gateway_fields = json_decode($gateway->fields); /*Force gateway properties */ if (isset($input['config']) && is_object(json_decode($input['config']))) { foreach (json_decode($input['config']) as $key => $value) { $default_gateway_fields->{$key} = $value; } $input['config'] = json_encode($default_gateway_fields); } if (isset($input['config'])) { $input['config'] = encrypt($input['config']); } if (isset($input['fees_and_limits'])) { $input['fees_and_limits'] = $this->cleanFeesAndLimits($input['fees_and_limits']); } } $this->replace($input); } }