diff --git a/internal/web/actions/default/settings/ui/index.go b/internal/web/actions/default/settings/ui/index.go index 24b55a60..658127be 100644 --- a/internal/web/actions/default/settings/ui/index.go +++ b/internal/web/actions/default/settings/ui/index.go @@ -5,6 +5,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/userconfigs" "github.com/iwind/TeaGo/actions" "io" ) @@ -37,6 +38,8 @@ func (this *IndexAction) RunGet(params struct{}) { } this.Data["timeZoneLocation"] = nodeconfigs.FindTimeZoneLocation(config.TimeZone) + this.filterConfig(config) + this.Show() } @@ -52,6 +55,9 @@ func (this *IndexAction) RunPost(params struct { DefaultPageSize int TimeZone string + SupportModuleCDN bool + SupportModuleNS bool + Must *actions.Must CSRF *actionutils.CSRF }) { @@ -85,6 +91,14 @@ func (this *IndexAction) RunPost(params struct { config.DefaultPageSize = 10 } + config.Modules = []userconfigs.UserModule{} + if params.SupportModuleCDN { + config.Modules = append(config.Modules, userconfigs.UserModuleCDN) + } + if params.SupportModuleNS { + config.Modules = append(config.Modules, userconfigs.UserModuleNS) + } + // 上传Favicon文件 if params.FaviconFile != nil { createResp, err := this.RPC().FileRPC().CreateFile(this.AdminContext(), &pb.CreateFileRequest{ diff --git a/internal/web/actions/default/settings/ui/index_ext.go b/internal/web/actions/default/settings/ui/index_ext.go new file mode 100644 index 00000000..6310c79f --- /dev/null +++ b/internal/web/actions/default/settings/ui/index_ext.go @@ -0,0 +1,12 @@ +// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn . +//go:build !plus + +package ui + +import "github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs" + +func (this *IndexAction) filterConfig(config *systemconfigs.AdminUIConfig) { + this.Data["supportModuleCDN"] = true + this.Data["supportModuleNS"] = true + this.Data["nsIsVisible"] = false +} diff --git a/internal/web/helpers/user_must_auth.go b/internal/web/helpers/user_must_auth.go index 50a5c67f..dc748b37 100644 --- a/internal/web/helpers/user_must_auth.go +++ b/internal/web/helpers/user_must_auth.go @@ -9,7 +9,10 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/setup" "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs" + "github.com/TeaOSLab/EdgeCommon/pkg/userconfigs" "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/lists" "github.com/iwind/TeaGo/logs" "github.com/iwind/TeaGo/maps" "net" @@ -192,7 +195,7 @@ func (this *userMustAuth) BeforeAction(actionPtr actions.ActionWrapper, paramNam return true } - config, err := configloaders.LoadAdminUIConfig() + uiConfig, err := configloaders.LoadAdminUIConfig() if err != nil { action.WriteString(err.Error()) return false @@ -203,11 +206,11 @@ func (this *userMustAuth) BeforeAction(actionPtr actions.ActionWrapper, paramNam return action.Data["teaTitle"].(string) }) - action.Data["teaShowVersion"] = config.ShowVersion - action.Data["teaTitle"] = config.AdminSystemName - action.Data["teaName"] = config.ProductName - action.Data["teaFaviconFileId"] = config.FaviconFileId - action.Data["teaLogoFileId"] = config.LogoFileId + action.Data["teaShowVersion"] = uiConfig.ShowVersion + action.Data["teaTitle"] = uiConfig.AdminSystemName + action.Data["teaName"] = uiConfig.ProductName + action.Data["teaFaviconFileId"] = uiConfig.FaviconFileId + action.Data["teaLogoFileId"] = uiConfig.LogoFileId action.Data["teaUsername"] = configloaders.FindAdminFullname(adminId) action.Data["teaTheme"] = configloaders.FindAdminTheme(adminId) @@ -216,15 +219,15 @@ func (this *userMustAuth) BeforeAction(actionPtr actions.ActionWrapper, paramNam if !action.Data.Has("teaMenu") { action.Data["teaMenu"] = "" } - action.Data["teaModules"] = this.modules(actionPtr, adminId) + action.Data["teaModules"] = this.modules(actionPtr, adminId, uiConfig) action.Data["teaSubMenus"] = []map[string]interface{}{} action.Data["teaTabbar"] = []map[string]interface{}{} - if len(config.Version) == 0 { + if len(uiConfig.Version) == 0 { action.Data["teaVersion"] = teaconst.Version } else { - action.Data["teaVersion"] = config.Version + action.Data["teaVersion"] = uiConfig.Version } - action.Data["teaShowOpenSourceInfo"] = config.ShowOpenSourceInfo + action.Data["teaShowOpenSourceInfo"] = uiConfig.ShowOpenSourceInfo action.Data["teaIsSuper"] = false action.Data["teaIsPlus"] = teaconst.IsPlus action.Data["teaDemoEnabled"] = teaconst.IsDemoMode @@ -251,7 +254,7 @@ func (this *userMustAuth) BeforeAction(actionPtr actions.ActionWrapper, paramNam } // 菜单配置 -func (this *userMustAuth) modules(actionPtr actions.ActionWrapper, adminId int64) []maps.Map { +func (this *userMustAuth) modules(actionPtr actions.ActionWrapper, adminId int64, adminUIConfig *systemconfigs.AdminUIConfig) []maps.Map { // 父级动作 var action = actionPtr.Object() @@ -269,14 +272,27 @@ func (this *userMustAuth) modules(actionPtr actions.ActionWrapper, adminId int64 } } - result := []maps.Map{} + var result = []maps.Map{} for _, m := range FindAllMenuMaps(nodeLogsType, countUnreadNodeLogs, countUnreadIPItems) { if m.GetString("code") == "finance" && !configloaders.ShowFinance() { continue } - module := m.GetString("module") + var module = m.GetString("module") if configloaders.AllowModule(adminId, module) { + if module == "ns" && !adminUIConfig.ContainsModule(userconfigs.UserModuleNS) { + continue + } + if lists.ContainsString([]string{ + configloaders.AdminModuleCodeNode, + configloaders.AdminModuleCodeDNS, + configloaders.AdminModuleCodePlan, + configloaders.AdminModuleCodeServer, + configloaders.AdminModuleCodeDashboard, + }, module) && !adminUIConfig.ContainsModule(userconfigs.UserModuleCDN) { + continue + } + result = append(result, m) } } diff --git a/web/views/@default/@blank.html b/web/views/@default/@blank.html new file mode 100644 index 00000000..823c9229 --- /dev/null +++ b/web/views/@default/@blank.html @@ -0,0 +1 @@ +{$layout} \ No newline at end of file diff --git a/web/views/@default/settings/ui/index.html b/web/views/@default/settings/ui/index.html index 3736f7ab..9bd02ae6 100644 --- a/web/views/@default/settings/ui/index.html +++ b/web/views/@default/settings/ui/index.html @@ -38,6 +38,14 @@
定制自己的版本号,留空表示使用系统自带的版本号。
+当前管理系统中可以显示的模块,不能为空。
+