Feat: user activation by Email
This commit is contained in:
parent
81d6988a50
commit
7027a96258
3 changed files with 38 additions and 1 deletions
|
@ -151,6 +151,17 @@ func User2FALogin(c *gin.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
// UserActivate 用户激活
|
||||
func UserActivate(c *gin.Context) {
|
||||
var service user.SettingService
|
||||
if err := c.ShouldBindUri(&service); err == nil {
|
||||
res := service.Activate(c)
|
||||
c.JSON(200, res)
|
||||
} else {
|
||||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
||||
|
||||
// UserQQLogin 初始化QQ登录
|
||||
func UserQQLogin(c *gin.Context) {
|
||||
// 新建绑定
|
||||
|
|
|
@ -105,8 +105,14 @@ func InitMasterRouter() *gin.Engine {
|
|||
user.POST("session", controllers.UserLogin)
|
||||
// 用户注册
|
||||
user.POST("", middleware.IsFunctionEnabled("register_enabled"), controllers.UserRegister)
|
||||
// 用户登录
|
||||
// 用二步验证户登录
|
||||
user.POST("2fa", controllers.User2FALogin)
|
||||
// 邮件激活
|
||||
user.GET("activate/:id",
|
||||
middleware.SignRequired(),
|
||||
middleware.HashID(hashid.UserID),
|
||||
controllers.UserActivate,
|
||||
)
|
||||
// 初始化QQ登录
|
||||
user.POST("qq", controllers.UserQQLogin)
|
||||
// WebAuthn登陆初始化
|
||||
|
|
|
@ -91,3 +91,23 @@ func (service *UserRegisterService) Register(c *gin.Context) serializer.Response
|
|||
|
||||
return serializer.Response{}
|
||||
}
|
||||
|
||||
// Activate 激活用户
|
||||
func (service *SettingService) Activate(c *gin.Context) serializer.Response {
|
||||
// 查找待激活用户
|
||||
uid, _ := c.Get("object_id")
|
||||
user, err := model.GetUserByID(uid.(uint))
|
||||
if err != nil {
|
||||
return serializer.Err(serializer.CodeNotFound, "用户不存在", err)
|
||||
}
|
||||
|
||||
// 检查状态
|
||||
if user.Status != model.NotActivicated {
|
||||
return serializer.Err(serializer.CodeNoPermissionErr, "该用户无法被激活", nil)
|
||||
}
|
||||
|
||||
// 激活用户
|
||||
user.SetStatus(model.Active)
|
||||
|
||||
return serializer.Response{Data: user.Email}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue