增加用户系统界面管理、用户可以设置关联集群

This commit is contained in:
GoEdgeLab
2020-12-16 15:49:15 +08:00
parent 041ead3d7f
commit ee549b945d
30 changed files with 411 additions and 312 deletions

View File

@@ -9,17 +9,17 @@ import (
"reflect"
)
var sharedUIConfig *systemconfigs.AdminUIConfig = nil
var sharedAdminUIConfig *systemconfigs.AdminUIConfig = nil
const (
UISettingName = "adminUIConfig"
AdminUISettingName = "adminUIConfig"
)
func LoadUIConfig() (*systemconfigs.AdminUIConfig, error) {
func LoadAdminUIConfig() (*systemconfigs.AdminUIConfig, error) {
locker.Lock()
defer locker.Unlock()
config, err := loadUIConfig()
config, err := loadAdminUIConfig()
if err != nil {
return nil, err
}
@@ -28,7 +28,7 @@ func LoadUIConfig() (*systemconfigs.AdminUIConfig, error) {
return &v, nil
}
func UpdateUIConfig(uiConfig *systemconfigs.AdminUIConfig) error {
func UpdateAdminUIConfig(uiConfig *systemconfigs.AdminUIConfig) error {
locker.Lock()
defer locker.Unlock()
@@ -41,48 +41,48 @@ func UpdateUIConfig(uiConfig *systemconfigs.AdminUIConfig) error {
return err
}
_, err = rpcClient.SysSettingRPC().UpdateSysSetting(rpcClient.Context(0), &pb.UpdateSysSettingRequest{
Code: UISettingName,
Code: AdminUISettingName,
ValueJSON: valueJSON,
})
if err != nil {
return err
}
sharedUIConfig = uiConfig
sharedAdminUIConfig = uiConfig
return nil
}
func loadUIConfig() (*systemconfigs.AdminUIConfig, error) {
if sharedUIConfig != nil {
return sharedUIConfig, nil
func loadAdminUIConfig() (*systemconfigs.AdminUIConfig, error) {
if sharedAdminUIConfig != nil {
return sharedAdminUIConfig, nil
}
var rpcClient, err = rpc.SharedRPC()
if err != nil {
return nil, err
}
resp, err := rpcClient.SysSettingRPC().ReadSysSetting(rpcClient.Context(0), &pb.ReadSysSettingRequest{
Code: UISettingName,
Code: AdminUISettingName,
})
if err != nil {
return nil, err
}
if len(resp.ValueJSON) == 0 {
sharedUIConfig = defaultUIConfig()
return sharedUIConfig, nil
sharedAdminUIConfig = defaultAdminUIConfig()
return sharedAdminUIConfig, nil
}
config := &systemconfigs.AdminUIConfig{}
err = json.Unmarshal(resp.ValueJSON, config)
if err != nil {
logs.Println("[UI_MANAGER]" + err.Error())
sharedUIConfig = defaultUIConfig()
return sharedUIConfig, nil
sharedAdminUIConfig = defaultAdminUIConfig()
return sharedAdminUIConfig, nil
}
sharedUIConfig = config
return sharedUIConfig, nil
sharedAdminUIConfig = config
return sharedAdminUIConfig, nil
}
func defaultUIConfig() *systemconfigs.AdminUIConfig {
func defaultAdminUIConfig() *systemconfigs.AdminUIConfig {
return &systemconfigs.AdminUIConfig{
ProductName: "GoEdge",
AdminSystemName: "GoEdge管理员系统",

View File

@@ -0,0 +1,92 @@
package configloaders
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAdmin/internal/rpc"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
"github.com/iwind/TeaGo/logs"
"reflect"
)
var sharedUserUIConfig *systemconfigs.UserUIConfig = nil
const (
UserUISettingName = "userUIConfig"
)
func LoadUserUIConfig() (*systemconfigs.UserUIConfig, error) {
locker.Lock()
defer locker.Unlock()
config, err := loadUserUIConfig()
if err != nil {
return nil, err
}
v := reflect.Indirect(reflect.ValueOf(config)).Interface().(systemconfigs.UserUIConfig)
return &v, nil
}
func UpdateUserUIConfig(uiConfig *systemconfigs.UserUIConfig) error {
locker.Lock()
defer locker.Unlock()
var rpcClient, err = rpc.SharedRPC()
if err != nil {
return err
}
valueJSON, err := json.Marshal(uiConfig)
if err != nil {
return err
}
_, err = rpcClient.SysSettingRPC().UpdateSysSetting(rpcClient.Context(0), &pb.UpdateSysSettingRequest{
Code: UserUISettingName,
ValueJSON: valueJSON,
})
if err != nil {
return err
}
sharedUserUIConfig = uiConfig
return nil
}
func loadUserUIConfig() (*systemconfigs.UserUIConfig, error) {
if sharedUserUIConfig != nil {
return sharedUserUIConfig, nil
}
var rpcClient, err = rpc.SharedRPC()
if err != nil {
return nil, err
}
resp, err := rpcClient.SysSettingRPC().ReadSysSetting(rpcClient.Context(0), &pb.ReadSysSettingRequest{
Code: UserUISettingName,
})
if err != nil {
return nil, err
}
if len(resp.ValueJSON) == 0 {
sharedUserUIConfig = defaultUserUIConfig()
return sharedUserUIConfig, nil
}
config := &systemconfigs.UserUIConfig{}
err = json.Unmarshal(resp.ValueJSON, config)
if err != nil {
logs.Println("[UI_MANAGER]" + err.Error())
sharedUserUIConfig = defaultUserUIConfig()
return sharedUserUIConfig, nil
}
sharedUserUIConfig = config
return sharedUserUIConfig, nil
}
func defaultUserUIConfig() *systemconfigs.UserUIConfig {
return &systemconfigs.UserUIConfig{
ProductName: "GoEdge",
UserSystemName: "GoEdge用户系统",
ShowOpenSourceInfo: true,
ShowVersion: true,
}
}