mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-31 20:02:09 +00:00
Make "install page" respect environment config (#25648)
Replace #25580
Fix #19453
The problem was: when users set "GITEA__XXX__YYY" , the "install page"
doesn't respect it.
So, to make the result consistent and avoid surprising end users, now
the "install page" also writes the environment variables to the config
file.
And, to make things clear, there are enough messages on the UI to tell
users what will happen.
There are some necessary/related changes to `environment-to-ini.go`:
* The "--clear" flag is removed and it was incorrectly written there.
The "clear" operation should be done if INSTALL_LOCK=true
* The "--prefix" flag is removed because it's never used, never
documented and it only causes inconsistent behavior.

This commit is contained in:
parent
61e0d1a767
commit
fa0b5b14c2
13 changed files with 86 additions and 72 deletions
|
@ -56,6 +56,7 @@ func getSupportedDbTypeNames() (dbTypeNames []map[string]string) {
|
|||
func Contexter() func(next http.Handler) http.Handler {
|
||||
rnd := templates.HTMLRenderer()
|
||||
dbTypeNames := getSupportedDbTypeNames()
|
||||
envConfigKeys := setting.CollectEnvConfigKeys()
|
||||
return func(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) {
|
||||
base, baseCleanUp := context.NewBaseContext(resp, req)
|
||||
|
@ -70,11 +71,13 @@ func Contexter() func(next http.Handler) http.Handler {
|
|||
ctx.AppendContextValue(context.WebContextKey, ctx)
|
||||
ctx.Data.MergeFrom(middleware.CommonTemplateContextData())
|
||||
ctx.Data.MergeFrom(middleware.ContextData{
|
||||
"locale": ctx.Locale,
|
||||
"Title": ctx.Locale.Tr("install.install"),
|
||||
"PageIsInstall": true,
|
||||
"DbTypeNames": dbTypeNames,
|
||||
"AllLangs": translation.AllLangs(),
|
||||
"locale": ctx.Locale,
|
||||
"Title": ctx.Locale.Tr("install.install"),
|
||||
"PageIsInstall": true,
|
||||
"DbTypeNames": dbTypeNames,
|
||||
"EnvConfigKeys": envConfigKeys,
|
||||
"CustomConfFile": setting.CustomConf,
|
||||
"AllLangs": translation.AllLangs(),
|
||||
|
||||
"PasswordHashAlgorithms": hash.RecommendedHashAlgorithms,
|
||||
})
|
||||
|
@ -218,7 +221,7 @@ func checkDatabase(ctx *context.Context, form *forms.InstallForm) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
log.Info("User confirmed reinstallation of Gitea into a pre-existing database")
|
||||
log.Info("User confirmed re-installation of Gitea into a pre-existing database")
|
||||
}
|
||||
|
||||
if hasPostInstallationUser || dbMigrationVersion > 0 {
|
||||
|
@ -502,6 +505,8 @@ func SubmitInstall(ctx *context.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
setting.EnvironmentToConfig(cfg, os.Environ())
|
||||
|
||||
if err = cfg.SaveTo(setting.CustomConf); err != nil {
|
||||
ctx.RenderWithErr(ctx.Tr("install.save_config_failed", err), tplInstall, &form)
|
||||
return
|
||||
|
@ -568,6 +573,7 @@ func SubmitInstall(ctx *context.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
setting.ClearEnvConfigKeys()
|
||||
log.Info("First-time run install finished!")
|
||||
InstallDone(ctx)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue