73 lines
1.7 KiB
Go
73 lines
1.7 KiB
Go
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
|
//go:build plus
|
|
// +build plus
|
|
|
|
package services
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"errors"
|
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
|
|
"github.com/iwind/TeaGo/dbs"
|
|
)
|
|
|
|
// UpdateServerUAM 修改服务UAM设置
|
|
func (this *ServerService) UpdateServerUAM(ctx context.Context, req *pb.UpdateServerUAMRequest) (*pb.RPCSuccess, error) {
|
|
_, userId, err := this.ValidateAdminAndUser(ctx, true)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var tx *dbs.Tx
|
|
if userId > 0 {
|
|
err = models.SharedServerDAO.CheckUserServer(tx, userId, req.ServerId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
var config = &serverconfigs.UAMConfig{}
|
|
err = json.Unmarshal(req.UamJSON, config)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = config.Init()
|
|
if err != nil {
|
|
return nil, errors.New("valid uam config failed: " + err.Error())
|
|
}
|
|
|
|
err = models.SharedServerDAO.UpdateServerUAM(tx, req.ServerId, config)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return this.Success()
|
|
}
|
|
|
|
// FindEnabledServerUAM 查找服务UAM设置
|
|
func (this *ServerService) FindEnabledServerUAM(ctx context.Context, req *pb.FindEnabledServerUAMRequest) (*pb.FindEnabledServerUAMResponse, error) {
|
|
_, userId, err := this.ValidateAdminAndUser(ctx, true)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var tx *dbs.Tx
|
|
if userId > 0 {
|
|
err = models.SharedServerDAO.CheckUserServer(tx, userId, req.ServerId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
uamJSON, err := models.SharedServerDAO.FindServerUAM(tx, req.ServerId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &pb.FindEnabledServerUAMResponse{
|
|
UamJSON: uamJSON,
|
|
}, nil
|
|
}
|