mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-05 01:20:25 +08:00
部分API支持用户平台调用
This commit is contained in:
@@ -1262,9 +1262,13 @@ func (this *ServerDAO) CountAllEnabledServersWithNodeClusterId(tx *dbs.Tx, clust
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CountAllEnabledServersWithGroupId 计算使用某个分组的服务数量
|
// CountAllEnabledServersWithGroupId 计算使用某个分组的服务数量
|
||||||
func (this *ServerDAO) CountAllEnabledServersWithGroupId(tx *dbs.Tx, groupId int64) (int64, error) {
|
func (this *ServerDAO) CountAllEnabledServersWithGroupId(tx *dbs.Tx, groupId int64, userId int64) (int64, error) {
|
||||||
return this.Query(tx).
|
var query = this.Query(tx).
|
||||||
State(ServerStateEnabled).
|
State(ServerStateEnabled)
|
||||||
|
if userId > 0 {
|
||||||
|
query.Attr("userId", userId)
|
||||||
|
}
|
||||||
|
return query.
|
||||||
Where("JSON_CONTAINS(groupIds, :groupId)").
|
Where("JSON_CONTAINS(groupIds, :groupId)").
|
||||||
Param("groupId", numberutils.FormatInt64(groupId)).
|
Param("groupId", numberutils.FormatInt64(groupId)).
|
||||||
Count()
|
Count()
|
||||||
|
|||||||
@@ -77,10 +77,11 @@ func (this *ServerGroupDAO) FindServerGroupName(tx *dbs.Tx, id int64) (string, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CreateGroup 创建分组
|
// CreateGroup 创建分组
|
||||||
func (this *ServerGroupDAO) CreateGroup(tx *dbs.Tx, name string) (groupId int64, err error) {
|
func (this *ServerGroupDAO) CreateGroup(tx *dbs.Tx, name string, userId int64) (groupId int64, err error) {
|
||||||
op := NewServerGroupOperator()
|
op := NewServerGroupOperator()
|
||||||
op.State = ServerGroupStateEnabled
|
op.State = ServerGroupStateEnabled
|
||||||
op.Name = name
|
op.Name = name
|
||||||
|
op.UserId = userId
|
||||||
op.IsOn = true
|
op.IsOn = true
|
||||||
err = this.Save(tx, op)
|
err = this.Save(tx, op)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -102,9 +103,15 @@ func (this *ServerGroupDAO) UpdateGroup(tx *dbs.Tx, groupId int64, name string)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FindAllEnabledGroups 查找所有分组
|
// FindAllEnabledGroups 查找所有分组
|
||||||
func (this *ServerGroupDAO) FindAllEnabledGroups(tx *dbs.Tx) (result []*ServerGroup, err error) {
|
func (this *ServerGroupDAO) FindAllEnabledGroups(tx *dbs.Tx, userId int64) (result []*ServerGroup, err error) {
|
||||||
_, err = this.Query(tx).
|
var query = this.Query(tx).
|
||||||
State(ServerGroupStateEnabled).
|
State(ServerGroupStateEnabled)
|
||||||
|
if userId > 0 {
|
||||||
|
query.Attr("userId", userId)
|
||||||
|
} else {
|
||||||
|
query.Attr("userId", 0)
|
||||||
|
}
|
||||||
|
_, err = query.
|
||||||
Desc("order").
|
Desc("order").
|
||||||
AscPk().
|
AscPk().
|
||||||
Slice(&result).
|
Slice(&result).
|
||||||
@@ -113,9 +120,13 @@ func (this *ServerGroupDAO) FindAllEnabledGroups(tx *dbs.Tx) (result []*ServerGr
|
|||||||
}
|
}
|
||||||
|
|
||||||
// UpdateGroupOrders 修改分组排序
|
// UpdateGroupOrders 修改分组排序
|
||||||
func (this *ServerGroupDAO) UpdateGroupOrders(tx *dbs.Tx, groupIds []int64) error {
|
func (this *ServerGroupDAO) UpdateGroupOrders(tx *dbs.Tx, groupIds []int64, userId int64) error {
|
||||||
for index, groupId := range groupIds {
|
for index, groupId := range groupIds {
|
||||||
_, err := this.Query(tx).
|
var query = this.Query(tx)
|
||||||
|
if userId > 0 {
|
||||||
|
query.Attr("userId", userId)
|
||||||
|
}
|
||||||
|
_, err := query.
|
||||||
Pk(groupId).
|
Pk(groupId).
|
||||||
Set("order", len(groupIds)-index).
|
Set("order", len(groupIds)-index).
|
||||||
Update()
|
Update()
|
||||||
@@ -383,6 +394,22 @@ func (this *ServerGroupDAO) FindEnabledGroupIdWithReverseProxyId(tx *dbs.Tx, rev
|
|||||||
FindInt64Col(0)
|
FindInt64Col(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CheckUserGroup 检查用户分组
|
||||||
|
func (this *ServerGroupDAO) CheckUserGroup(tx *dbs.Tx, userId int64, groupId int64) error {
|
||||||
|
b, err := this.Query(tx).
|
||||||
|
Pk(groupId).
|
||||||
|
Attr("userId", userId).
|
||||||
|
State(ServerGroupStateEnabled).
|
||||||
|
Exist()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !b {
|
||||||
|
return ErrNotFound
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// NotifyUpdate 通知更新
|
// NotifyUpdate 通知更新
|
||||||
func (this *ServerGroupDAO) NotifyUpdate(tx *dbs.Tx, groupId int64) error {
|
func (this *ServerGroupDAO) NotifyUpdate(tx *dbs.Tx, groupId int64) error {
|
||||||
serverIds, err := SharedServerDAO.FindAllEnabledServerIdsWithGroupId(tx, groupId)
|
serverIds, err := SharedServerDAO.FindAllEnabledServerIdsWithGroupId(tx, groupId)
|
||||||
|
|||||||
@@ -74,6 +74,14 @@ func (this *ServerService) CreateServer(ctx context.Context, req *pb.CreateServe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 服务分组
|
// 服务分组
|
||||||
|
for _, groupId := range req.ServerGroupIds {
|
||||||
|
err := models.SharedServerGroupDAO.CheckUserGroup(tx, userId, groupId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 增加默认分组
|
||||||
config, err := models.SharedSysSettingDAO.ReadUserServerConfig(tx)
|
config, err := models.SharedSysSettingDAO.ReadUserServerConfig(tx)
|
||||||
if err == nil && config.GroupId > 0 && !lists.ContainsInt64(req.ServerGroupIds, config.GroupId) {
|
if err == nil && config.GroupId > 0 && !lists.ContainsInt64(req.ServerGroupIds, config.GroupId) {
|
||||||
req.ServerGroupIds = append(req.ServerGroupIds, config.GroupId)
|
req.ServerGroupIds = append(req.ServerGroupIds, config.GroupId)
|
||||||
@@ -698,6 +706,7 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
|
|||||||
AuditingResult: auditingResult,
|
AuditingResult: auditingResult,
|
||||||
CreatedAt: int64(server.CreatedAt),
|
CreatedAt: int64(server.CreatedAt),
|
||||||
DnsName: server.DnsName,
|
DnsName: server.DnsName,
|
||||||
|
UserPlanId: int64(server.UserPlanId),
|
||||||
NodeCluster: &pb.NodeCluster{
|
NodeCluster: &pb.NodeCluster{
|
||||||
Id: int64(server.ClusterId),
|
Id: int64(server.ClusterId),
|
||||||
Name: clusterName,
|
Name: clusterName,
|
||||||
@@ -1092,14 +1101,14 @@ func (this *ServerService) CountAllEnabledServersWithNodeClusterId(ctx context.C
|
|||||||
// CountAllEnabledServersWithServerGroupId 计算使用某个分组的服务数量
|
// CountAllEnabledServersWithServerGroupId 计算使用某个分组的服务数量
|
||||||
func (this *ServerService) CountAllEnabledServersWithServerGroupId(ctx context.Context, req *pb.CountAllEnabledServersWithServerGroupIdRequest) (*pb.RPCCountResponse, error) {
|
func (this *ServerService) CountAllEnabledServersWithServerGroupId(ctx context.Context, req *pb.CountAllEnabledServersWithServerGroupIdRequest) (*pb.RPCCountResponse, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, err := this.ValidateAdmin(ctx, 0)
|
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tx := this.NullTx()
|
tx := this.NullTx()
|
||||||
|
|
||||||
count, err := models.SharedServerDAO.CountAllEnabledServersWithGroupId(tx, req.ServerGroupId)
|
count, err := models.SharedServerDAO.CountAllEnabledServersWithGroupId(tx, req.ServerGroupId, userId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,14 +16,14 @@ type ServerGroupService struct {
|
|||||||
// CreateServerGroup 创建分组
|
// CreateServerGroup 创建分组
|
||||||
func (this *ServerGroupService) CreateServerGroup(ctx context.Context, req *pb.CreateServerGroupRequest) (*pb.CreateServerGroupResponse, error) {
|
func (this *ServerGroupService) CreateServerGroup(ctx context.Context, req *pb.CreateServerGroupRequest) (*pb.CreateServerGroupResponse, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, err := this.ValidateAdmin(ctx, 0)
|
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tx := this.NullTx()
|
tx := this.NullTx()
|
||||||
|
|
||||||
groupId, err := models.SharedServerGroupDAO.CreateGroup(tx, req.Name)
|
groupId, err := models.SharedServerGroupDAO.CreateGroup(tx, req.Name, userId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -33,13 +33,21 @@ func (this *ServerGroupService) CreateServerGroup(ctx context.Context, req *pb.C
|
|||||||
// UpdateServerGroup 修改分组
|
// UpdateServerGroup 修改分组
|
||||||
func (this *ServerGroupService) UpdateServerGroup(ctx context.Context, req *pb.UpdateServerGroupRequest) (*pb.RPCSuccess, error) {
|
func (this *ServerGroupService) UpdateServerGroup(ctx context.Context, req *pb.UpdateServerGroupRequest) (*pb.RPCSuccess, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, err := this.ValidateAdmin(ctx, 0)
|
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tx := this.NullTx()
|
tx := this.NullTx()
|
||||||
|
|
||||||
|
// 检查用户权限
|
||||||
|
if userId > 0 {
|
||||||
|
err = models.SharedServerGroupDAO.CheckUserGroup(tx, userId, req.ServerGroupId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = models.SharedServerGroupDAO.UpdateGroup(tx, req.ServerGroupId, req.Name)
|
err = models.SharedServerGroupDAO.UpdateGroup(tx, req.ServerGroupId, req.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -51,13 +59,21 @@ func (this *ServerGroupService) UpdateServerGroup(ctx context.Context, req *pb.U
|
|||||||
// DeleteServerGroup 删除分组
|
// DeleteServerGroup 删除分组
|
||||||
func (this *ServerGroupService) DeleteServerGroup(ctx context.Context, req *pb.DeleteServerGroupRequest) (*pb.RPCSuccess, error) {
|
func (this *ServerGroupService) DeleteServerGroup(ctx context.Context, req *pb.DeleteServerGroupRequest) (*pb.RPCSuccess, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, err := this.ValidateAdmin(ctx, 0)
|
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tx := this.NullTx()
|
tx := this.NullTx()
|
||||||
|
|
||||||
|
// 检查用户权限
|
||||||
|
if userId > 0 {
|
||||||
|
err = models.SharedServerGroupDAO.CheckUserGroup(tx, userId, req.ServerGroupId)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = models.SharedServerGroupDAO.DisableServerGroup(tx, req.ServerGroupId)
|
err = models.SharedServerGroupDAO.DisableServerGroup(tx, req.ServerGroupId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -69,14 +85,14 @@ func (this *ServerGroupService) DeleteServerGroup(ctx context.Context, req *pb.D
|
|||||||
// FindAllEnabledServerGroups 查询所有分组
|
// FindAllEnabledServerGroups 查询所有分组
|
||||||
func (this *ServerGroupService) FindAllEnabledServerGroups(ctx context.Context, req *pb.FindAllEnabledServerGroupsRequest) (*pb.FindAllEnabledServerGroupsResponse, error) {
|
func (this *ServerGroupService) FindAllEnabledServerGroups(ctx context.Context, req *pb.FindAllEnabledServerGroupsRequest) (*pb.FindAllEnabledServerGroupsResponse, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, err := this.ValidateAdmin(ctx, 0)
|
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tx := this.NullTx()
|
tx := this.NullTx()
|
||||||
|
|
||||||
groups, err := models.SharedServerGroupDAO.FindAllEnabledGroups(tx)
|
groups, err := models.SharedServerGroupDAO.FindAllEnabledGroups(tx, userId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -93,14 +109,14 @@ func (this *ServerGroupService) FindAllEnabledServerGroups(ctx context.Context,
|
|||||||
// UpdateServerGroupOrders 修改分组排序
|
// UpdateServerGroupOrders 修改分组排序
|
||||||
func (this *ServerGroupService) UpdateServerGroupOrders(ctx context.Context, req *pb.UpdateServerGroupOrdersRequest) (*pb.RPCSuccess, error) {
|
func (this *ServerGroupService) UpdateServerGroupOrders(ctx context.Context, req *pb.UpdateServerGroupOrdersRequest) (*pb.RPCSuccess, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, err := this.ValidateAdmin(ctx, 0)
|
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
tx := this.NullTx()
|
tx := this.NullTx()
|
||||||
|
|
||||||
err = models.SharedServerGroupDAO.UpdateGroupOrders(tx, req.ServerGroupIds)
|
err = models.SharedServerGroupDAO.UpdateGroupOrders(tx, req.ServerGroupIds, userId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -110,7 +126,7 @@ func (this *ServerGroupService) UpdateServerGroupOrders(ctx context.Context, req
|
|||||||
// FindEnabledServerGroup 查找单个分组信息
|
// FindEnabledServerGroup 查找单个分组信息
|
||||||
func (this *ServerGroupService) FindEnabledServerGroup(ctx context.Context, req *pb.FindEnabledServerGroupRequest) (*pb.FindEnabledServerGroupResponse, error) {
|
func (this *ServerGroupService) FindEnabledServerGroup(ctx context.Context, req *pb.FindEnabledServerGroupRequest) (*pb.FindEnabledServerGroupResponse, error) {
|
||||||
// 校验请求
|
// 校验请求
|
||||||
_, err := this.ValidateAdmin(ctx, 0)
|
_, userId, err := this.ValidateAdminAndUser(ctx, 0, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -127,6 +143,13 @@ func (this *ServerGroupService) FindEnabledServerGroup(ctx context.Context, req
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查用户权限
|
||||||
|
if userId > 0 && int64(group.UserId) != userId {
|
||||||
|
return &pb.FindEnabledServerGroupResponse{
|
||||||
|
ServerGroup: nil,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
return &pb.FindEnabledServerGroupResponse{
|
return &pb.FindEnabledServerGroupResponse{
|
||||||
ServerGroup: &pb.ServerGroup{
|
ServerGroup: &pb.ServerGroup{
|
||||||
Id: int64(group.Id),
|
Id: int64(group.Id),
|
||||||
|
|||||||
Reference in New Issue
Block a user