From 16a42301f7f5e96240cd302f4300c128458eb859 Mon Sep 17 00:00:00 2001 From: LinkinStars Date: Thu, 17 Aug 2023 10:56:16 +0800 Subject: [PATCH] feat(install): Add LoginRequired configuration when install --- internal/install/install_from_env.go | 2 ++ internal/install/install_req.go | 1 + internal/migrations/init.go | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/install/install_from_env.go b/internal/install/install_from_env.go index f519c578..8dec73da 100644 --- a/internal/install/install_from_env.go +++ b/internal/install/install_from_env.go @@ -28,6 +28,7 @@ type Env struct { AdminName string `json:"name"` AdminPassword string `json:"password"` AdminEmail string `json:"email"` + LoginRequired bool `json:"login_required"` } func TryToInstallByEnv() (installByEnv bool, err error) { @@ -105,6 +106,7 @@ func initBaseInfo(env *Env) (err error) { AdminName: env.AdminName, AdminPassword: env.AdminPassword, AdminEmail: env.AdminEmail, + LoginRequired: env.LoginRequired, } return requestAPI(req, "POST", "/installation/base-info", InitBaseInfo) } diff --git a/internal/install/install_req.go b/internal/install/install_req.go index 96e16638..37585e86 100644 --- a/internal/install/install_req.go +++ b/internal/install/install_req.go @@ -84,6 +84,7 @@ type InitBaseInfoReq struct { AdminName string `validate:"required,gt=3,lte=30" json:"name"` AdminPassword string `validate:"required,gte=8,lte=32" json:"password"` AdminEmail string `validate:"required,email,gt=0,lte=500" json:"email"` + LoginRequired bool `json:"login_required"` } func (r *InitBaseInfoReq) Check() (errFields []*validator.FormErrorField, err error) { diff --git a/internal/migrations/init.go b/internal/migrations/init.go index 0dc3b35d..dbc10ed4 100644 --- a/internal/migrations/init.go +++ b/internal/migrations/init.go @@ -32,6 +32,7 @@ type InitNeedUserInputData struct { AdminName string AdminPassword string AdminEmail string + LoginRequired bool } func (m *Mentor) InitDB() error { @@ -159,7 +160,7 @@ func (m *Mentor) initSiteInfoLoginConfig() { loginConfig := map[string]bool{ "allow_new_registrations": true, "allow_email_registrations": true, - "login_required": false, + "login_required": m.userData.LoginRequired, } loginConfigDataBytes, _ := json.Marshal(loginConfig) _, m.err = m.engine.Context(m.ctx).Insert(&entity.SiteInfo{