diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index d405da53..13eb815b 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -148,6 +148,7 @@ func (this *NodeDAO) IncreaseAllNodesLatestVersionMatch(clusterId int64) error { Attr("clusterId", clusterId). Set("latestVersion", dbs.SQL("latestVersion+1")). Update() + return err } diff --git a/internal/db/models/server_dao.go b/internal/db/models/server_dao.go index 703cfc21..d6345250 100644 --- a/internal/db/models/server_dao.go +++ b/internal/db/models/server_dao.go @@ -1055,6 +1055,15 @@ func (this *ServerDAO) CheckUserServer(serverId int64, userId int64) error { return nil } +// 设置一个用户下的所有服务的所属集群 +func (this *ServerDAO) UpdateUserServersClusterId(userId int64, clusterId int64) error { + _, err := this.Query(). + Attr("userId", userId). + Set("clusterId", clusterId). + Update() + return err +} + // 生成DNS Name func (this *ServerDAO) genDNSName() (string, error) { for { diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index 0cbf3c60..695f8559 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -1142,13 +1142,14 @@ func (this *NodeService) FindEnabledNodeDNS(ctx context.Context, req *pb.FindEna return &pb.FindEnabledNodeDNSResponse{ Node: &pb.NodeDNSInfo{ - Id: int64(node.Id), - Name: node.Name, - IpAddr: ipAddr, - Routes: pbRoutes, - NodeClusterId: clusterId, - DnsDomainId: dnsDomainId, - DnsDomainName: dnsDomainName, + Id: int64(node.Id), + Name: node.Name, + IpAddr: ipAddr, + Routes: pbRoutes, + NodeClusterId: clusterId, + NodeClusterDNSName: clusterDNS.DnsName, + DnsDomainId: dnsDomainId, + DnsDomainName: dnsDomainName, }, }, nil } diff --git a/internal/rpc/services/service_server.go b/internal/rpc/services/service_server.go index bc097462..84106a64 100644 --- a/internal/rpc/services/service_server.go +++ b/internal/rpc/services/service_server.go @@ -645,6 +645,22 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn } } + // 用户信息 + var pbUser *pb.User = nil + if server.UserId > 0 { + user, err := models.SharedUserDAO.FindEnabledBasicUser(int64(server.UserId)) + if err != nil { + return nil, err + } + if user != nil { + pbUser = &pb.User{ + Id: int64(user.Id), + Username: user.Username, + Fullname: user.Fullname, + } + } + } + return &pb.FindEnabledServerResponse{Server: &pb.Server{ Id: int64(server.Id), IsOn: server.IsOn == 1, @@ -671,6 +687,7 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn Name: clusterName, }, Groups: pbGroups, + User: pbUser, }}, nil } diff --git a/internal/rpc/services/service_user.go b/internal/rpc/services/service_user.go index 3de55ef3..3397efdb 100644 --- a/internal/rpc/services/service_user.go +++ b/internal/rpc/services/service_user.go @@ -37,10 +37,33 @@ func (this *UserService) UpdateUser(ctx context.Context, req *pb.UpdateUserReque return nil, err } + oldClusterId, err := models.SharedUserDAO.FindUserClusterId(req.UserId) + if err != nil { + return nil, err + } + err = models.SharedUserDAO.UpdateUser(req.UserId, req.Username, req.Password, req.Fullname, req.Mobile, req.Tel, req.Email, req.Remark, req.IsOn, req.NodeClusterId) if err != nil { return nil, err } + + if oldClusterId != req.NodeClusterId { + err = models.SharedServerDAO.UpdateUserServersClusterId(req.UserId, req.NodeClusterId) + if err != nil { + return nil, err + } + + err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(oldClusterId) + if err != nil { + return nil, err + } + + err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId) + if err != nil { + return nil, err + } + } + return this.Success() }