mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-11-04 13:16:02 +08:00 
			
		
		
		
	Feat: user activation by Email
This commit is contained in:
		@ -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}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user