Mark-Lasfar commited on
Commit
4e9a771
·
1 Parent(s): bb73478

Update Model

Browse files
Files changed (1) hide show
  1. api/auth.py +14 -5
api/auth.py CHANGED
@@ -85,7 +85,6 @@ class UserManager(IntegerIDMixin, BaseUserManager[User, int]):
85
  statement = select(OAuthAccount).where(
86
  (OAuthAccount.oauth_name == oauth_name) & (OAuthAccount.account_id == account_id)
87
  )
88
- # Use synchronous session directly
89
  result = self.user_db.session.execute(statement)
90
  existing_oauth_account = result.scalars().first()
91
 
@@ -93,21 +92,31 @@ class UserManager(IntegerIDMixin, BaseUserManager[User, int]):
93
  return await self.on_after_login(existing_oauth_account.user, request)
94
 
95
  if associate_by_email:
96
- user = await self.user_db.get_by_email(account_email)
 
 
 
97
  if user is not None:
98
  oauth_account.user_id = user.id
99
- await self.user_db.add_oauth_account(oauth_account)
 
100
  return await self.on_after_login(user, request)
101
 
 
102
  user_dict = {
103
  "email": account_email,
104
  "hashed_password": self.password_helper.hash("dummy_password"),
105
  "is_active": True,
106
  "is_verified": is_verified_by_default,
107
  }
108
- user = await self.user_db.create(user_dict)
 
 
 
 
109
  oauth_account.user_id = user.id
110
- await self.user_db.add_oauth_account(oauth_account)
 
111
  return await self.on_after_login(user, request)
112
 
113
  async def get_user_manager(user_db: SQLAlchemyUserDatabase = Depends(get_user_db)):
 
85
  statement = select(OAuthAccount).where(
86
  (OAuthAccount.oauth_name == oauth_name) & (OAuthAccount.account_id == account_id)
87
  )
 
88
  result = self.user_db.session.execute(statement)
89
  existing_oauth_account = result.scalars().first()
90
 
 
92
  return await self.on_after_login(existing_oauth_account.user, request)
93
 
94
  if associate_by_email:
95
+ # Synchronous query for get_by_email
96
+ statement = select(User).where(User.email == account_email)
97
+ result = self.user_db.session.execute(statement)
98
+ user = result.scalars().first()
99
  if user is not None:
100
  oauth_account.user_id = user.id
101
+ self.user_db.session.add(oauth_account)
102
+ self.user_db.session.commit()
103
  return await self.on_after_login(user, request)
104
 
105
+ # Create new user
106
  user_dict = {
107
  "email": account_email,
108
  "hashed_password": self.password_helper.hash("dummy_password"),
109
  "is_active": True,
110
  "is_verified": is_verified_by_default,
111
  }
112
+ user = User(**user_dict)
113
+ self.user_db.session.add(user)
114
+ self.user_db.session.commit()
115
+ self.user_db.session.refresh(user)
116
+
117
  oauth_account.user_id = user.id
118
+ self.user_db.session.add(oauth_account)
119
+ self.user_db.session.commit()
120
  return await self.on_after_login(user, request)
121
 
122
  async def get_user_manager(user_db: SQLAlchemyUserDatabase = Depends(get_user_db)):