[Update] 修改用户serializer

This commit is contained in:
ibuler
2020-04-30 16:58:08 +08:00
parent b92137afd9
commit 6bb13a26f5
5 changed files with 20 additions and 5 deletions

View File

@@ -2,6 +2,7 @@
#
from common.utils import lazyproperty
from common.tree import TreeNodeSerializer
from django.db.models import QuerySet
from ..mixin import UserPermissionMixin
from ...utils import AssetPermissionUtil, ParserNode
from ...hands import Node, Asset
@@ -32,7 +33,8 @@ class UserNodeTreeMixin:
nodes_only_fields = ParserNode.nodes_only_fields
def parse_nodes_to_queryset(self, nodes):
nodes = nodes.only(*self.nodes_only_fields)
if isinstance(nodes, QuerySet):
nodes = nodes.only(*self.nodes_only_fields)
_queryset = []
for node in nodes:

View File

@@ -290,11 +290,12 @@ class AssetPermissionUtil(AssetPermissionUtilCacheMixin):
def parse_user_tree_to_full_tree(self, user_tree):
"""
经过前面两个动作,用户授权的节点已放到树上,但是树不是完整的,
这里要树构造成一个完整的树
这里要树构造成一个完整的树
"""
# 开始修正user_tree保证父节点都在树上
root_children = user_tree.children('')
for child in root_children:
# print("child: {}".format(child.identifier))
if child.identifier.isdigit():
continue
if child.identifier.startswith('-'):
@@ -303,6 +304,7 @@ class AssetPermissionUtil(AssetPermissionUtilCacheMixin):
child.identifier, with_self=False, deep=True,
with_assets=False,
)
# print("Get ancestors: {}".format(len(ancestors)))
if not ancestors:
continue
user_tree.safe_add_ancestors(child, ancestors)