创建用户的时候,可以设置开通默认功能还是全部功能

This commit is contained in:
GoEdgeLab
2022-08-28 20:21:57 +08:00
parent 6ed4c358ec
commit 7cf0e96dc2
2 changed files with 71 additions and 11 deletions

View File

@@ -1,9 +1,12 @@
package users
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAdmin/internal/utils/numberutils"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/userconfigs"
"github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/maps"
"github.com/xlzd/gotp"
@@ -22,15 +25,16 @@ func (this *CreatePopupAction) RunGet(params struct{}) {
}
func (this *CreatePopupAction) RunPost(params struct {
Username string
Pass1 string
Pass2 string
Fullname string
Mobile string
Tel string
Email string
Remark string
ClusterId int64
Username string
Pass1 string
Pass2 string
Fullname string
Mobile string
Tel string
Email string
Remark string
ClusterId int64
FeaturesType string
// OTP
OtpOn bool
@@ -38,6 +42,12 @@ func (this *CreatePopupAction) RunPost(params struct {
Must *actions.Must
CSRF *actionutils.CSRF
}) {
var userId int64
defer func() {
this.CreateLogInfo("创建用户 %d", userId)
}()
params.Must.
Field("username", params.Username).
Require("请输入用户名").
@@ -97,9 +107,51 @@ func (this *CreatePopupAction) RunPost(params struct {
return
}
var userId = createResp.UserId
userId = createResp.UserId
defer this.CreateLogInfo("创建用户 %d", userId)
// 功能
if params.FeaturesType == "default" {
resp, err := this.RPC().SysSettingRPC().ReadSysSetting(this.AdminContext(), &pb.ReadSysSettingRequest{Code: systemconfigs.SettingCodeUserRegisterConfig})
if err != nil {
this.ErrorPage(err)
return
}
var config = userconfigs.DefaultUserRegisterConfig()
if len(resp.ValueJSON) > 0 {
err = json.Unmarshal(resp.ValueJSON, config)
if err != nil {
this.ErrorPage(err)
return
}
_, err = this.RPC().UserRPC().UpdateUserFeatures(this.AdminContext(), &pb.UpdateUserFeaturesRequest{
UserId: userId,
FeatureCodes: config.Features,
})
if err != nil {
this.ErrorPage(err)
return
}
}
} else if params.FeaturesType == "all" {
featuresResp, err := this.RPC().UserRPC().FindAllUserFeatureDefinitions(this.AdminContext(), &pb.FindAllUserFeatureDefinitionsRequest{})
if err != nil {
this.ErrorPage(err)
return
}
var featureCodes = []string{}
for _, def := range featuresResp.Features {
featureCodes = append(featureCodes, def.Code)
}
_, err = this.RPC().UserRPC().UpdateUserFeatures(this.AdminContext(), &pb.UpdateUserFeaturesRequest{
UserId: userId,
FeatureCodes: featureCodes,
})
if err != nil {
this.ErrorPage(err)
return
}
}
// OTP
if params.OtpOn {