Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
r1_key = register_record(r1, 1)
r2 = record.Record()
r2.record_uid = api.generate_record_uid()
r2.title = 'Record 2'
r2.login = 'user2@keepersecurity.com'
r2.password = 'password2'
r2.login_url = 'https://keepersecurity.com/2'
r2.set_field('field2', 'value2')
r2.notes = 'note2'
r2.revision = 2
r2_key = register_record(r2, 2)
register_records_to_folder(None, [r1.record_uid, r2.record_uid])
r3 = record.Record()
r3.record_uid = api.generate_record_uid()
r3.title = 'Record 3'
r3.login = 'user3@keepersecurity.com'
r3.password = 'password3'
r3.login_url = 'https://keepersecurity.com/3'
r3.revision = 3
r3_key = register_record(r3)
sf1 = shared_folder.SharedFolder()
sf1.shared_folder_uid = api.generate_record_uid()
sf1.default_manage_records = False
sf1.default_manage_users = False
sf1.default_can_edit = False
sf1.default_can_share = False
sf1.name = 'Shared Folder 1'
sf1_key = register_shared_folder(sf1, {
def generate_data():
r1 = record.Record()
r1.record_uid = api.generate_record_uid()
r1.folder = 'Old Folder'
r1.title = 'Record 1'
r1.login = 'user1@keepersecurity.com'
r1.password = 'password1'
r1.login_url = 'https://keepersecurity.com/1'
r1.set_field('field1', 'value1')
r1.notes = 'note1'
r1.attachments = [{
'name': 'Attachment 1',
'key': base64.urlsafe_b64encode(api.generate_aes_key()).decode('utf-8').rstrip('='),
'id': 'ABCDEFGH',
'size': 1000
}]
r1.revision = 1
r1_key = register_record(r1, 1)
def test_to_tab_delimited(self):
record = Record()
record.folder = 'folder'
record.title = 'title'
record.login = 'login'
record.password = 'password'
record.login_url = 'login_url'
record.notes = 'line1\nline2\nline3'
record.custom_fields = [
{'name':'cf1', 'value': 'cf1val', 'type': 'text'},
{'name':'cf2', 'value': 'cf2val', 'type': 'text'}]
assert record.to_tab_delimited() == 'folder\ttitle\tlogin\tpassword\tlogin_url\tline1\\\\nline2\\\\nline3\tcf1\tcf1val\tcf2\tcf2val'
r1.title = 'Record 1'
r1.login = 'user1@keepersecurity.com'
r1.password = 'password1'
r1.login_url = 'https://keepersecurity.com/1'
r1.set_field('field1', 'value1')
r1.notes = 'note1'
r1.attachments = [{
'name': 'Attachment 1',
'key': base64.urlsafe_b64encode(api.generate_aes_key()).decode('utf-8').rstrip('='),
'id': 'ABCDEFGH',
'size': 1000
}]
r1.revision = 1
r1_key = register_record(r1, 1)
r2 = record.Record()
r2.record_uid = api.generate_record_uid()
r2.title = 'Record 2'
r2.login = 'user2@keepersecurity.com'
r2.password = 'password2'
r2.login_url = 'https://keepersecurity.com/2'
r2.set_field('field2', 'value2')
r2.notes = 'note2'
r2.revision = 2
r2_key = register_record(r2, 2)
register_records_to_folder(None, [r1.record_uid, r2.record_uid])
r3 = record.Record()
r3.record_uid = api.generate_record_uid()
r3.title = 'Record 3'
r3.login = 'user3@keepersecurity.com'
return
if not params.record_cache:
logging.warning('No record cache. Sync down first.')
return
if not record_uid in params.record_cache:
logging.warning('Record UID not found.')
return
cached_rec = params.record_cache[record_uid]
rec = Record()
try:
data = json.loads(cached_rec['data_unencrypted'].decode('utf-8'))
rec = Record(record_uid)
extra = None
if 'extra_unencrypted' in cached_rec:
extra = json.loads(cached_rec['extra_unencrypted'].decode('utf-8'))
rec.load(data, revision=cached_rec['revision'], extra=extra)
if not resolve_record_view_path(params, record_uid):
rec.mask_password()
except:
logging.error('**** Error decrypting record %s', record_uid)
return rec
folder, record_name = rs
if folder is not None and record_name is not None:
folder_uid = folder.uid or ''
if folder_uid in params.subfolder_record_cache:
for uid in params.subfolder_record_cache[folder_uid]:
r = api.get_record(params, uid)
if r.title.lower() == record_name.lower():
record_uid = uid
break
if record_uid is None:
record_add = RecordAddCommand()
record_uid = record_add.execute(params, title=record_name, folder=folder_uid, force=True)
record = None
if record_uid is None:
record = Record()
record.title = kwargs['record']
if api.add_record(params, record):
record_uid = record.record_uid
else:
return
if params.sync_data:
api.sync_down(params)
record_update = api.resolve_record_write_path(params, record_uid)
if record_update is None:
logging.error('You do not have edit permissions on this record')
return
files = []
if 'file' in kwargs:
for name in kwargs['file']:
def load_revision(params, record_key, revision):
# type: (KeeperParams, bytes, dict) -> Record
data = json.loads(api.decrypt_data(revision['data'], record_key).decode('utf-8'))
if 'extra' in revision:
extra = json.loads(api.decrypt_data(revision['extra'], record_key).decode('utf-8'))
else:
extra = {}
rec = Record(revision['record_uid'])
rec.load(data, extra=extra)
return rec