12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // Copyright 2023 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package setting
-
- import (
- "sync"
-
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting/config"
- )
-
- type PictureStruct struct {
- DisableGravatar *config.Value[bool]
- EnableFederatedAvatar *config.Value[bool]
- }
-
- type ConfigStruct struct {
- Picture *PictureStruct
- }
-
- var (
- defaultConfig *ConfigStruct
- defaultConfigOnce sync.Once
- )
-
- func initDefaultConfig() {
- config.SetCfgSecKeyGetter(&cfgSecKeyGetter{})
- defaultConfig = &ConfigStruct{
- Picture: &PictureStruct{
- DisableGravatar: config.Bool(false, config.CfgSecKey{Sec: "picture", Key: "DISABLE_GRAVATAR"}, "picture.disable_gravatar"),
- EnableFederatedAvatar: config.Bool(false, config.CfgSecKey{Sec: "picture", Key: "ENABLE_FEDERATED_AVATAR"}, "picture.enable_federated_avatar"),
- },
- }
- }
-
- func Config() *ConfigStruct {
- defaultConfigOnce.Do(initDefaultConfig)
- return defaultConfig
- }
-
- type cfgSecKeyGetter struct{}
-
- func (c cfgSecKeyGetter) GetValue(sec, key string) (v string, has bool) {
- cfgSec, err := CfgProvider.GetSection(sec)
- if err != nil {
- log.Error("Unable to get config section: %q", sec)
- return "", false
- }
- cfgKey := ConfigSectionKey(cfgSec, key)
- if cfgKey == nil {
- return "", false
- }
- return cfgKey.Value(), true
- }
|