mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	修改用户所属集群的时候同时修改其下的所有服务所属集群
This commit is contained in:
		@@ -148,6 +148,7 @@ func (this *NodeDAO) IncreaseAllNodesLatestVersionMatch(clusterId int64) error {
 | 
			
		||||
		Attr("clusterId", clusterId).
 | 
			
		||||
		Set("latestVersion", dbs.SQL("latestVersion+1")).
 | 
			
		||||
		Update()
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user