Backport #22479. When offline mode is true, we should set `disable_gravatar` to `true` and `enable_federated_avatar` to `false` in system settings.
This commit is contained in:
parent
6992e72647
commit
e902b98cc2
2 changed files with 37 additions and 0 deletions
|
@ -269,6 +269,16 @@ func Init() error {
|
||||||
if setting_module.OfflineMode {
|
if setting_module.OfflineMode {
|
||||||
disableGravatar = true
|
disableGravatar = true
|
||||||
enableFederatedAvatar = false
|
enableFederatedAvatar = false
|
||||||
|
if !GetSettingBool(KeyPictureDisableGravatar) {
|
||||||
|
if err := SetSettingNoVersion(KeyPictureDisableGravatar, "true"); err != nil {
|
||||||
|
return fmt.Errorf("Failed to set setting %q: %w", KeyPictureDisableGravatar, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if GetSettingBool(KeyPictureEnableFederatedAvatar) {
|
||||||
|
if err := SetSettingNoVersion(KeyPictureEnableFederatedAvatar, "false"); err != nil {
|
||||||
|
return fmt.Errorf("Failed to set setting %q: %w", KeyPictureEnableFederatedAvatar, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if enableFederatedAvatar || !disableGravatar {
|
if enableFederatedAvatar || !disableGravatar {
|
||||||
|
|
|
@ -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
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
Reference in a new issue