|
|
@ -6,9 +6,11 @@ |
|
|
|
package admin |
|
|
|
package admin |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
import ( |
|
|
|
|
|
|
|
"fmt" |
|
|
|
"net/http" |
|
|
|
"net/http" |
|
|
|
"net/url" |
|
|
|
"net/url" |
|
|
|
"os" |
|
|
|
"os" |
|
|
|
|
|
|
|
"strconv" |
|
|
|
"strings" |
|
|
|
"strings" |
|
|
|
|
|
|
|
|
|
|
|
system_model "code.gitea.io/gitea/models/system" |
|
|
|
system_model "code.gitea.io/gitea/models/system" |
|
|
@ -202,6 +204,16 @@ func ChangeConfig(ctx *context.Context) { |
|
|
|
value := ctx.FormString("value") |
|
|
|
value := ctx.FormString("value") |
|
|
|
version := ctx.FormInt("version") |
|
|
|
version := ctx.FormInt("version") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if check, ok := changeConfigChecks[key]; ok { |
|
|
|
|
|
|
|
if err := check(ctx, value); err != nil { |
|
|
|
|
|
|
|
log.Warn("refused to set setting: %v", err) |
|
|
|
|
|
|
|
ctx.JSON(http.StatusOK, map[string]string{ |
|
|
|
|
|
|
|
"err": ctx.Tr("admin.config.set_setting_failed", key), |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if err := system_model.SetSetting(&system_model.Setting{ |
|
|
|
if err := system_model.SetSetting(&system_model.Setting{ |
|
|
|
SettingKey: key, |
|
|
|
SettingKey: key, |
|
|
|
SettingValue: value, |
|
|
|
SettingValue: value, |
|
|
@ -218,3 +230,18 @@ func ChangeConfig(ctx *context.Context) { |
|
|
|
"version": version + 1, |
|
|
|
"version": version + 1, |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var changeConfigChecks = map[string]func(ctx *context.Context, newValue string) error{ |
|
|
|
|
|
|
|
system_model.KeyPictureDisableGravatar: func(_ *context.Context, newValue string) error { |
|
|
|
|
|
|
|
if v, _ := strconv.ParseBool(newValue); setting.OfflineMode && !v { |
|
|
|
|
|
|
|
return fmt.Errorf("%q should be true when OFFLINE_MODE is true", system_model.KeyPictureDisableGravatar) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
system_model.KeyPictureEnableFederatedAvatar: func(_ *context.Context, newValue string) error { |
|
|
|
|
|
|
|
if v, _ := strconv.ParseBool(newValue); setting.OfflineMode && v { |
|
|
|
|
|
|
|
return fmt.Errorf("%q cannot be false when OFFLINE_MODE is true", system_model.KeyPictureEnableFederatedAvatar) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
} |
|
|
|