forked from open-webui/open-webui
		
	feat: add guard clause to improve signup process
This commit is contained in:
		
							parent
							
								
									f079cb6b56
								
							
						
					
					
						commit
						6a63c94153
					
				
					 1 changed files with 32 additions and 34 deletions
				
			
		|  | @ -91,42 +91,40 @@ async def signin(form_data: SigninForm): | |||
| 
 | ||||
| @router.post("/signup", response_model=SigninResponse) | ||||
| async def signup(request: Request, form_data: SignupForm): | ||||
|     if request.app.state.ENABLE_SIGNUP: | ||||
|         if validate_email_format(form_data.email.lower()): | ||||
|             if not Users.get_user_by_email(form_data.email.lower()): | ||||
|                 try: | ||||
|                     role = "admin" if Users.get_num_users() == 0 else "pending" | ||||
|                     hashed = get_password_hash(form_data.password) | ||||
|                     user = Auths.insert_new_auth(form_data.email.lower(), | ||||
|                                                  hashed, form_data.name, role) | ||||
| 
 | ||||
|                     if user: | ||||
|                         token = create_token(data={"email": user.email}) | ||||
|                         # response.set_cookie(key='token', value=token, httponly=True) | ||||
| 
 | ||||
|                         return { | ||||
|                             "token": token, | ||||
|                             "token_type": "Bearer", | ||||
|                             "id": user.id, | ||||
|                             "email": user.email, | ||||
|                             "name": user.name, | ||||
|                             "role": user.role, | ||||
|                             "profile_image_url": user.profile_image_url, | ||||
|                         } | ||||
|                     else: | ||||
|                         raise HTTPException( | ||||
|                             500, detail=ERROR_MESSAGES.CREATE_USER_ERROR) | ||||
|                 except Exception as err: | ||||
|                     raise HTTPException(500, | ||||
|                                         detail=ERROR_MESSAGES.DEFAULT(err)) | ||||
|             else: | ||||
|                 raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN) | ||||
|         else: | ||||
|             raise HTTPException(400, | ||||
|                                 detail=ERROR_MESSAGES.INVALID_EMAIL_FORMAT) | ||||
|     else: | ||||
|     if not request.app.state.ENABLE_SIGNUP: | ||||
|         raise HTTPException(400, detail=ERROR_MESSAGES.ACCESS_PROHIBITED) | ||||
|          | ||||
|     if not validate_email_format(form_data.email.lower()): | ||||
|         raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_EMAIL_FORMAT) | ||||
|          | ||||
|     if Users.get_user_by_email(form_data.email.lower()): | ||||
|         raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN) | ||||
|          | ||||
|     try: | ||||
|         role = "admin" if Users.get_num_users() == 0 else "pending" | ||||
|         hashed = get_password_hash(form_data.password) | ||||
|         user = Auths.insert_new_auth(form_data.email.lower(), | ||||
|                                      hashed, form_data.name, role) | ||||
| 
 | ||||
|         if user: | ||||
|             token = create_token(data={"email": user.email}) | ||||
|             # response.set_cookie(key='token', value=token, httponly=True) | ||||
| 
 | ||||
|             return { | ||||
|                 "token": token, | ||||
|                 "token_type": "Bearer", | ||||
|                 "id": user.id, | ||||
|                 "email": user.email, | ||||
|                 "name": user.name, | ||||
|                 "role": user.role, | ||||
|                 "profile_image_url": user.profile_image_url, | ||||
|             } | ||||
|         else: | ||||
|             raise HTTPException( | ||||
|                 500, detail=ERROR_MESSAGES.CREATE_USER_ERROR) | ||||
|     except Exception as err: | ||||
|         raise HTTPException(500, | ||||
|                             detail=ERROR_MESSAGES.DEFAULT(err)) | ||||
| 
 | ||||
| ############################ | ||||
| # ToggleSignUp | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Shiyinq
						Shiyinq