2020-10-02 17:22:32 +08:00
|
|
|
|
package services
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"context"
|
|
|
|
|
|
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
|
2022-09-10 17:00:54 +08:00
|
|
|
|
"github.com/TeaOSLab/EdgeAPI/internal/errors"
|
2020-10-02 17:22:32 +08:00
|
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
2022-09-10 17:00:54 +08:00
|
|
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
|
|
|
|
|
|
"github.com/iwind/TeaGo/lists"
|
2020-10-02 17:22:32 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type SysSettingService struct {
|
2020-11-24 15:02:44 +08:00
|
|
|
|
BaseService
|
2020-10-02 17:22:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2021-07-11 18:05:57 +08:00
|
|
|
|
// UpdateSysSetting 更改配置
|
2020-11-13 18:22:22 +08:00
|
|
|
|
func (this *SysSettingService) UpdateSysSetting(ctx context.Context, req *pb.UpdateSysSettingRequest) (*pb.RPCSuccess, error) {
|
2020-10-02 17:22:32 +08:00
|
|
|
|
// 校验请求
|
2022-09-10 17:00:54 +08:00
|
|
|
|
// 不要允许用户修改
|
|
|
|
|
|
_, err := this.ValidateAdmin(ctx)
|
2020-10-02 17:22:32 +08:00
|
|
|
|
if err != nil {
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-07-22 15:05:30 +08:00
|
|
|
|
var tx = this.NullTx()
|
2021-01-01 23:31:30 +08:00
|
|
|
|
|
|
|
|
|
|
err = models.SharedSysSettingDAO.UpdateSetting(tx, req.Code, req.ValueJSON)
|
2020-10-02 17:22:32 +08:00
|
|
|
|
if err != nil {
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
}
|
2020-11-24 15:02:44 +08:00
|
|
|
|
|
|
|
|
|
|
return this.Success()
|
2020-10-02 17:22:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2021-07-11 18:05:57 +08:00
|
|
|
|
// ReadSysSetting 读取配置
|
2020-10-02 17:22:32 +08:00
|
|
|
|
func (this *SysSettingService) ReadSysSetting(ctx context.Context, req *pb.ReadSysSettingRequest) (*pb.ReadSysSettingResponse, error) {
|
|
|
|
|
|
// 校验请求
|
2022-09-10 17:00:54 +08:00
|
|
|
|
_, userId, err := this.ValidateAdminAndUser(ctx)
|
2020-10-02 17:22:32 +08:00
|
|
|
|
if err != nil {
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-07-22 15:05:30 +08:00
|
|
|
|
var tx = this.NullTx()
|
2021-01-01 23:31:30 +08:00
|
|
|
|
|
2022-09-10 17:00:54 +08:00
|
|
|
|
// 检查权限
|
|
|
|
|
|
if userId > 0 {
|
|
|
|
|
|
// TODO 限制用户只能为专有用户,比如1_000_000_000
|
|
|
|
|
|
if !lists.ContainsString([]string{
|
|
|
|
|
|
systemconfigs.SettingCodeUserRegisterConfig,
|
|
|
|
|
|
systemconfigs.SettingCodeUserServerConfig,
|
|
|
|
|
|
systemconfigs.SettingCodeUserUIConfig,
|
|
|
|
|
|
systemconfigs.SettingCodeNSUserConfig,
|
|
|
|
|
|
systemconfigs.SettingCodeUserOrderConfig,
|
2022-09-13 10:49:58 +08:00
|
|
|
|
systemconfigs.SettingCodeServerGlobalConfig,
|
2022-09-10 17:00:54 +08:00
|
|
|
|
}, req.Code) {
|
|
|
|
|
|
return nil, errors.New("can not read setting code '" + req.Code + "'")
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-01-01 23:31:30 +08:00
|
|
|
|
valueJSON, err := models.SharedSysSettingDAO.ReadSetting(tx, req.Code)
|
2020-10-02 17:22:32 +08:00
|
|
|
|
if err != nil {
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return &pb.ReadSysSettingResponse{ValueJSON: valueJSON}, nil
|
|
|
|
|
|
}
|