MCPcopy Create free account
hub / github.com/Keeper-Security/Commander / tree_node

Function tree_node

keepercommander/commands/folder.py:1836–1983  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

1834 return result
1835
1836 def tree_node(node):
1837 node_uid = node.record_uid if isinstance(node, Record) else (node.uid if hasattr(node, 'uid') else '')
1838 node_name = node.title if isinstance(node, Record) else (node.name if hasattr(node, 'name') else 'Unknown')
1839
1840 # Check if it's a Nested Share Folder item and get proper name
1841 is_nested_share = False
1842 if isinstance(node, Record):
1843 is_nested_share = hasattr(params, 'nested_share_records') and node.record_uid in params.nested_share_records
1844 elif hasattr(node, 'type') and node.type == 'nested_share_folder':
1845 is_nested_share = True
1846 elif isinstance(node, BaseFolderNode) and not isinstance(node, Record):
1847 is_nested_share = hasattr(params, 'nested_share_folders') and node_uid in params.nested_share_folders
1848 # Get folder name from nested_share_folders if available
1849 if is_nested_share and node_uid in params.nested_share_folders:
1850 nsf_folder_name = params.nested_share_folders[node_uid].get('name', node_name)
1851 if nsf_folder_name:
1852 node_name = nsf_folder_name
1853
1854 node_name = f'{node_name} ({node_uid})' if verbose else node_name
1855 share_info = get_share_info(node) if isinstance(node, SharedFolderNode) and shares else ''
1856
1857 # Format node name based on type
1858 if isinstance(node, Record):
1859 nsf_label = ' [Nested Record]' if is_nested_share else ' [Record]'
1860 node_name = f'{Style.DIM}{node_name}{nsf_label}{Style.NORMAL}'
1861 elif isinstance(node, SharedFolderNode):
1862 node_name = f'{node_name}{Style.BRIGHT} [SHARED]{Style.NORMAL}{share_info}'
1863 elif is_nested_share:
1864 node_name = f'{node_name}{Style.BRIGHT} [Nested Share Folder]{Style.NORMAL}'
1865
1866 dir_nodes = []
1867 if not isinstance(node, Record):
1868 # Get regular subfolders from folder_cache
1869 if hasattr(node, 'subfolders'):
1870 dir_nodes = [params.folder_cache.get(fuid) for fuid in node.subfolders if params.folder_cache.get(fuid)]
1871
1872 # Check if this is root folder and add Nested Share Folder root-level folders
1873 is_root = (isinstance(node, BaseFolderNode) and (node.type == '/' or node_uid == '')) or \
1874 (hasattr(node, 'type') and node.type == 'nested_share_folder' and not node_uid)
1875
1876 if is_root and hasattr(params, 'nested_share_folders') and params.nested_share_folders:
1877 # Add all Nested Share Folders that are at root level
1878 for nsf_uid, nsf_folder in params.nested_share_folders.items():
1879 parent_uid = nsf_folder.get('parent_uid')
1880 # Check if this folder is at root:
1881 # - parent_uid is None, empty string, 'root', or the special root UID
1882 # - Also check if parent doesn't exist in nested_share_folders (orphan = root level)
1883 is_root_folder = (
1884 parent_uid is None or
1885 parent_uid == '' or
1886 parent_uid == 'root' or
1887 parent_uid == 'AAAAAAAAAAAAAAAAAPmtNA' or
1888 (parent_uid and parent_uid not in params.nested_share_folders)
1889 )
1890 if is_root_folder:
1891 # Check if already in dir_nodes
1892 already_added = any(hasattr(n, 'uid') and n.uid == nsf_uid for n in dir_nodes if n)
1893 if not already_added:

Callers 3

tree_nodeMethod · 0.85
executeMethod · 0.85
formatted_treeFunction · 0.85

Calls 6

get_share_infoFunction · 0.85
getMethod · 0.80
get_recordMethod · 0.80
addMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected