This commit is contained in:
27942
2025-12-26 14:01:07 +08:00
parent 7d91fff8c4
commit e594b3e628
2 changed files with 14 additions and 6 deletions

View File

@@ -105,7 +105,7 @@ class Schedule(models.Model):
class role(models.Model):
RoleName = models.CharField(max_length=100) # 角色名称
permissionId = models.CharField(max_length=100) # 权限
permissionId = models.CharField(max_length=1000) # 权限
remark = models.CharField(max_length=200) # 备注

View File

@@ -1927,7 +1927,11 @@ class modifypermissions(APIView):
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
permissionId = ast.literal_eval(permissionId)
ro = role.objects.get(id=id)
ro.permissionId = permissionId
# Convert list to compact comma-separated string format to save space
if isinstance(permissionId, list):
ro.permissionId = ','.join(map(str, permissionId))
else:
ro.permissionId = str(permissionId)
ro.save(update_fields=['permissionId'])
return Response({'message': '权限修改成功', 'code': 0}, status=status.HTTP_200_OK)
@@ -1954,10 +1958,14 @@ class getRolePermissions(APIView):
# 解析权限ID列表
try:
if ro.permissionId:
permission_ids = ast.literal_eval(ro.permissionId)
# 确保返回的是列表
if not isinstance(permission_ids, list):
permission_ids = []
# Try to parse as comma-separated format first (new format)
if ',' in ro.permissionId and not ro.permissionId.strip().startswith('['):
permission_ids = [int(x.strip()) for x in ro.permissionId.split(',') if x.strip()]
else:
# Fall back to ast.literal_eval for backward compatibility
permission_ids = ast.literal_eval(ro.permissionId)
if not isinstance(permission_ids, list):
permission_ids = []
else:
permission_ids = []
except (ValueError, SyntaxError):