Fix forgot password for invalid user (#1999)
- fix validation error if user doesn'r exist - always return success even if user doesn't exist for security reasons - add test for forgot password endpoint
This commit is contained in:
		
							parent
							
								
									0b14be896b
								
							
						
					
					
						commit
						41d43ae249
					
				| @ -606,9 +606,7 @@ def init_auth_router(user_manager: UserManager) -> APIRouter: | ||||
|         email: EmailStr = Body(..., embed=True), | ||||
|     ): | ||||
|         user = await user_manager.get_by_email(email) | ||||
|         if not user: | ||||
|             return None | ||||
| 
 | ||||
|         if user: | ||||
|             await user_manager.forgot_password(user, request) | ||||
|         return {"success": True} | ||||
| 
 | ||||
|  | ||||
| @ -422,6 +422,23 @@ def test_user_change_role(admin_auth_headers, default_org_id): | ||||
|     assert r.json()["updated"] == True | ||||
| 
 | ||||
| 
 | ||||
| def test_forgot_password(): | ||||
|     r = requests.post( | ||||
|         f"{API_PREFIX}/auth/forgot-password", | ||||
|         json={"email": "no-such-user@example.com"} | ||||
|     ) | ||||
|     # always return success for security reasons even if user doesn't exist | ||||
|     assert r.status_code == 202 | ||||
|     detail = r.json()["success"] == True | ||||
| 
 | ||||
|     r = requests.post( | ||||
|         f"{API_PREFIX}/auth/forgot-password", | ||||
|         json={"email": VALID_USER_EMAIL} | ||||
|     ) | ||||
|     assert r.status_code == 202 | ||||
|     detail = r.json()["success"] == True | ||||
| 
 | ||||
| 
 | ||||
| def test_reset_invalid_password(admin_auth_headers): | ||||
|     r = requests.put( | ||||
|         f"{API_PREFIX}/users/me/password-change", | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user