fix(mail): UUIDField 查询传 User 实例返回空——filter(UserUUID=request.user) 改传 user.UserUUID(修复企业邮箱列表消失)

This commit is contained in:
TermiNexus committed 2026-08-15 12:48:10 +08:00
1 parent c8d4cd7fbf
commit 2ab4b7d9dc
3 files changed
+12 -12

No files matched your search

+1 -1
View File
@@ -229,7 +229,7 @@ def _VerifyGerpSession(request):
def _GetGiteaIdentity(user):
"""按 GERP 用户查 Gitea 绑定(GiteaLogin + Email),返回 dict 或 None。"""
from .models import UserGiteaAccount
rec = UserGiteaAccount.objects.filter(UserUUID=user, Status=1).first()
rec = UserGiteaAccount.objects.filter(UserUUID=user.UserUUID, Status=1).first()
if rec is None:
return None
return {'login': rec.GiteaLogin, 'email': rec.Email}
+5 -5
View File
@@ -126,7 +126,7 @@ class GiteaApplyView(ELTAuthenticatedAPIView):
return Response({'code': 1, 'msg': '无法识别当前用户'}, status=401)
# 每个用户最多一个 Gitea 账号
if UserGiteaAccount.objects.filter(UserUUID=request.user).exists():
if UserGiteaAccount.objects.filter(UserUUID=request.user.UserUUID).exists():
return Response({'code': 1, 'msg': '您已拥有 Gitea 账号,一个用户只能申请一个'}, status=400)
login = (request.data.get('GiteaLogin') or '').strip()
@@ -147,7 +147,7 @@ class GiteaApplyView(ELTAuthenticatedAPIView):
# 使用工作邮箱("我的邮箱"的 xxx@gvsds.com)注册 Gitea;
# 未申请企业邮箱则引导先申请
mailbox = UserMailbox.objects.filter(UserUUID=request.user, Status=1).first()
mailbox = UserMailbox.objects.filter(UserUUID=request.user.UserUUID, Status=1).first()
if mailbox is None:
return Response({'code': 1, 'msg': '请先申请企业邮箱,再申请 Gitea 账号'}, status=400)
email = mailbox.MailboxName
@@ -212,7 +212,7 @@ class GiteaMyAccountView(ELTAuthenticatedAPIView):
permission_classes = [IsAuthenticated, _GITEA_ACCESS]
def get(self, request):
acct = UserGiteaAccount.objects.filter(UserUUID=request.user).first()
acct = UserGiteaAccount.objects.filter(UserUUID=request.user.UserUUID).first()
session = GiteaApiClient.SessionConfig()
if acct is None:
return Response({'code': 0, 'data': {'Account': None, 'Session': session}})
@@ -238,7 +238,7 @@ class GiteaChangePasswordView(ELTAuthenticatedAPIView):
permission_classes = [IsAuthenticated, _GITEA_ACCESS]
def post(self, request):
acct = UserGiteaAccount.objects.filter(UserUUID=request.user).first()
acct = UserGiteaAccount.objects.filter(UserUUID=request.user.UserUUID).first()
if acct is None:
return Response({'code': 1, 'msg': '尚未申请 Gitea 账号'}, status=400)
new_password = request.data.get('NewPassword') or ''
@@ -262,7 +262,7 @@ class GiteaAvatarView(ELTAuthenticatedAPIView):
permission_classes = [IsAuthenticated, _GITEA_ACCESS]
def post(self, request):
acct = UserGiteaAccount.objects.filter(UserUUID=request.user).first()
acct = UserGiteaAccount.objects.filter(UserUUID=request.user.UserUUID).first()
if acct is None:
return Response({'code': 1, 'msg': '尚未申请 Gitea 账号'}, status=400)
password = request.data.get('Password') or ''
+6 -6
View File
@@ -225,7 +225,7 @@ class MailApplyView(ELTAuthenticatedAPIView):
return Response({'code': 1, 'msg': '无法识别当前用户'}, status=401)
# 每个用户最多申请 _MAILBOX_LIMIT 个邮箱
if UserMailbox.objects.filter(UserUUID=request.user).count() >= _MAILBOX_LIMIT:
if UserMailbox.objects.filter(UserUUID=request.user.UserUUID).count() >= _MAILBOX_LIMIT:
return Response({'code': 1, 'msg': f'邮箱数量已达上限(最多 {_MAILBOX_LIMIT} 个)'}, status=400)
mailbox_name = (request.data.get('MailboxName') or '').strip()
@@ -300,7 +300,7 @@ class MailChangePasswordView(ELTAuthenticatedAPIView):
def post(self, request):
mailbox_name = (request.data.get('MailboxName') or '').strip().lower()
queryset = UserMailbox.objects.filter(UserUUID=request.user, Status=1)
queryset = UserMailbox.objects.filter(UserUUID=request.user.UserUUID, Status=1)
mailbox = queryset.filter(MailboxName=mailbox_name).first() if mailbox_name else queryset.first()
if mailbox is None:
return Response({'code': 1, 'msg': '未找到该邮箱' if mailbox_name else '您尚未申请邮箱'}, status=404)
@@ -331,7 +331,7 @@ class MailMyMailboxView(ELTAuthenticatedAPIView):
def get(self, request):
session = StalwartMailManager.SessionConfig()
rows = list(UserMailbox.objects.filter(UserUUID=request.user).order_by('-CreateTime'))
rows = list(UserMailbox.objects.filter(UserUUID=request.user.UserUUID).order_by('-CreateTime'))
mailbox_list = [
{
'MailboxName': m.MailboxName,
@@ -417,7 +417,7 @@ class MailLoginView(ELTAuthenticatedAPIView):
def post(self, request):
mailbox_name = (request.data.get('MailboxName') or '').strip().lower()
queryset = UserMailbox.objects.filter(UserUUID=request.user, Status=1)
queryset = UserMailbox.objects.filter(UserUUID=request.user.UserUUID, Status=1)
mailbox = queryset.filter(MailboxName=mailbox_name).first() if mailbox_name else queryset.first()
if mailbox is None:
return Response({'code': 1, 'msg': '未找到该邮箱' if mailbox_name else '您尚未申请邮箱'}, status=404)
@@ -534,7 +534,7 @@ class MailContactsView(ELTAuthenticatedAPIView):
from django.db.models import Q
from gvsdsdk.model_utils import UUIDObj
from ..models import MailContact
qs = MailContact.objects.filter(UserUUID=request.user)
qs = MailContact.objects.filter(UserUUID=request.user.UserUUID)
search = (request.GET.get('Search') or request.GET.get('search') or '').strip()
if search:
qs = qs.filter(Q(ContactEmail__icontains=search) | Q(ContactName__icontains=search))
@@ -566,7 +566,7 @@ class MailContactsView(ELTAuthenticatedAPIView):
def delete(self, request):
from gvsdsdk.model_utils import UUIDObj
from ..models import MailContact
qs = MailContact.objects.filter(UserUUID=request.user)
qs = MailContact.objects.filter(UserUUID=request.user.UserUUID)
uuid_str = request.data.get('MailContactUUID') or ''
email = (request.data.get('ContactEmail') or '').strip().lower()
obj = None