Spaces:
Runtime error
Runtime error
Mark-Lasfar commited on
Commit ·
4e9a771
1
Parent(s): bb73478
Update Model
Browse files- 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 |
-
|
|
|
|
|
|
|
|
|
|
| 97 |
if user is not None:
|
| 98 |
oauth_account.user_id = user.id
|
| 99 |
-
|
|
|
|
| 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 =
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
oauth_account.user_id = user.id
|
| 110 |
-
|
|
|
|
| 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)):
|