Files
EdgeAPI/internal/rpc/services/service_sys_setting.go

67 lines
1.7 KiB
Go
Raw Normal View History

2020-10-02 17:22:32 +08:00
package services
import (
"context"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
"github.com/TeaOSLab/EdgeAPI/internal/errors"
2020-10-02 17:22:32 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"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 更改配置
func (this *SysSettingService) UpdateSysSetting(ctx context.Context, req *pb.UpdateSysSettingRequest) (*pb.RPCSuccess, error) {
2020-10-02 17:22:32 +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()
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) {
// 校验请求
_, 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()
// 检查权限
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,
}, req.Code) {
return nil, errors.New("can not read setting code '" + req.Code + "'")
}
}
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
}