code.gitea.io/gitea@v1.19.3/modules/setting/picture.go (about) 1 // Copyright 2020 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package setting 5 6 // settings 7 var ( 8 // Picture settings 9 Avatar = struct { 10 Storage 11 12 MaxWidth int 13 MaxHeight int 14 MaxFileSize int64 15 RenderedSizeFactor int 16 }{ 17 MaxWidth: 4096, 18 MaxHeight: 3072, 19 MaxFileSize: 1048576, 20 RenderedSizeFactor: 3, 21 } 22 23 GravatarSource string 24 DisableGravatar bool // Depreciated: migrated to database 25 EnableFederatedAvatar bool // Depreciated: migrated to database 26 27 RepoAvatar = struct { 28 Storage 29 30 Fallback string 31 FallbackImage string 32 }{} 33 ) 34 35 func loadPictureFrom(rootCfg ConfigProvider) { 36 sec := rootCfg.Section("picture") 37 38 avatarSec := rootCfg.Section("avatar") 39 storageType := sec.Key("AVATAR_STORAGE_TYPE").MustString("") 40 // Specifically default PATH to AVATAR_UPLOAD_PATH 41 avatarSec.Key("PATH").MustString( 42 sec.Key("AVATAR_UPLOAD_PATH").String()) 43 44 Avatar.Storage = getStorage(rootCfg, "avatars", storageType, avatarSec) 45 46 Avatar.MaxWidth = sec.Key("AVATAR_MAX_WIDTH").MustInt(4096) 47 Avatar.MaxHeight = sec.Key("AVATAR_MAX_HEIGHT").MustInt(3072) 48 Avatar.MaxFileSize = sec.Key("AVATAR_MAX_FILE_SIZE").MustInt64(1048576) 49 Avatar.RenderedSizeFactor = sec.Key("AVATAR_RENDERED_SIZE_FACTOR").MustInt(3) 50 51 switch source := sec.Key("GRAVATAR_SOURCE").MustString("gravatar"); source { 52 case "duoshuo": 53 GravatarSource = "http://gravatar.duoshuo.com/avatar/" 54 case "gravatar": 55 GravatarSource = "https://secure.gravatar.com/avatar/" 56 case "libravatar": 57 GravatarSource = "https://seccdn.libravatar.org/avatar/" 58 default: 59 GravatarSource = source 60 } 61 62 DisableGravatar = sec.Key("DISABLE_GRAVATAR").MustBool(GetDefaultDisableGravatar()) 63 deprecatedSettingDB(rootCfg, "", "DISABLE_GRAVATAR") 64 EnableFederatedAvatar = sec.Key("ENABLE_FEDERATED_AVATAR").MustBool(GetDefaultEnableFederatedAvatar(DisableGravatar)) 65 deprecatedSettingDB(rootCfg, "", "ENABLE_FEDERATED_AVATAR") 66 67 loadRepoAvatarFrom(rootCfg) 68 } 69 70 func GetDefaultDisableGravatar() bool { 71 return OfflineMode 72 } 73 74 func GetDefaultEnableFederatedAvatar(disableGravatar bool) bool { 75 v := !InstallLock 76 if OfflineMode { 77 v = false 78 } 79 if disableGravatar { 80 v = false 81 } 82 return v 83 } 84 85 func loadRepoAvatarFrom(rootCfg ConfigProvider) { 86 sec := rootCfg.Section("picture") 87 88 repoAvatarSec := rootCfg.Section("repo-avatar") 89 storageType := sec.Key("REPOSITORY_AVATAR_STORAGE_TYPE").MustString("") 90 // Specifically default PATH to AVATAR_UPLOAD_PATH 91 repoAvatarSec.Key("PATH").MustString( 92 sec.Key("REPOSITORY_AVATAR_UPLOAD_PATH").String()) 93 94 RepoAvatar.Storage = getStorage(rootCfg, "repo-avatars", storageType, repoAvatarSec) 95 96 RepoAvatar.Fallback = sec.Key("REPOSITORY_AVATAR_FALLBACK").MustString("none") 97 RepoAvatar.FallbackImage = sec.Key("REPOSITORY_AVATAR_FALLBACK_IMAGE").MustString("/assets/img/repo_default.png") 98 }