优化大版本
This commit is contained in:
@@ -26,7 +26,7 @@ class Team(models.Model):
|
||||
class User(models.Model):
|
||||
role = models.ManyToManyField(role)
|
||||
department =models.ManyToManyField(Department) # 归属部门
|
||||
username = models.CharField(max_length=100, unique=True) # 姓名
|
||||
username = models.CharField(max_length=100) # 姓名(移除unique=True,允许软删除后重新注册同名用户)
|
||||
account = models.CharField(max_length=100) # 账号
|
||||
password = models.CharField(max_length=100) # 密码
|
||||
ethnicity = models.CharField(max_length=100) # 名族
|
||||
|
||||
@@ -74,7 +74,7 @@ class CreateUserView(APIView):
|
||||
'code': 1
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 检查用户名是否已存在(username字段有唯一性约束)
|
||||
# 检查用户名是否已被未软删除的用户使用(允许软删除后重新注册同名用户)
|
||||
if User.objects.filter(username=username, is_deleted=False).exists():
|
||||
return Response({'status': 'error', 'message': '用户名已存在,不能重复', 'code': 1},
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
@@ -454,7 +454,7 @@ class PersonnelDetailsView(APIView):
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
token = request.META.get('token')
|
||||
user = User.objects.prefetch_related('role', 'department').get(token=token)
|
||||
user = User.objects.prefetch_related('role', 'department').get(token=token, is_deleted=False)
|
||||
|
||||
# 如果是admin用户,直接返回最高权限标识
|
||||
if user.username == 'admin' or user.account == 'admin':
|
||||
@@ -552,7 +552,7 @@ class PersonnelListView(APIView):
|
||||
if not all([page, per_page]):
|
||||
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
Q_obj = Q()
|
||||
Q_obj = Q(is_deleted=False) # 只查询未软删除的用户
|
||||
if username:
|
||||
Q_obj &= Q(username__icontains=username)
|
||||
if department:
|
||||
|
||||
@@ -30,7 +30,7 @@ class registration(APIView):
|
||||
party_username = request.data.get('party_username')
|
||||
description = request.data.get('description')
|
||||
Undertaker = request.data.get('Undertaker')
|
||||
user = User.objects.get(token=token).username
|
||||
user = User.objects.get(token=token, is_deleted=False).username
|
||||
if not all([times, description, Undertaker]):
|
||||
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
@@ -1151,7 +1151,7 @@ class Log(APIView):
|
||||
|
||||
if not all([id, content]):
|
||||
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
|
||||
user = User.objects.get(token=token)
|
||||
user = User.objects.get(token=token, is_deleted=False)
|
||||
now = datetime.now()
|
||||
date_str = now.strftime('%Y-%m-%d')
|
||||
Caselog.objects.create(
|
||||
@@ -1287,7 +1287,7 @@ class Application(APIView):
|
||||
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
|
||||
now = datetime.now()
|
||||
date_str = now.strftime('%Y-%m-%d')
|
||||
user = User.objects.get(token=token)
|
||||
user = User.objects.get(token=token, is_deleted=False)
|
||||
sea = SealApplication.objects.create(
|
||||
Printingpurpose=Printingpurpose,
|
||||
CaseNumber=CaseNumber,
|
||||
@@ -1732,7 +1732,7 @@ class bulletin(APIView):
|
||||
if state == "置顶":
|
||||
bol = 1
|
||||
|
||||
user = User.objects.get(token=token).username
|
||||
user = User.objects.get(token=token, is_deleted=False).username
|
||||
Announcement.objects.create(
|
||||
title=title,
|
||||
content=content,
|
||||
@@ -1818,7 +1818,7 @@ class EditBulletin(APIView):
|
||||
# 获取用户信息(如果 token 存在)
|
||||
if token:
|
||||
try:
|
||||
user = User.objects.get(token=token).username
|
||||
user = User.objects.get(token=token, is_deleted=False).username
|
||||
except User.DoesNotExist:
|
||||
# 如果用户不存在,使用原有用户名
|
||||
user = ann.username
|
||||
@@ -2403,23 +2403,23 @@ class TransferCase(APIView):
|
||||
'code': 1
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 检查原承办人员是否存在
|
||||
# 检查原承办人员是否存在(排除软删除用户)
|
||||
try:
|
||||
old_user = User.objects.get(username=old_undertaker)
|
||||
old_user = User.objects.get(username=old_undertaker, is_deleted=False)
|
||||
except User.DoesNotExist:
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': '原承办人员不存在',
|
||||
'message': '原承办人员不存在或已被删除',
|
||||
'code': 1
|
||||
}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
# 检查新承办人员是否存在
|
||||
# 检查新承办人员是否存在(排除软删除用户)
|
||||
try:
|
||||
new_user = User.objects.get(username=new_undertaker)
|
||||
new_user = User.objects.get(username=new_undertaker, is_deleted=False)
|
||||
except User.DoesNotExist:
|
||||
return Response({
|
||||
'status': 'error',
|
||||
'message': '新承办人员不存在',
|
||||
'message': '新承办人员不存在或已被删除',
|
||||
'code': 1
|
||||
}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ class JWTAuthenticationMiddleware(MiddlewareMixin):
|
||||
content_type='application/json',
|
||||
headers={'Access-Control-Allow-Origin': '*'}
|
||||
)
|
||||
User.objects.get(token=token)
|
||||
User.objects.get(token=token, is_deleted=False)
|
||||
except User.DoesNotExist:
|
||||
# 标记为未授权请求
|
||||
request.META['_is_unauthorized'] = True
|
||||
|
||||
10
添加权限.py
10
添加权限.py
@@ -35,21 +35,21 @@ def grant_admin_all_permissions():
|
||||
为admin用户添加所有权限
|
||||
"""
|
||||
try:
|
||||
# 步骤1: 查找admin用户
|
||||
# 步骤1: 查找admin用户(排除软删除用户)
|
||||
# 先尝试通过account字段查找
|
||||
admin_user = None
|
||||
try:
|
||||
admin_user = User.objects.get(account='admin')
|
||||
admin_user = User.objects.get(account='admin', is_deleted=False)
|
||||
print(f"✓ 找到admin用户(通过account字段): ID={admin_user.id}, username={admin_user.username}, account={admin_user.account}")
|
||||
except User.DoesNotExist:
|
||||
# 如果account不是'admin',尝试通过username查找
|
||||
try:
|
||||
admin_user = User.objects.get(username='admin')
|
||||
admin_user = User.objects.get(username='admin', is_deleted=False)
|
||||
print(f"✓ 找到admin用户(通过username字段): ID={admin_user.id}, username={admin_user.username}, account={admin_user.account}")
|
||||
except User.DoesNotExist:
|
||||
print("✗ 错误:找不到account或username为'admin'的用户")
|
||||
print("✗ 错误:找不到account或username为'admin'的未删除用户")
|
||||
print("\n请检查数据库中的用户数据:")
|
||||
users = User.objects.all()[:5]
|
||||
users = User.objects.filter(is_deleted=False)[:5]
|
||||
for u in users:
|
||||
print(f" - ID: {u.id}, username: {u.username}, account: {u.account}")
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user