2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 07:57:21 +08:00

feat: 数据库用户管理2

This commit is contained in:
耗子
2024-11-26 03:19:33 +08:00
parent a2c96993d3
commit 3fbaecbe9e
10 changed files with 343 additions and 98 deletions

View File

@@ -9,6 +9,7 @@ type DatabaseStatus string
type Database struct {
Name string `json:"name"`
Server string `json:"server"`
ServerID uint `json:"server_id"`
Encoding string `json:"encoding"`
}

View File

@@ -35,6 +35,7 @@ func (r databaseRepo) List(page, limit uint) ([]*biz.Database, int64, error) {
database = append(database, &biz.Database{
Name: item.Name,
Server: server.Name,
ServerID: server.ID,
Encoding: item.CharSet,
})
}
@@ -48,6 +49,7 @@ func (r databaseRepo) List(page, limit uint) ([]*biz.Database, int64, error) {
database = append(database, &biz.Database{
Name: item.Name,
Server: server.Name,
ServerID: server.ID,
Encoding: item.Encoding,
})
}

View File

@@ -2,6 +2,7 @@ package data
import (
"fmt"
"log/slog"
"slices"
"github.com/samber/do/v2"
@@ -121,14 +122,16 @@ func (r databaseServerRepo) Sync(id uint) error {
for user := range slices.Values(allUsers) {
if !slices.ContainsFunc(users, func(a *biz.DatabaseUser) bool {
return a.Username == user.User && a.Host == user.Host
}) {
}) && !slices.Contains([]string{"root", "mysql.sys", "mysql.session", "mysql.infoschema"}, user.User) {
newUser := &biz.DatabaseUser{
ServerID: id,
Username: user.User,
Host: user.Host,
Remark: fmt.Sprintf("sync from server %s", server.Name),
}
app.Orm.Create(newUser)
if err = app.Orm.Create(newUser).Error; err != nil {
app.Logger.Warn("sync database user failed", slog.Any("err", err))
}
}
}
case biz.DatabaseTypePostgresql:
@@ -143,7 +146,7 @@ func (r databaseServerRepo) Sync(id uint) error {
for user := range slices.Values(allUsers) {
if !slices.ContainsFunc(users, func(a *biz.DatabaseUser) bool {
return a.Username == user.Role
}) {
}) && !slices.Contains([]string{"postgres"}, user.Role) {
newUser := &biz.DatabaseUser{
ServerID: id,
Username: user.Role,

View File

@@ -66,7 +66,7 @@ func Http(r chi.Router) {
database := service.NewDatabaseService()
r.Get("/", database.List)
r.Post("/", database.Create)
r.Delete("/{id}", database.Delete)
r.Delete("/", database.Delete)
})
r.Route("/databaseServer", func(r chi.Router) {
@@ -75,7 +75,7 @@ func Http(r chi.Router) {
r.Post("/", server.Create)
r.Put("/{id}", server.Update)
r.Delete("/{id}", server.Delete)
r.Delete("/{id}/sync", server.Sync)
r.Post("/{id}/sync", server.Sync)
})
r.Route("/databaseUser", func(r chi.Router) {