code.gitea.io/gitea@v1.22.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 // Avatar settings 7 8 var ( 9 Avatar = struct { 10 Storage *Storage 11 12 MaxWidth int 13 MaxHeight int 14 MaxFileSize int64 15 MaxOriginSize int64 16 RenderedSizeFactor int 17 }{ 18 MaxWidth: 4096, 19 MaxHeight: 4096, 20 MaxFileSize: 1048576, 21 MaxOriginSize: 262144, 22 RenderedSizeFactor: 2, 23 } 24 25 GravatarSource string 26 DisableGravatar bool // Depreciated: migrated to database 27 EnableFederatedAvatar bool // Depreciated: migrated to database 28 29 RepoAvatar = struct { 30 Storage *Storage 31 32 Fallback string 33 FallbackImage string 34 }{} 35 ) 36 37 func loadAvatarsFrom(rootCfg ConfigProvider) error { 38 sec := rootCfg.Section("picture") 39 40 avatarSec := rootCfg.Section("avatar") 41 storageType := sec.Key("AVATAR_STORAGE_TYPE").MustString("") 42 // Specifically default PATH to AVATAR_UPLOAD_PATH 43 avatarSec.Key("PATH").MustString(sec.Key("AVATAR_UPLOAD_PATH").String()) 44 45 var err error 46 Avatar.Storage, err = getStorage(rootCfg, "avatars", storageType, avatarSec) 47 if err != nil { 48 return err 49 } 50 51 Avatar.MaxWidth = sec.Key("AVATAR_MAX_WIDTH").MustInt(4096) 52 Avatar.MaxHeight = sec.Key("AVATAR_MAX_HEIGHT").MustInt(4096) 53 Avatar.MaxFileSize = sec.Key("AVATAR_MAX_FILE_SIZE").MustInt64(1048576) 54 Avatar.MaxOriginSize = sec.Key("AVATAR_MAX_ORIGIN_SIZE").MustInt64(262144) 55 Avatar.RenderedSizeFactor = sec.Key("AVATAR_RENDERED_SIZE_FACTOR").MustInt(2) 56 57 switch source := sec.Key("GRAVATAR_SOURCE").MustString("gravatar"); source { 58 case "duoshuo": 59 GravatarSource = "http://gravatar.duoshuo.com/avatar/" 60 case "gravatar": 61 GravatarSource = "https://secure.gravatar.com/avatar/" 62 case "libravatar": 63 GravatarSource = "https://seccdn.libravatar.org/avatar/" 64 default: 65 GravatarSource = source 66 } 67 68 DisableGravatar = sec.Key("DISABLE_GRAVATAR").MustBool(GetDefaultDisableGravatar()) 69 deprecatedSettingDB(rootCfg, "", "DISABLE_GRAVATAR") 70 EnableFederatedAvatar = sec.Key("ENABLE_FEDERATED_AVATAR").MustBool(GetDefaultEnableFederatedAvatar(DisableGravatar)) 71 deprecatedSettingDB(rootCfg, "", "ENABLE_FEDERATED_AVATAR") 72 73 return nil 74 } 75 76 func GetDefaultDisableGravatar() bool { 77 return OfflineMode 78 } 79 80 func GetDefaultEnableFederatedAvatar(disableGravatar bool) bool { 81 v := !InstallLock 82 if OfflineMode { 83 v = false 84 } 85 if disableGravatar { 86 v = false 87 } 88 return v 89 } 90 91 func loadRepoAvatarFrom(rootCfg ConfigProvider) error { 92 sec := rootCfg.Section("picture") 93 94 repoAvatarSec := rootCfg.Section("repo-avatar") 95 storageType := sec.Key("REPOSITORY_AVATAR_STORAGE_TYPE").MustString("") 96 // Specifically default PATH to AVATAR_UPLOAD_PATH 97 repoAvatarSec.Key("PATH").MustString(sec.Key("REPOSITORY_AVATAR_UPLOAD_PATH").String()) 98 99 var err error 100 RepoAvatar.Storage, err = getStorage(rootCfg, "repo-avatars", storageType, repoAvatarSec) 101 if err != nil { 102 return err 103 } 104 105 RepoAvatar.Fallback = sec.Key("REPOSITORY_AVATAR_FALLBACK").MustString("none") 106 RepoAvatar.FallbackImage = sec.Key("REPOSITORY_AVATAR_FALLBACK_IMAGE").MustString(AppSubURL + "/assets/img/repo_default.png") 107 108 return nil 109 }