user()->isAdmin(); } public function rules() { $rules = [ 'gateway_key' => 'required', 'fees_and_limits' => new ValidCompanyGatewayFeesAndLimitsRule(), ]; return $rules; } protected function prepareForValidation() { $input = $this->all(); $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); } }