diff --git a/internal/web/actions/default/users/createPopup.go b/internal/web/actions/default/users/createPopup.go index 2f742d06..41f7ad6d 100644 --- a/internal/web/actions/default/users/createPopup.go +++ b/internal/web/actions/default/users/createPopup.go @@ -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 { diff --git a/web/views/@default/users/createPopup.html b/web/views/@default/users/createPopup.html index fa0455c9..b8e05733 100644 --- a/web/views/@default/users/createPopup.html +++ b/web/views/@default/users/createPopup.html @@ -38,6 +38,14 @@
用户发布的网站服务会自动部署到此集群。
+