1.4.5.2
This commit is contained in:
116
EdgeUser/internal/web/actions/default/settings/profile/index.go
Normal file
116
EdgeUser/internal/web/actions/default/settings/profile/index.go
Normal file
@@ -0,0 +1,116 @@
|
||||
package profile
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
"github.com/TeaOSLab/EdgeUser/internal/configloaders"
|
||||
"github.com/TeaOSLab/EdgeUser/internal/web/actions/actionutils"
|
||||
"github.com/iwind/TeaGo/actions"
|
||||
"github.com/iwind/TeaGo/maps"
|
||||
timeutil "github.com/iwind/TeaGo/utils/time"
|
||||
)
|
||||
|
||||
type IndexAction struct {
|
||||
actionutils.ParentAction
|
||||
}
|
||||
|
||||
func (this *IndexAction) Init() {
|
||||
this.Nav("", "", "")
|
||||
}
|
||||
|
||||
func (this *IndexAction) RunGet(params struct{}) {
|
||||
userResp, err := this.RPC().UserRPC().FindEnabledUser(this.UserContext(), &pb.FindEnabledUserRequest{UserId: this.UserId()})
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
var user = userResp.User
|
||||
if user == nil {
|
||||
this.NotFound("user", this.UserId())
|
||||
return
|
||||
}
|
||||
|
||||
this.Data["user"] = maps.Map{
|
||||
"fullname": user.Fullname,
|
||||
"email": user.Email,
|
||||
"verifiedEmail": user.VerifiedEmail,
|
||||
"mobile": user.Mobile,
|
||||
"verifiedMobile": user.VerifiedMobile,
|
||||
"isVerified": user.IsVerified,
|
||||
"isRejected": user.IsRejected,
|
||||
"rejectReason": user.RejectReason,
|
||||
}
|
||||
|
||||
// 邮箱是否需要激活
|
||||
registerConfig, err := configloaders.LoadRegisterConfig()
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
this.Data["emailRequireVerification"] = registerConfig != nil && registerConfig.EmailVerification.IsOn
|
||||
|
||||
// 现在正等待激活的邮箱
|
||||
latestEmailVerificationResp, err := this.RPC().UserEmailVerificationRPC().FindLatestUserEmailVerification(this.UserContext(), &pb.FindLatestUserEmailVerificationRequest{})
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
var latestEmailVerification = latestEmailVerificationResp.UserEmailVerification
|
||||
if latestEmailVerification == nil {
|
||||
this.Data["latestEmailVerification"] = nil
|
||||
} else {
|
||||
this.Data["latestEmailVerification"] = maps.Map{
|
||||
"email": latestEmailVerification.Email,
|
||||
"expiresTime": timeutil.FormatTime("Y-m-d H:i:s", latestEmailVerification.ExpiresAt),
|
||||
"isSent": latestEmailVerification.IsSent,
|
||||
}
|
||||
}
|
||||
|
||||
// 手机号码是否需要激活
|
||||
this.Data["mobileRequireVerification"] = registerConfig != nil && registerConfig.MobileVerification.IsOn
|
||||
|
||||
this.Show()
|
||||
}
|
||||
|
||||
func (this *IndexAction) RunPost(params struct {
|
||||
Fullname string
|
||||
Mobile string
|
||||
Email string
|
||||
|
||||
Must *actions.Must
|
||||
}) {
|
||||
defer this.CreateLogInfo(codes.User_LogUpdateUserProfile)
|
||||
|
||||
var must = params.Must
|
||||
|
||||
// 手机号
|
||||
must.Field("mobile", params.Mobile).
|
||||
Require("请输入手机号").
|
||||
Mobile("请输入正确的手机号")
|
||||
|
||||
// 邮箱
|
||||
must.Field("email", params.Email).
|
||||
Require("请输入邮箱").
|
||||
Email("请输入正确的邮箱")
|
||||
|
||||
// 全名
|
||||
must.Field("fullname", params.Fullname).
|
||||
Require("请输入姓名或者公司名称")
|
||||
|
||||
params.Must.
|
||||
Field("fullname", params.Fullname).
|
||||
Require("请输入你的姓名")
|
||||
|
||||
_, err := this.RPC().UserRPC().UpdateUserInfo(this.UserContext(), &pb.UpdateUserInfoRequest{
|
||||
UserId: this.UserId(),
|
||||
Fullname: params.Fullname,
|
||||
Mobile: params.Mobile,
|
||||
Email: params.Email,
|
||||
})
|
||||
if err != nil {
|
||||
this.ErrorPage(err)
|
||||
return
|
||||
}
|
||||
|
||||
this.Success()
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package profile
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeUser/internal/web/actions/default/settings/settingutils"
|
||||
"github.com/TeaOSLab/EdgeUser/internal/web/helpers"
|
||||
"github.com/iwind/TeaGo"
|
||||
)
|
||||
|
||||
func init() {
|
||||
TeaGo.BeforeStart(func(server *TeaGo.Server) {
|
||||
server.
|
||||
Helper(helpers.NewUserMustAuth("")).
|
||||
Helper(settingutils.NewHelper("profile")).
|
||||
Prefix("/settings/profile").
|
||||
GetPost("", new(IndexAction)).
|
||||
EndAll()
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user