diff --git a/apps/api/app/api/routes/titles.py b/apps/api/app/api/routes/titles.py index c532e8f46..148c4913d 100644 --- a/apps/api/app/api/routes/titles.py +++ b/apps/api/app/api/routes/titles.py @@ -51,7 +51,7 @@ def _to_response(item) -> TitleLibraryItemResponse: def _get_user_plan(user_id: str, user_repository: UserRepository) -> str: - user = user_repository.get_by_id(user_id) + user = user_repository.find_by_id(user_id) if user is None: return "free" return getattr(user, "subscription_plan", "free") or "free" diff --git a/apps/api/app/api/routes/voices.py b/apps/api/app/api/routes/voices.py index 7851ea02c..2bf263460 100644 --- a/apps/api/app/api/routes/voices.py +++ b/apps/api/app/api/routes/voices.py @@ -55,7 +55,7 @@ def _to_response(item) -> VoiceLibraryItemResponse: def _get_user_plan(user_id: str, user_repository: UserRepository) -> str: - user = user_repository.get_by_id(user_id) + user = user_repository.find_by_id(user_id) if user is None: return "free" return getattr(user, "subscription_plan", "free") or "free" diff --git a/apps/api/main.py b/apps/api/main.py index 898344f29..64a2bcf7c 100644 --- a/apps/api/main.py +++ b/apps/api/main.py @@ -40,8 +40,8 @@ else: # In production, filter out any wildcard "*" origins allow_origins = [origin for origin in settings.CORS_ORIGINS if origin != "*"] if not allow_origins: - # Default to production domain if no valid origins configured - allow_origins = ["https://xiaoxiajianji.com"] + # Default to production domains if no valid origins configured + allow_origins = ["https://xiaoxiajianji.com", "https://saas.xiaoxiajianji.com"] app.add_middleware( CORSMiddleware, diff --git a/packages/adapters/sqlalchemy_impl/project_repository.py b/packages/adapters/sqlalchemy_impl/project_repository.py index 963fd0681..fbd4795fd 100644 --- a/packages/adapters/sqlalchemy_impl/project_repository.py +++ b/packages/adapters/sqlalchemy_impl/project_repository.py @@ -54,12 +54,13 @@ class SQLAlchemyProjectRepository: def find_accessible_projects(self, user_id: str) -> list[Project]: """查找用户可访问的所有项目(自己拥有的 + 被共享的)""" - from sqlalchemy import or_ - + from sqlalchemy import or_, cast + from sqlalchemy.dialects.postgresql import JSONB + models = self.session.query(ProjectModel).filter( or_( ProjectModel.owner_user_id == user_id, - ProjectModel.shared_users.contains([user_id]) + cast(ProjectModel.shared_users, JSONB).contains([user_id]) ) ).all() return [self._to_entity(model) for model in models]