From aad9afa9bbc1e756e27ee6c50fbf41050cfca98b Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Thu, 4 Dec 2025 11:56:37 +0800 Subject: [PATCH] Optimize the coupling of user social plugin (#950) --- backend/app/admin/crud/crud_user.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/app/admin/crud/crud_user.py b/backend/app/admin/crud/crud_user.py index f1ac4d4c..6d10bfc5 100644 --- a/backend/app/admin/crud/crud_user.py +++ b/backend/app/admin/crud/crud_user.py @@ -25,7 +25,7 @@ from backend.app.admin.schema.user import ( UpdateUserParam, ) from backend.app.admin.utils.password_security import get_hash_password -from backend.plugin.oauth2.crud.crud_user_social import user_social_dao +from backend.utils.import_parse import import_module_cached from backend.utils.serializers import select_join_serialize from backend.utils.timezone import timezone @@ -299,7 +299,13 @@ class CRUDUser(CRUDPlus[User]): user_role_stmt = delete(user_role).where(user_role.c.user_id == user_id) await db.execute(user_role_stmt) - await user_social_dao.delete_by_user_id(db, user_id) + try: + user_social = import_module_cached('backend.plugin.oauth2.crud.crud_user_social') + user_social_dao = user_social.user_social_dao + except (ImportError, AttributeError): + pass + else: + await user_social_dao.delete_by_user_id(db, user_id) return await self.delete_model(db, user_id)