forked from open-webui/open-webui
		
	Merge pull request #538 from Shiyinq/refactor-signup
feat: add guard clause to improve signup process
This commit is contained in:
		
						commit
						95da5ab8e0
					
				
					 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) | @router.post("/signup", response_model=SigninResponse) | ||||||
| async def signup(request: Request, form_data: SignupForm): | async def signup(request: Request, form_data: SignupForm): | ||||||
|     if request.app.state.ENABLE_SIGNUP: |     if not 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: |  | ||||||
|         raise HTTPException(400, detail=ERROR_MESSAGES.ACCESS_PROHIBITED) |         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 | # ToggleSignUp | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek