2019-02-10 04:37:37 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package setting
2019-02-18 19:00:27 +03:00
import (
"regexp"
"code.gitea.io/gitea/modules/structs"
)
2019-02-10 04:37:37 +03:00
// Service settings
var Service struct {
2019-02-18 19:00:27 +03:00
DefaultOrgVisibility string
DefaultOrgVisibilityMode structs . VisibleType
2019-02-10 04:37:37 +03:00
ActiveCodeLives int
ResetPwdCodeLives int
RegisterEmailConfirm bool
EmailDomainWhitelist [ ] string
DisableRegistration bool
AllowOnlyExternalRegistration bool
ShowRegistrationButton bool
RequireSignInView bool
EnableNotifyMail bool
2019-10-19 17:27:15 +03:00
EnableBasicAuth bool
2019-02-10 04:37:37 +03:00
EnableReverseProxyAuth bool
EnableReverseProxyAutoRegister bool
EnableReverseProxyEmail bool
EnableCaptcha bool
2019-07-06 22:48:02 +03:00
RequireExternalRegistrationCaptcha bool
RequireExternalRegistrationPassword bool
2019-02-10 04:37:37 +03:00
CaptchaType string
RecaptchaSecret string
RecaptchaSitekey string
2019-05-02 16:09:39 +03:00
RecaptchaURL string
2019-02-10 04:37:37 +03:00
DefaultKeepEmailPrivate bool
DefaultAllowCreateOrganization bool
EnableTimetracking bool
DefaultEnableTimetracking bool
DefaultEnableDependencies bool
DefaultAllowOnlyContributorsToTrackTime bool
NoReplyAddress string
EnableUserHeatmap bool
AutoWatchNewRepos bool
2019-08-24 15:28:59 +03:00
DefaultOrgMemberVisible bool
2019-02-10 04:37:37 +03:00
// OpenID settings
EnableOpenIDSignIn bool
EnableOpenIDSignUp bool
OpenIDWhitelist [ ] * regexp . Regexp
OpenIDBlacklist [ ] * regexp . Regexp
}
func newService ( ) {
sec := Cfg . Section ( "service" )
Service . ActiveCodeLives = sec . Key ( "ACTIVE_CODE_LIVE_MINUTES" ) . MustInt ( 180 )
Service . ResetPwdCodeLives = sec . Key ( "RESET_PASSWD_CODE_LIVE_MINUTES" ) . MustInt ( 180 )
Service . DisableRegistration = sec . Key ( "DISABLE_REGISTRATION" ) . MustBool ( )
Service . AllowOnlyExternalRegistration = sec . Key ( "ALLOW_ONLY_EXTERNAL_REGISTRATION" ) . MustBool ( )
Service . EmailDomainWhitelist = sec . Key ( "EMAIL_DOMAIN_WHITELIST" ) . Strings ( "," )
Service . ShowRegistrationButton = sec . Key ( "SHOW_REGISTRATION_BUTTON" ) . MustBool ( ! ( Service . DisableRegistration || Service . AllowOnlyExternalRegistration ) )
Service . RequireSignInView = sec . Key ( "REQUIRE_SIGNIN_VIEW" ) . MustBool ( )
2019-10-19 17:27:15 +03:00
Service . EnableBasicAuth = sec . Key ( "ENABLE_BASIC_AUTHENTICATION" ) . MustBool ( true )
2019-02-10 04:37:37 +03:00
Service . EnableReverseProxyAuth = sec . Key ( "ENABLE_REVERSE_PROXY_AUTHENTICATION" ) . MustBool ( )
Service . EnableReverseProxyAutoRegister = sec . Key ( "ENABLE_REVERSE_PROXY_AUTO_REGISTRATION" ) . MustBool ( )
Service . EnableReverseProxyEmail = sec . Key ( "ENABLE_REVERSE_PROXY_EMAIL" ) . MustBool ( )
Service . EnableCaptcha = sec . Key ( "ENABLE_CAPTCHA" ) . MustBool ( false )
2019-07-06 22:48:02 +03:00
Service . RequireExternalRegistrationCaptcha = sec . Key ( "REQUIRE_EXTERNAL_REGISTRATION_CAPTCHA" ) . MustBool ( Service . EnableCaptcha )
Service . RequireExternalRegistrationPassword = sec . Key ( "REQUIRE_EXTERNAL_REGISTRATION_PASSWORD" ) . MustBool ( )
2019-02-10 04:37:37 +03:00
Service . CaptchaType = sec . Key ( "CAPTCHA_TYPE" ) . MustString ( ImageCaptcha )
Service . RecaptchaSecret = sec . Key ( "RECAPTCHA_SECRET" ) . MustString ( "" )
Service . RecaptchaSitekey = sec . Key ( "RECAPTCHA_SITEKEY" ) . MustString ( "" )
2019-05-02 16:09:39 +03:00
Service . RecaptchaURL = sec . Key ( "RECAPTCHA_URL" ) . MustString ( "https://www.google.com/recaptcha/" )
2019-02-10 04:37:37 +03:00
Service . DefaultKeepEmailPrivate = sec . Key ( "DEFAULT_KEEP_EMAIL_PRIVATE" ) . MustBool ( )
Service . DefaultAllowCreateOrganization = sec . Key ( "DEFAULT_ALLOW_CREATE_ORGANIZATION" ) . MustBool ( true )
Service . EnableTimetracking = sec . Key ( "ENABLE_TIMETRACKING" ) . MustBool ( true )
if Service . EnableTimetracking {
Service . DefaultEnableTimetracking = sec . Key ( "DEFAULT_ENABLE_TIMETRACKING" ) . MustBool ( true )
}
Service . DefaultEnableDependencies = sec . Key ( "DEFAULT_ENABLE_DEPENDENCIES" ) . MustBool ( true )
Service . DefaultAllowOnlyContributorsToTrackTime = sec . Key ( "DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME" ) . MustBool ( true )
Service . NoReplyAddress = sec . Key ( "NO_REPLY_ADDRESS" ) . MustString ( "noreply.example.org" )
Service . EnableUserHeatmap = sec . Key ( "ENABLE_USER_HEATMAP" ) . MustBool ( true )
Service . AutoWatchNewRepos = sec . Key ( "AUTO_WATCH_NEW_REPOS" ) . MustBool ( true )
2019-02-18 19:00:27 +03:00
Service . DefaultOrgVisibility = sec . Key ( "DEFAULT_ORG_VISIBILITY" ) . In ( "public" , structs . ExtractKeysFromMapString ( structs . VisibilityModes ) )
Service . DefaultOrgVisibilityMode = structs . VisibilityModes [ Service . DefaultOrgVisibility ]
2019-08-24 15:28:59 +03:00
Service . DefaultOrgMemberVisible = sec . Key ( "DEFAULT_ORG_MEMBER_VISIBLE" ) . MustBool ( )
2019-02-10 04:37:37 +03:00
sec = Cfg . Section ( "openid" )
Service . EnableOpenIDSignIn = sec . Key ( "ENABLE_OPENID_SIGNIN" ) . MustBool ( ! InstallLock )
Service . EnableOpenIDSignUp = sec . Key ( "ENABLE_OPENID_SIGNUP" ) . MustBool ( ! Service . DisableRegistration && Service . EnableOpenIDSignIn )
pats := sec . Key ( "WHITELISTED_URIS" ) . Strings ( " " )
if len ( pats ) != 0 {
Service . OpenIDWhitelist = make ( [ ] * regexp . Regexp , len ( pats ) )
for i , p := range pats {
Service . OpenIDWhitelist [ i ] = regexp . MustCompilePOSIX ( p )
}
}
pats = sec . Key ( "BLACKLISTED_URIS" ) . Strings ( " " )
if len ( pats ) != 0 {
Service . OpenIDBlacklist = make ( [ ] * regexp . Regexp , len ( pats ) )
for i , p := range pats {
Service . OpenIDBlacklist [ i ] = regexp . MustCompilePOSIX ( p )
}
}
}