diff --git a/internal/web/actions/default/clusters/cluster/node/node.go b/internal/web/actions/default/clusters/cluster/node/node.go index d4abc49e..351d216a 100644 --- a/internal/web/actions/default/clusters/cluster/node/node.go +++ b/internal/web/actions/default/clusters/cluster/node/node.go @@ -3,7 +3,7 @@ package node import ( "encoding/json" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/maps" ) diff --git a/internal/web/actions/default/clusters/cluster/node/update.go b/internal/web/actions/default/clusters/cluster/node/update.go index 6f2fa3d1..7c47210f 100644 --- a/internal/web/actions/default/clusters/cluster/node/update.go +++ b/internal/web/actions/default/clusters/cluster/node/update.go @@ -3,7 +3,7 @@ package node import ( "encoding/json" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/ipAddresses/ipaddressutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" diff --git a/internal/web/actions/default/clusters/cluster/settings/index.go b/internal/web/actions/default/clusters/cluster/settings/index.go index b34a54a4..951db3d3 100644 --- a/internal/web/actions/default/clusters/cluster/settings/index.go +++ b/internal/web/actions/default/clusters/cluster/settings/index.go @@ -1,9 +1,9 @@ package settings import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" ) diff --git a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go index f5b2950e..34464a3d 100644 --- a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go +++ b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go @@ -1,4 +1,4 @@ -package clusters +package clusterutils import ( "github.com/TeaOSLab/EdgeAdmin/internal/rpc" diff --git a/internal/web/actions/default/clusters/helper.go b/internal/web/actions/default/clusters/clusterutils/clusters_helper.go similarity index 50% rename from internal/web/actions/default/clusters/helper.go rename to internal/web/actions/default/clusters/clusterutils/clusters_helper.go index c9a3779f..f1c6b0b7 100644 --- a/internal/web/actions/default/clusters/helper.go +++ b/internal/web/actions/default/clusters/clusterutils/clusters_helper.go @@ -1,23 +1,29 @@ -package clusters +package clusterutils import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/iwind/TeaGo/actions" + "net/http" ) -type Helper struct { +type ClustersHelper struct { } -func NewHelper() *Helper { - return &Helper{} +func NewClustersHelper() *ClustersHelper { + return &ClustersHelper{} } -func (this *Helper) BeforeAction(action *actions.ActionObject) { +func (this *ClustersHelper) BeforeAction(action *actions.ActionObject) { + if action.Request.Method != http.MethodGet { + return + } + action.Data["teaMenu"] = "clusters" selectedTabbar, _ := action.Data["mainTab"] tabbar := actionutils.NewTabbar() tabbar.Add("集群", "", "/clusters", "", selectedTabbar == "cluster") + tabbar.Add("SSH认证", "", "/clusters/grants", "", selectedTabbar == "grant") actionutils.SetTabbar(action, tabbar) } diff --git a/internal/web/actions/default/nodes/grants/create.go b/internal/web/actions/default/clusters/grants/create.go similarity index 93% rename from internal/web/actions/default/nodes/grants/create.go rename to internal/web/actions/default/clusters/grants/create.go index cd742856..8dd1d8a2 100644 --- a/internal/web/actions/default/nodes/grants/create.go +++ b/internal/web/actions/default/clusters/grants/create.go @@ -1,9 +1,9 @@ package grants import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" ) diff --git a/internal/web/actions/default/nodes/grants/createPopup.go b/internal/web/actions/default/clusters/grants/createPopup.go similarity index 94% rename from internal/web/actions/default/nodes/grants/createPopup.go rename to internal/web/actions/default/clusters/grants/createPopup.go index 1115c789..06f622d4 100644 --- a/internal/web/actions/default/nodes/grants/createPopup.go +++ b/internal/web/actions/default/clusters/grants/createPopup.go @@ -1,9 +1,9 @@ package grants import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" ) diff --git a/internal/web/actions/default/clusters/grants/delete.go b/internal/web/actions/default/clusters/grants/delete.go new file mode 100644 index 00000000..d9f008d3 --- /dev/null +++ b/internal/web/actions/default/clusters/grants/delete.go @@ -0,0 +1,44 @@ +package grants + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +type DeleteAction struct { + actionutils.ParentAction +} + +func (this *DeleteAction) RunPost(params struct { + GrantId int64 +}) { + // 检查是否有别的集群或节点正在使用 + countResp, err := this.RPC().NodeClusterRPC().CountAllEnabledNodeClustersWithGrantId(this.AdminContext(), &pb.CountAllEnabledNodeClustersWithGrantIdRequest{ + GrantId: params.GrantId, + }) + if err != nil { + this.ErrorPage(err) + return + } + if countResp.Count > 0 { + this.Fail("有集群正在使用此服务,请修改后再删除") + } + + countResp2, err := this.RPC().NodeRPC().CountAllEnabledNodesWithGrantId(this.AdminContext(), &pb.CountAllEnabledNodesWithGrantIdRequest{GrantId: params.GrantId}) + if err != nil { + this.ErrorPage(err) + return + } + if countResp2.Count > 0 { + this.Fail("有节点正在使用此服务,请修改后再删除") + } + + // 删除 + _, err = this.RPC().NodeGrantRPC().DisableNodeGrant(this.AdminContext(), &pb.DisableNodeGrantRequest{GrantId: params.GrantId}) + if err != nil { + this.ErrorPage(err) + return + } + + this.Success() +} diff --git a/internal/web/actions/default/clusters/grants/grant.go b/internal/web/actions/default/clusters/grants/grant.go new file mode 100644 index 00000000..452ff440 --- /dev/null +++ b/internal/web/actions/default/clusters/grants/grant.go @@ -0,0 +1,88 @@ +package grants + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/iwind/TeaGo/maps" +) + +type GrantAction struct { + actionutils.ParentAction +} + +func (this *GrantAction) Init() { + this.Nav("", "grant", "index") +} + +func (this *GrantAction) RunGet(params struct { + GrantId int64 +}) { + grantResp, err := this.RPC().NodeGrantRPC().FindEnabledGrant(this.AdminContext(), &pb.FindEnabledGrantRequest{GrantId: params.GrantId}) + if err != nil { + this.ErrorPage(err) + return + } + if grantResp.Grant == nil { + this.WriteString("can not find the grant") + return + } + + // TODO 处理节点专用的认证 + + grant := grantResp.Grant + this.Data["grant"] = maps.Map{ + "id": grant.Id, + "name": grant.Name, + "method": grant.Method, + "methodName": grantutils.FindGrantMethodName(grant.Method), + "username": grant.Username, + "password": grant.Password, + "privateKey": grant.PrivateKey, + "description": grant.Description, + "su": grant.Su, + } + + // 使用此认证的集群 + clusterMaps := []maps.Map{} + clustersResp, err := this.RPC().NodeClusterRPC().FindAllEnabledNodeClustersWithGrantId(this.AdminContext(), &pb.FindAllEnabledNodeClustersWithGrantIdRequest{GrantId: params.GrantId}) + if err != nil { + this.ErrorPage(err) + return + } + for _, cluster := range clustersResp.Clusters { + clusterMaps = append(clusterMaps, maps.Map{ + "id": cluster.Id, + "name": cluster.Name, + }) + } + this.Data["clusters"] = clusterMaps + + // 使用此认证的节点 + nodeMaps := []maps.Map{} + nodesResp, err := this.RPC().NodeRPC().FindAllEnabledNodesWithGrantId(this.AdminContext(), &pb.FindAllEnabledNodesWithGrantIdRequest{GrantId: params.GrantId}) + if err != nil { + this.ErrorPage(err) + return + } + for _, node := range nodesResp.Nodes { + if node.Cluster == nil { + continue + } + + clusterMap := maps.Map{ + "id": node.Cluster.Id, + "name": node.Cluster.Name, + } + + nodeMaps = append(nodeMaps, maps.Map{ + "id": node.Id, + "name": node.Name, + "cluster": clusterMap, + "isOn": node.IsOn, + }) + } + this.Data["nodes"] = nodeMaps + + this.Show() +} diff --git a/internal/web/actions/default/nodes/grants/grantutils/utils.go b/internal/web/actions/default/clusters/grants/grantutils/utils.go similarity index 100% rename from internal/web/actions/default/nodes/grants/grantutils/utils.go rename to internal/web/actions/default/clusters/grants/grantutils/utils.go diff --git a/internal/web/actions/default/nodes/grants/index.go b/internal/web/actions/default/clusters/grants/index.go similarity index 61% rename from internal/web/actions/default/nodes/grants/index.go rename to internal/web/actions/default/clusters/grants/index.go index 523349f8..81ba667a 100644 --- a/internal/web/actions/default/nodes/grants/index.go +++ b/internal/web/actions/default/clusters/grants/index.go @@ -1,9 +1,9 @@ package grants import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/maps" ) @@ -34,6 +34,22 @@ func (this *IndexAction) RunGet(params struct{}) { } grantMaps := []maps.Map{} for _, grant := range grantsResp.Grants { + // 集群数 + countClustersResp, err := this.RPC().NodeClusterRPC().CountAllEnabledNodeClustersWithGrantId(this.AdminContext(), &pb.CountAllEnabledNodeClustersWithGrantIdRequest{GrantId: grant.Id}) + if err != nil { + this.ErrorPage(err) + return + } + countClusters := countClustersResp.Count + + // 节点数 + countNodesResp, err := this.RPC().NodeRPC().CountAllEnabledNodesWithGrantId(this.AdminContext(), &pb.CountAllEnabledNodesWithGrantIdRequest{GrantId: grant.Id}) + if err != nil { + this.ErrorPage(err) + return + } + countNodes := countNodesResp.Count + grantMaps = append(grantMaps, maps.Map{ "id": grant.Id, "name": grant.Name, @@ -41,6 +57,8 @@ func (this *IndexAction) RunGet(params struct{}) { "type": grant.Method, "name": grantutils.FindGrantMethodName(grant.Method), }, + "countClusters": countClusters, + "countNodes": countNodes, }) } this.Data["grants"] = grantMaps diff --git a/internal/web/actions/default/clusters/grants/init.go b/internal/web/actions/default/clusters/grants/init.go new file mode 100644 index 00000000..f7f38927 --- /dev/null +++ b/internal/web/actions/default/clusters/grants/init.go @@ -0,0 +1,27 @@ +package grants + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/clusterutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth()). + Helper(clusterutils.NewClustersHelper()). + Prefix("/clusters/grants"). + + // 授权管理 + Get("", new(IndexAction)). + GetPost("/create", new(CreateAction)). + GetPost("/update", new(UpdateAction)). + Post("/delete", new(DeleteAction)). + Get("/grant", new(GrantAction)). + GetPost("/selectPopup", new(SelectPopupAction)). + GetPost("/createPopup", new(CreatePopupAction)). + GetPost("/updatePopup", new(UpdatePopupAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/nodes/grants/selectPopup.go b/internal/web/actions/default/clusters/grants/selectPopup.go similarity index 94% rename from internal/web/actions/default/nodes/grants/selectPopup.go rename to internal/web/actions/default/clusters/grants/selectPopup.go index b628c2fd..e5a05985 100644 --- a/internal/web/actions/default/nodes/grants/selectPopup.go +++ b/internal/web/actions/default/clusters/grants/selectPopup.go @@ -1,9 +1,9 @@ package grants import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" ) diff --git a/internal/web/actions/default/nodes/grants/update.go b/internal/web/actions/default/clusters/grants/update.go similarity index 94% rename from internal/web/actions/default/nodes/grants/update.go rename to internal/web/actions/default/clusters/grants/update.go index 59179c26..bd1c5f4f 100644 --- a/internal/web/actions/default/nodes/grants/update.go +++ b/internal/web/actions/default/clusters/grants/update.go @@ -1,9 +1,9 @@ package grants import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" ) @@ -13,7 +13,7 @@ type UpdateAction struct { } func (this *UpdateAction) Init() { - this.Nav("", "", "") + this.Nav("", "grant", "update") } func (this *UpdateAction) RunGet(params struct { diff --git a/internal/web/actions/default/nodes/grants/updatePopup.go b/internal/web/actions/default/clusters/grants/updatePopup.go similarity index 96% rename from internal/web/actions/default/nodes/grants/updatePopup.go rename to internal/web/actions/default/clusters/grants/updatePopup.go index 6e12b9b0..e2d7ca63 100644 --- a/internal/web/actions/default/nodes/grants/updatePopup.go +++ b/internal/web/actions/default/clusters/grants/updatePopup.go @@ -1,9 +1,9 @@ package grants import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" ) diff --git a/internal/web/actions/default/clusters/init.go b/internal/web/actions/default/clusters/init.go index 5e4a6c08..c31302e4 100644 --- a/internal/web/actions/default/clusters/init.go +++ b/internal/web/actions/default/clusters/init.go @@ -1,6 +1,7 @@ package clusters import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/clusterutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" "github.com/iwind/TeaGo" ) @@ -9,7 +10,7 @@ func init() { TeaGo.BeforeStart(func(server *TeaGo.Server) { server. Helper(helpers.NewUserMustAuth()). - Helper(NewHelper()). + Helper(clusterutils.NewClustersHelper()). Prefix("/clusters"). Get("", new(IndexAction)). GetPost("/create", new(CreateAction)). diff --git a/internal/web/actions/default/nodes/grants/delete.go b/internal/web/actions/default/nodes/grants/delete.go deleted file mode 100644 index 0ca75c99..00000000 --- a/internal/web/actions/default/nodes/grants/delete.go +++ /dev/null @@ -1,22 +0,0 @@ -package grants - -import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" -) - -type DeleteAction struct { - actionutils.ParentAction -} - -func (this *DeleteAction) RunPost(params struct { - GrantId int64 -}) { - _, err := this.RPC().NodeGrantRPC().DisableNodeGrant(this.AdminContext(), &pb.DisableNodeGrantRequest{GrantId: params.GrantId}) - if err != nil { - this.ErrorPage(err) - return - } - - this.Success() -} diff --git a/internal/web/actions/default/nodes/grants/grant.go b/internal/web/actions/default/nodes/grants/grant.go deleted file mode 100644 index 30df5abb..00000000 --- a/internal/web/actions/default/nodes/grants/grant.go +++ /dev/null @@ -1,47 +0,0 @@ -package grants - -import ( - "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants/grantutils" - "github.com/iwind/TeaGo/maps" -) - -type GrantAction struct { - actionutils.ParentAction -} - -func (this *GrantAction) Init() { - this.Nav("", "grant", "index") -} - -func (this *GrantAction) RunGet(params struct { - GrantId int64 -}) { - grantResp, err := this.RPC().NodeGrantRPC().FindEnabledGrant(this.AdminContext(), &pb.FindEnabledGrantRequest{GrantId: params.GrantId}) - if err != nil { - this.ErrorPage(err) - return - } - if grantResp.Grant == nil { - this.WriteString("can not find the grant") - return - } - - // TODO 处理节点专用的认证 - - grant := grantResp.Grant - this.Data["grant"] = maps.Map{ - "id": grant.Id, - "name": grant.Name, - "method": grant.Method, - "methodName": grantutils.FindGrantMethodName(grant.Method), - "username": grant.Username, - "password": grant.Password, - "privateKey": grant.PrivateKey, - "description": grant.Description, - "su": grant.Su, - } - - this.Show() -} diff --git a/internal/web/actions/default/nodes/init.go b/internal/web/actions/default/nodes/init.go index fd21cbd2..00064620 100644 --- a/internal/web/actions/default/nodes/init.go +++ b/internal/web/actions/default/nodes/init.go @@ -1,7 +1,6 @@ package nodes import ( - "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/grants" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/ipAddresses" "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" "github.com/iwind/TeaGo" @@ -19,15 +18,6 @@ func init() { GetPost("/ipAddresses/createPopup", new(ipAddresses.CreatePopupAction)). GetPost("/ipAddresses/updatePopup", new(ipAddresses.UpdatePopupAction)). - // 授权管理 - Get("/grants", new(grants.IndexAction)). - GetPost("/grants/create", new(grants.CreateAction)). - GetPost("/grants/update", new(grants.UpdateAction)). - Post("/grants/delete", new(grants.DeleteAction)). - Get("/grants/grant", new(grants.GrantAction)). - GetPost("/grants/selectPopup", new(grants.SelectPopupAction)). - GetPost("/grants/createPopup", new(grants.CreatePopupAction)). - GetPost("/grants/updatePopup", new(grants.UpdatePopupAction)). EndAll() }) } diff --git a/internal/web/import.go b/internal/web/import.go index 36262d8e..ab45a61f 100644 --- a/internal/web/import.go +++ b/internal/web/import.go @@ -7,6 +7,7 @@ import ( _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/cluster" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/cluster/settings" + _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/csrf" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/dashboard" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/db" diff --git a/web/public/js/components/grant/grant-selector.js b/web/public/js/components/grant/grant-selector.js index ef1dd2ef..7afd65d2 100644 --- a/web/public/js/components/grant/grant-selector.js +++ b/web/public/js/components/grant/grant-selector.js @@ -10,7 +10,7 @@ Vue.component("grant-selector", { // 选择授权 select: function () { let that = this; - teaweb.popup("/nodes/grants/selectPopup", { + teaweb.popup("/clusters/grants/selectPopup", { callback: (resp) => { that.grantId = resp.data.grant.id; if (that.grantId > 0) { @@ -22,7 +22,7 @@ Vue.component("grant-selector", { // 创建授权 create: function () { - teaweb.popup("/nodes/grants/createPopup", { + teaweb.popup("/clusters/grants/createPopup", { height: "31em", callback: (resp) => { this.grantId = resp.data.grant.id; @@ -39,7 +39,7 @@ Vue.component("grant-selector", { window.location.reload(); return; } - teaweb.popup("/nodes/grants/updatePopup?grantId=" + this.grant.id, { + teaweb.popup("/clusters/grants/updatePopup?grantId=" + this.grant.id, { height: "31em", callback: (resp) => { this.grant = resp.data.grant; diff --git a/web/views/@default/clusters/grants/@grant_menu.html b/web/views/@default/clusters/grants/@grant_menu.html new file mode 100644 index 00000000..c184965b --- /dev/null +++ b/web/views/@default/clusters/grants/@grant_menu.html @@ -0,0 +1,6 @@ + + 认证列表 + | + {{grant.name}}详情 + 修改 + diff --git a/web/views/@default/clusters/grants/@menu.html b/web/views/@default/clusters/grants/@menu.html new file mode 100644 index 00000000..41c79fac --- /dev/null +++ b/web/views/@default/clusters/grants/@menu.html @@ -0,0 +1,4 @@ + + 认证列表 + 创建认证 + diff --git a/web/views/@default/nodes/grants/create.html b/web/views/@default/clusters/grants/create.html similarity index 84% rename from web/views/@default/nodes/grants/create.html rename to web/views/@default/clusters/grants/create.html index c4844902..a415aee4 100644 --- a/web/views/@default/nodes/grants/create.html +++ b/web/views/@default/clusters/grants/create.html @@ -48,11 +48,16 @@ - 描述 - - - + + + + 描述 + + + + + \ No newline at end of file diff --git a/web/views/@default/clusters/grants/create.js b/web/views/@default/clusters/grants/create.js new file mode 100644 index 00000000..bdb850ae --- /dev/null +++ b/web/views/@default/clusters/grants/create.js @@ -0,0 +1,5 @@ +Tea.context(function () { + this.method = "user"; + + this.success = NotifySuccess("保存成功", "/clusters/grants"); +}); \ No newline at end of file diff --git a/web/views/@default/nodes/grants/createPopup.html b/web/views/@default/clusters/grants/createPopup.html similarity index 100% rename from web/views/@default/nodes/grants/createPopup.html rename to web/views/@default/clusters/grants/createPopup.html diff --git a/web/views/@default/nodes/grants/createPopup.js b/web/views/@default/clusters/grants/createPopup.js similarity index 100% rename from web/views/@default/nodes/grants/createPopup.js rename to web/views/@default/clusters/grants/createPopup.js diff --git a/web/views/@default/nodes/grants/grant.html b/web/views/@default/clusters/grants/grant.html similarity index 55% rename from web/views/@default/nodes/grants/grant.html rename to web/views/@default/clusters/grants/grant.html index 43b89879..43c3712d 100644 --- a/web/views/@default/nodes/grants/grant.html +++ b/web/views/@default/clusters/grants/grant.html @@ -1,10 +1,5 @@ {$layout} -{$template "menu"} - - - 详情 - 修改 - +{$template "grant_menu"} @@ -55,4 +50,18 @@ - -
\ No newline at end of file + + +
+

使用此认证的集群

+
+

暂时还没有集群使用此认证。

+ {{cluster.name}} +
+ +
+

使用此认证的节点

+
+

暂时还没有节点使用此认证。

+ {{node.name}}({{node.cluster.name}}) +
diff --git a/web/views/@default/clusters/grants/index.html b/web/views/@default/clusters/grants/index.html new file mode 100644 index 00000000..c5f2ce77 --- /dev/null +++ b/web/views/@default/clusters/grants/index.html @@ -0,0 +1,37 @@ +{$layout} +{$template "menu"} + +
暂时还没有认证信息。
+ + + + + + + + + + + + + + + + + + + + +
ID名称类型集群数节点数操作
{{grant.id}}{{grant.name}} + {{grant.method.name}} + + {{grant.countClusters}} + 0 + + {{grant.countNodes}} + 0 + + 详情   删除 +
+ +
\ No newline at end of file diff --git a/web/views/@default/nodes/grants/index.js b/web/views/@default/clusters/grants/index.js similarity index 100% rename from web/views/@default/nodes/grants/index.js rename to web/views/@default/clusters/grants/index.js diff --git a/web/views/@default/nodes/grants/selectPopup.html b/web/views/@default/clusters/grants/selectPopup.html similarity index 68% rename from web/views/@default/nodes/grants/selectPopup.html rename to web/views/@default/clusters/grants/selectPopup.html index 7bc03c67..93021287 100644 --- a/web/views/@default/nodes/grants/selectPopup.html +++ b/web/views/@default/clusters/grants/selectPopup.html @@ -9,7 +9,8 @@ 选择认证 暂时还没有可用的认证。 - {{grant.name}} ({{grant.methodName}}) + {{grant.name}} ({{grant.methodName}}) +

请点击选中某个认证。

diff --git a/web/views/@default/nodes/grants/selectPopup.js b/web/views/@default/clusters/grants/selectPopup.js similarity index 100% rename from web/views/@default/nodes/grants/selectPopup.js rename to web/views/@default/clusters/grants/selectPopup.js diff --git a/web/views/@default/nodes/grants/update.html b/web/views/@default/clusters/grants/update.html similarity index 86% rename from web/views/@default/nodes/grants/update.html rename to web/views/@default/clusters/grants/update.html index f200d804..62a3c611 100644 --- a/web/views/@default/nodes/grants/update.html +++ b/web/views/@default/clusters/grants/update.html @@ -1,10 +1,5 @@ {$layout} -{$template "menu"} - - - 详情 - 修改 - +{$template "grant_menu"}
diff --git a/web/views/@default/clusters/grants/update.js b/web/views/@default/clusters/grants/update.js new file mode 100644 index 00000000..283c1c26 --- /dev/null +++ b/web/views/@default/clusters/grants/update.js @@ -0,0 +1,5 @@ +Tea.context(function () { + this.method = this.grant.method; + + this.success = NotifySuccess("保存成功", "/clusters/grants/grant?grantId=" + this.grant.id); +}); \ No newline at end of file diff --git a/web/views/@default/nodes/grants/updatePopup.html b/web/views/@default/clusters/grants/updatePopup.html similarity index 100% rename from web/views/@default/nodes/grants/updatePopup.html rename to web/views/@default/clusters/grants/updatePopup.html diff --git a/web/views/@default/nodes/grants/updatePopup.js b/web/views/@default/clusters/grants/updatePopup.js similarity index 100% rename from web/views/@default/nodes/grants/updatePopup.js rename to web/views/@default/clusters/grants/updatePopup.js diff --git a/web/views/@default/nodes/grants/@menu.html b/web/views/@default/nodes/grants/@menu.html deleted file mode 100644 index 6f8e2b18..00000000 --- a/web/views/@default/nodes/grants/@menu.html +++ /dev/null @@ -1,4 +0,0 @@ - - 认证列表 - 创建认证 - diff --git a/web/views/@default/nodes/grants/create.js b/web/views/@default/nodes/grants/create.js deleted file mode 100644 index 041d242f..00000000 --- a/web/views/@default/nodes/grants/create.js +++ /dev/null @@ -1,5 +0,0 @@ -Tea.context(function () { - this.method = "user"; - - this.success = NotifySuccess("保存成功", "/nodes/grants"); -}); \ No newline at end of file diff --git a/web/views/@default/nodes/grants/index.html b/web/views/@default/nodes/grants/index.html deleted file mode 100644 index c1b09ee5..00000000 --- a/web/views/@default/nodes/grants/index.html +++ /dev/null @@ -1,25 +0,0 @@ -{$layout} -{$template "menu"} - -
暂时还没有认证信息。
- - - - - - - - - - - - - - - - -
ID名称类型操作
{{grant.id}}{{grant.name}}{{grant.method.name}} - 详情   删除 -
- -
\ No newline at end of file diff --git a/web/views/@default/nodes/grants/update.js b/web/views/@default/nodes/grants/update.js deleted file mode 100644 index ed8d21ab..00000000 --- a/web/views/@default/nodes/grants/update.js +++ /dev/null @@ -1,5 +0,0 @@ -Tea.context(function () { - this.method = this.grant.method; - - this.success = NotifySuccess("保存成功", "/nodes/grants/grant?grantId=" + this.grant.id); -}); \ No newline at end of file