Skip to content

Commit

Permalink
update ws & settings api (#547)
Browse files Browse the repository at this point in the history
  • Loading branch information
uubulb authored Dec 4, 2024
1 parent 6295371 commit 872002d
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 9 deletions.
23 changes: 15 additions & 8 deletions cmd/dashboard/controller/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,25 @@ import (
// @Security BearerAuth
// @Tags common
// @Produce json
// @Success 200 {object} model.CommonResponse[model.Config]
// @Success 200 {object} model.CommonResponse[model.SettingResponse]
// @Router /setting [get]
func listConfig(c *gin.Context) (model.Config, error) {
func listConfig(c *gin.Context) (model.SettingResponse, error) {
_, isMember := c.Get(model.CtxKeyAuthorizedUser)
authorized := isMember // TODO || isViewPasswordVerfied

conf := *singleton.Conf
conf := model.SettingResponse{
Config: *singleton.Conf,
Version: singleton.Version,
}

if !authorized {
conf = model.Config{
SiteName: conf.SiteName,
Language: conf.Language,
CustomCode: conf.CustomCode,
CustomCodeDashboard: conf.CustomCodeDashboard,
conf = model.SettingResponse{
Config: model.Config{
SiteName: conf.SiteName,
Language: conf.Language,
CustomCode: conf.CustomCode,
CustomCodeDashboard: conf.CustomCodeDashboard,
},
}
}

Expand Down Expand Up @@ -62,6 +68,7 @@ func updateConfig(c *gin.Context) (any, error) {
singleton.Conf.CustomCode = sf.CustomCode
singleton.Conf.CustomCodeDashboard = sf.CustomCodeDashboard
singleton.Conf.RealIPHeader = sf.RealIPHeader
singleton.Conf.TLS = sf.TLS

if err := singleton.Conf.Save(); err != nil {
return nil, newGormError("%v", err)
Expand Down
2 changes: 1 addition & 1 deletion cmd/dashboard/controller/ws.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ func getServerStat(c *gin.Context, withPublicNote bool) ([]byte, error) {
Name: server.Name,
PublicNote: utils.IfOr(withPublicNote, server.PublicNote, ""),
DisplayIndex: server.DisplayIndex,
Host: server.Host,
Host: utils.IfOr(authorized, server.Host, server.Host.Filter()),
State: server.State,
CountryCode: countryCode,
LastActive: server.LastActive,
Expand Down
15 changes: 15 additions & 0 deletions model/host.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,21 @@ func (h *Host) PB() *pb.Host {
}
}

// Filter returns a new instance of Host with some fields redacted.
func (h *Host) Filter() *Host {
return &Host{
Platform: h.Platform,
CPU: h.CPU,
MemTotal: h.MemTotal,
DiskTotal: h.DiskTotal,
SwapTotal: h.SwapTotal,
Arch: h.Arch,
Virtualization: h.Virtualization,
BootTime: h.BootTime,
GPU: h.GPU,
}
}

func PB2Host(h *pb.Host) Host {
return Host{
Platform: h.GetPlatform(),
Expand Down
7 changes: 7 additions & 0 deletions model/setting_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ type SettingForm struct {
CustomCodeDashboard string `json:"custom_code_dashboard,omitempty" validate:"optional"`
RealIPHeader string `json:"real_ip_header,omitempty" validate:"optional"` // 真实IP

TLS bool `json:"tls,omitempty" validate:"optional"`
EnableIPChangeNotification bool `json:"enable_ip_change_notification,omitempty" validate:"optional"`
EnablePlainIPInNotification bool `json:"enable_plain_ip_in_notification,omitempty" validate:"optional"`
}

type SettingResponse struct {
Config

Version string `json:"version,omitempty"`
}

0 comments on commit 872002d

Please sign in to comment.