MCPcopy
hub / github.com/1Panel-dev/MaxKB / check_depth

Function check_depth

apps/folders/serializers/folder.py:79–98  ·  view source on GitHub ↗
(source, parent_id, workspace_id, current_depth=0)

Source from the content-addressed store, hash-verified

77
78
79def check_depth(source, parent_id, workspace_id, current_depth=0):
80 # Folder 不能超过3层
81 Folder = get_folder_type(source) # noqa
82
83 if parent_id != workspace_id:
84 # 计算当前层级
85 depth = 1 # 当前要创建的节点算一层
86 current_parent_id = parent_id
87
88 # 向上追溯父节点
89 while current_parent_id != workspace_id:
90 depth += 1
91 parent_node = QuerySet(Folder).filter(id=current_parent_id).first()
92 if parent_node is None:
93 break
94 current_parent_id = parent_node.parent_id
95
96 # 验证层级深度
97 if depth + current_depth > FOLDER_DEPTH:
98 raise serializers.ValidationError(_('Folder depth cannot exceed 10000 levels'))
99
100
101def get_max_depth(current_node):

Callers 2

insertMethod · 0.85
editMethod · 0.85

Calls 1

get_folder_typeFunction · 0.85

Tested by

no test coverage detected