diff --git a/api/api.go b/api/api.go
index 82e77fa8..579392f3 100644
--- a/api/api.go
+++ b/api/api.go
@@ -38,18 +38,18 @@ func BindAndValid(c *gin.Context, target interface{}) bool {
return false
}
- t := reflect.TypeOf(target)
+ t := reflect.TypeOf(target).Elem()
errorsMap := make(map[string]interface{})
for _, value := range verrs {
var path []string
namespace := strings.Split(value.StructNamespace(), ".")
-
- if t.Name() == "" && len(namespace) > 1 {
+ logger.Debug(t.Name(), namespace)
+ if t.Name() != "" && len(namespace) > 1 {
namespace = namespace[1:]
}
- getJsonPath(t.Elem(), namespace, &path)
+ getJsonPath(t, namespace, &path)
insertError(errorsMap, path, value.Tag())
}
diff --git a/api/certificate/certificate.go b/api/certificate/certificate.go
index 2bb69d0a..b2351bc1 100644
--- a/api/certificate/certificate.go
+++ b/api/certificate/certificate.go
@@ -87,9 +87,11 @@ type certJson struct {
func AddCert(c *gin.Context) {
var json certJson
+
if !api.BindAndValid(c, &json) {
return
}
+
certModel := &model.Cert{
Name: json.Name,
SSLCertificatePath: json.SSLCertificatePath,
diff --git a/api/system/settings.go b/api/system/settings.go
index e87252bd..df315b11 100644
--- a/api/system/settings.go
+++ b/api/system/settings.go
@@ -27,7 +27,6 @@ func SaveSettings(c *gin.Context) {
return
}
- // todo: omit protected fields when binding
fillSettings(&settings.ServerSettings, &json.Server)
fillSettings(&settings.NginxSettings, &json.Nginx)
fillSettings(&settings.OpenAISettings, &json.Openai)
diff --git a/app/src/views/preference/BasicSettings.vue b/app/src/views/preference/BasicSettings.vue
index 3f31d3d3..ade587f1 100644
--- a/app/src/views/preference/BasicSettings.vue
+++ b/app/src/views/preference/BasicSettings.vue
@@ -1,10 +1,11 @@
@@ -30,13 +31,25 @@ const data: IData = inject('data') as IData
-
+
-
+
diff --git a/app/src/views/preference/NginxSettings.vue b/app/src/views/preference/NginxSettings.vue
index af8a406b..53f23f4f 100644
--- a/app/src/views/preference/NginxSettings.vue
+++ b/app/src/views/preference/NginxSettings.vue
@@ -1,19 +1,32 @@
-
+
-
+
diff --git a/app/src/views/preference/OpenAISettings.vue b/app/src/views/preference/OpenAISettings.vue
index 1f13ee95..3c537532 100644
--- a/app/src/views/preference/OpenAISettings.vue
+++ b/app/src/views/preference/OpenAISettings.vue
@@ -1,11 +1,12 @@
@@ -26,19 +27,37 @@ const data: IData = inject('data')!
-
+
-
+
-
+
diff --git a/app/src/views/preference/Preference.vue b/app/src/views/preference/Preference.vue
index bdb2dbb9..8e68fa75 100644
--- a/app/src/views/preference/Preference.vue
+++ b/app/src/views/preference/Preference.vue
@@ -1,16 +1,17 @@