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

Method load

keepercommander/vault.py:108–158  ·  view source on GitHub ↗
(params, rec)

Source from the content-addressed store, hash-verified

106
107 @staticmethod
108 def load(params, rec):
109 # type: (KeeperParams, Union[str, Dict[str, Any]]) -> Optional['KeeperRecord']
110 if isinstance(rec, str):
111 if rec not in params.record_cache:
112 return
113 record = params.record_cache[rec]
114 elif isinstance(rec, dict):
115 record = rec
116 else:
117 return
118
119 if 'data_unencrypted' not in record:
120 return
121 version = record.get('version', 0)
122
123 if version == 2:
124 keeper_record = PasswordRecord()
125 elif version == 3:
126 keeper_record = TypedRecord(version=3)
127 elif version == 4:
128 keeper_record = FileRecord()
129 keeper_record.storage_size = record.get('file_size')
130 elif version == 5:
131 keeper_record = ApplicationRecord()
132 elif version == 6:
133 keeper_record = TypedRecord(version=6)
134 else:
135 return
136 keeper_record.record_uid = record['record_uid']
137 keeper_record.revision = record.get('revision', 0)
138 keeper_record.record_key = record['record_key_unencrypted']
139 keeper_record.client_time_modified = record.get('client_modified_time', 0)
140 keeper_record.shared = record.get('shared', False)
141
142 try:
143 data = json.loads(record['data_unencrypted'])
144 except:
145 logging.warning('Record \"%s\": Corrupted record data', keeper_record.record_uid)
146 return
147
148 extra_str = record['extra_unencrypted'] if 'extra_unencrypted' in record else None
149 extra = None # type: Optional[Dict]
150 if extra_str:
151 try:
152 extra = json.loads(extra_str)
153 except:
154 logging.debug('Record \"%s\": Corrupted record extra', keeper_record.record_uid)
155
156 keeper_record.load_record_data(data, extra)
157
158 return keeper_record
159
160 def enumerate_fields(self): # type: () -> Iterable[Tuple[str, Union[None, str, List[str]]]]
161 yield '(title)', self.title

Callers

nothing calls this directly

Calls 8

load_record_dataMethod · 0.95
PasswordRecordClass · 0.85
TypedRecordClass · 0.85
FileRecordClass · 0.85
ApplicationRecordClass · 0.85
getMethod · 0.80
warningMethod · 0.80
debugMethod · 0.45

Tested by

no test coverage detected