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

Method execute

keepercommander/commands/record.py:368–1052  ·  view source on GitHub ↗
(self, params, **kwargs)

Source from the content-addressed store, hash-verified

366 print(' {0:>23s} {1}'.format(entry['record_uid'], name))
367
368 def execute(self, params, **kwargs):
369 uid = kwargs.get('uid')
370 if not uid:
371 raise CommandError('get', 'UID parameter is required')
372
373 raise_if_unsafe_get_lookup_token(uid)
374
375 fmt = kwargs.get('format') or 'detail'
376
377 # First try to interpret as UID
378 direct_match = False
379
380 if api.is_shared_folder(params, uid):
381 admins = api.get_share_admins_for_shared_folder(params, uid)
382 sf = api.get_shared_folder(params, uid)
383 cached_sf = params.shared_folder_cache.get(uid) or {}
384 owner_username = cached_sf.get('owner_username')
385 owner_account_uid = cached_sf.get('owner_account_uid')
386 if fmt == 'json':
387 path = get_folder_path(params, sf.shared_folder_uid, delimiter=os.sep) if sf.shared_folder_uid else ''
388 sf_node = params.folder_cache.get(sf.shared_folder_uid) if sf.shared_folder_uid else None
389 parent_uid = sf_node.parent_uid if sf_node and sf_node.parent_uid else None
390 sfo = {
391 "folder_uid": sf.shared_folder_uid,
392 "type": "classic_folder",
393 "name": sf.name,
394 "path": path,
395 "parent_uid": parent_uid,
396 "folder": {
397 "uid": parent_uid,
398 "path": get_folder_path(params, parent_uid) if parent_uid else "/"
399 },
400 "manage_users": sf.default_manage_users,
401 "manage_records": sf.default_manage_records,
402 "can_edit": sf.default_can_edit,
403 "can_share": sf.default_can_share
404 }
405 if sf.records:
406 records_list = []
407 for r in sf.records:
408 rec_entry = {
409 'record_uid': r['record_uid'],
410 'can_edit': r['can_edit'],
411 'can_share': r['can_share']
412 }
413 rec = vault.KeeperRecord.load(params, r['record_uid'])
414 if rec:
415 rec_entry['record_name'] = rec.title
416 records_list.append(rec_entry)
417 sfo['records'] = records_list
418 def _format_expiration(expiration_value):
419 if expiration_value is None or expiration_value <= 0:
420 return 'never'
421 return datetime.datetime.fromtimestamp(expiration_value // 1000).isoformat()
422 if sf.users:
423 sfo['users'] = [{
424 'username': u['username'],
425 'user_id': u.get('account_uid'),

Calls 15

_build_folder_jsonMethod · 0.95
_print_folder_detailMethod · 0.95
include_dagMethod · 0.95
display_rotation_infoMethod · 0.95
get_access_role_labelFunction · 0.85
find_folder_locationFunction · 0.85
find_foldersFunction · 0.85
getMethod · 0.80
is_shared_folderMethod · 0.80