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

Function _sync_down_impl

keepercommander/sync_down.py:47–1072  ·  view source on GitHub ↗
(params, record_types=False)

Source from the content-addressed store, hash-verified

45
46
47def _sync_down_impl(params, record_types=False): # type: (KeeperParams, bool) -> None
48 params.sync_data = False
49 token = params.sync_down_token
50
51 for record in params.record_cache.values():
52 if 'shares' in record:
53 del record['shares']
54
55 def delete_record_key(rec_uid):
56 if rec_uid in params.record_cache:
57 record = params.record_cache[rec_uid]
58 if 'record_key_unencrypted' in record:
59 del record['record_key_unencrypted']
60 if 'data_unencrypted' in record:
61 del record['data_unencrypted']
62 if 'extra_unencrypted' in record:
63 del record['extra_unencrypted']
64
65 def delete_shared_folder_key(sf_uid):
66 if sf_uid in params.shared_folder_cache:
67 shared_folder = params.shared_folder_cache[sf_uid]
68 if 'shared_folder_key_unencrypted' in shared_folder:
69 del shared_folder['shared_folder_key_unencrypted']
70 if 'records' in shared_folder:
71 for sfr in shared_folder['records']:
72 record_uid = sfr['record_uid']
73 if record_uid not in params.meta_data_cache:
74 delete_record_key(record_uid)
75
76 def delete_team_key(team_uid):
77 if team_uid in params.team_cache:
78 team = params.team_cache[team_uid]
79 if 'team_key_unencrypted' in team:
80 del team['team_key_unencrypted']
81 if 'shared_folder_keys' in team:
82 for sfk in team['shared_folder_keys']:
83 delete_shared_folder_key(sfk['shared_folder_uid'])
84
85 params.available_team_cache = None
86
87 resp_bw_recs = [] # type: List[SyncDown_pb2.BreachWatchRecord]
88 resp_sec_data_recs = [] # type: List[SyncDown_pb2.BreachWatchSecurityData]
89 resp_sec_scores = [] # type: List[SyncDown_pb2.SecurityScoreData]
90 record_rotation_items = [] # type: List[record_pb2.RecordRotation]
91 nsf_enabled = not params.is_feature_disallowed('keeper_drive')
92 nsf_acc = nested_share_folder_sync.create_accumulator() if nsf_enabled else None
93
94 request = SyncDown_pb2.SyncDownRequest()
95 revision = params.revision
96 full_sync = False
97 done = False
98 while not done:
99 if token:
100 request.continuationToken = token
101 response = api.communicate_rest(params, request, 'vault/sync_down', rs_type=SyncDown_pb2.SyncDownResponse)
102 done = not response.hasMore
103 token = response.continuationToken
104 if response.cacheStatus == SyncDown_pb2.CLEAR:

Callers 1

sync_downFunction · 0.85

Calls 15

delete_record_keyFunction · 0.85
delete_team_keyFunction · 0.85
delete_shared_folder_keyFunction · 0.85
RecordOwnerClass · 0.85
convert_recordFunction · 0.85
assign_teamFunction · 0.85
assign_shared_folderFunction · 0.85
convert_user_folderFunction · 0.85
prepare_folder_treeFunction · 0.85
_sync_record_typesFunction · 0.85

Tested by

no test coverage detected