1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-01-19 16:29:17 +08:00

feat: 增加安装应用时 mongodb 和 minio 的用户名/密码自动填写 (#3231)

This commit is contained in:
zhengkunwang 2023-12-08 16:02:08 +08:00 committed by GitHub
parent 504d5f8596
commit fb709e7eaf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 9 deletions

View File

@ -13,12 +13,18 @@ type AppDatabase struct {
type AuthParam struct { type AuthParam struct {
RootPassword string `json:"PANEL_DB_ROOT_PASSWORD"` RootPassword string `json:"PANEL_DB_ROOT_PASSWORD"`
RootUser string `json:"PANEL_DB_ROOT_USER"`
} }
type RedisAuthParam struct { type RedisAuthParam struct {
RootPassword string `json:"PANEL_REDIS_ROOT_PASSWORD"` RootPassword string `json:"PANEL_REDIS_ROOT_PASSWORD"`
} }
type MinioAuthParam struct {
RootPassword string `json:"PANEL_MINIO_ROOT_PASSWORD"`
RootUser string `json:"PANEL_MINIO_ROOT_USER"`
}
type ContainerExec struct { type ContainerExec struct {
ContainerName string `json:"containerName"` ContainerName string `json:"containerName"`
DbParam AppDatabase `json:"dbParam"` DbParam AppDatabase `json:"dbParam"`

View File

@ -118,9 +118,13 @@ var DatabaseKeys = map[string]uint{
"memcached": 11211, "memcached": 11211,
} }
var ToolKeys = map[string]uint{
"minio": 9001,
}
func createLink(ctx context.Context, app model.App, appInstall *model.AppInstall, params map[string]interface{}) error { func createLink(ctx context.Context, app model.App, appInstall *model.AppInstall, params map[string]interface{}) error {
var dbConfig dto.AppDatabase var dbConfig dto.AppDatabase
if app.Type == "runtime" && DatabaseKeys[app.Key] > 0 { if DatabaseKeys[app.Key] > 0 {
database := &model.Database{ database := &model.Database{
AppInstallID: appInstall.ID, AppInstallID: appInstall.ID,
Name: appInstall.Name, Name: appInstall.Name,
@ -153,14 +157,6 @@ func createLink(ctx context.Context, app model.App, appInstall *model.AppInstall
case "mysql", "mariadb", "postgresql", "mongodb": case "mysql", "mariadb", "postgresql", "mongodb":
if password, ok := params["PANEL_DB_ROOT_PASSWORD"]; ok { if password, ok := params["PANEL_DB_ROOT_PASSWORD"]; ok {
if password != "" { if password != "" {
authParam := dto.AuthParam{
RootPassword: password.(string),
}
authByte, err := json.Marshal(authParam)
if err != nil {
return err
}
appInstall.Param = string(authByte)
database.Password = password.(string) database.Password = password.(string)
if app.Key == "mysql" || app.Key == "mariadb" { if app.Key == "mysql" || app.Key == "mariadb" {
database.Username = "root" database.Username = "root"
@ -168,6 +164,16 @@ func createLink(ctx context.Context, app model.App, appInstall *model.AppInstall
if rootUser, ok := params["PANEL_DB_ROOT_USER"]; ok { if rootUser, ok := params["PANEL_DB_ROOT_USER"]; ok {
database.Username = rootUser.(string) database.Username = rootUser.(string)
} }
authParam := dto.AuthParam{
RootPassword: password.(string),
RootUser: database.Username,
}
authByte, err := json.Marshal(authParam)
if err != nil {
return err
}
appInstall.Param = string(authByte)
} }
} }
case "redis": case "redis":
@ -189,6 +195,23 @@ func createLink(ctx context.Context, app model.App, appInstall *model.AppInstall
return err return err
} }
} }
if ToolKeys[app.Key] > 0 {
if app.Key == "minio" {
authParam := dto.MinioAuthParam{}
if password, ok := params["PANEL_MINIO_ROOT_PASSWORD"]; ok {
authParam.RootPassword = password.(string)
}
if rootUser, ok := params["PANEL_MINIO_ROOT_USER"]; ok {
authParam.RootUser = rootUser.(string)
}
authByte, err := json.Marshal(authParam)
if err != nil {
return err
}
appInstall.Param = string(authByte)
}
}
if app.Type == "website" || app.Type == "tool" { if app.Type == "website" || app.Type == "tool" {
paramByte, err := json.Marshal(params) paramByte, err := json.Marshal(params)
if err != nil { if err != nil {