Fix nagging double auth issue (#2960)

* fix nagging double auth issue

* ports
This commit is contained in:
pablodanswer
2024-10-28 12:44:45 -07:00
committed by GitHub
parent e05846db9f
commit e5af4681d3
2 changed files with 9 additions and 1 deletions

View File

@ -49,6 +49,7 @@ from httpx_oauth.oauth2 import BaseOAuth2
from httpx_oauth.oauth2 import OAuth2Token from httpx_oauth.oauth2 import OAuth2Token
from pydantic import BaseModel from pydantic import BaseModel
from sqlalchemy import select from sqlalchemy import select
from sqlalchemy import text
from sqlalchemy.orm import attributes from sqlalchemy.orm import attributes
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
@ -366,6 +367,10 @@ class UserManager(UUIDIDMixin, BaseUserManager[User, uuid.UUID]):
} }
user = await self.user_db.create(user_dict) user = await self.user_db.create(user_dict)
# Explicitly set the Postgres schema for this session to ensure
# OAuth account creation happens in the correct tenant schema
await db_session.execute(text(f'SET search_path = "{tenant_id}"'))
user = await self.user_db.add_oauth_account( user = await self.user_db.add_oauth_account(
user, oauth_account_dict user, oauth_account_dict
) )

View File

@ -57,7 +57,10 @@ async def get_user_count() -> int:
# Need to override this because FastAPI Users doesn't give flexibility for backend field creation logic in OAuth flow # Need to override this because FastAPI Users doesn't give flexibility for backend field creation logic in OAuth flow
class SQLAlchemyUserAdminDB(SQLAlchemyUserDatabase): class SQLAlchemyUserAdminDB(SQLAlchemyUserDatabase):
async def create(self, create_dict: Dict[str, Any]) -> UP: async def create(
self,
create_dict: Dict[str, Any],
) -> UP:
user_count = await get_user_count() user_count = await get_user_count()
if user_count == 0 or create_dict["email"] in get_default_admin_user_emails(): if user_count == 0 or create_dict["email"] in get_default_admin_user_emails():
create_dict["role"] = UserRole.ADMIN create_dict["role"] = UserRole.ADMIN