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登录
|
// UserQQLogin 初始化QQ登录
|
||||||
func UserQQLogin(c *gin.Context) {
|
func UserQQLogin(c *gin.Context) {
|
||||||
// 新建绑定
|
// 新建绑定
|
||||||
|
|
|
@ -105,8 +105,14 @@ func InitMasterRouter() *gin.Engine {
|
||||||
user.POST("session", controllers.UserLogin)
|
user.POST("session", controllers.UserLogin)
|
||||||
// 用户注册
|
// 用户注册
|
||||||
user.POST("", middleware.IsFunctionEnabled("register_enabled"), controllers.UserRegister)
|
user.POST("", middleware.IsFunctionEnabled("register_enabled"), controllers.UserRegister)
|
||||||
// 用户登录
|
// 用二步验证户登录
|
||||||
user.POST("2fa", controllers.User2FALogin)
|
user.POST("2fa", controllers.User2FALogin)
|
||||||
|
// 邮件激活
|
||||||
|
user.GET("activate/:id",
|
||||||
|
middleware.SignRequired(),
|
||||||
|
middleware.HashID(hashid.UserID),
|
||||||
|
controllers.UserActivate,
|
||||||
|
)
|
||||||
// 初始化QQ登录
|
// 初始化QQ登录
|
||||||
user.POST("qq", controllers.UserQQLogin)
|
user.POST("qq", controllers.UserQQLogin)
|
||||||
// WebAuthn登陆初始化
|
// WebAuthn登陆初始化
|
||||||
|
|
|
@ -91,3 +91,23 @@ func (service *UserRegisterService) Register(c *gin.Context) serializer.Response
|
||||||
|
|
||||||
return 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