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

Method execute

keepercommander/commands/register.py:1598–1788  ·  view source on GitHub ↗
(self, params, **kwargs)

Source from the content-addressed store, hash-verified

1596 return dump_report_data(table, headers, title=title, fmt=fmt, filename=out)
1597
1598 def execute(self, params, **kwargs):
1599 verbose = kwargs.get('verbose') is True
1600 show_team_users = kwargs.get('show_team_users') is True
1601 if show_team_users:
1602 verbose = True
1603 output_format = kwargs.get('format', 'table')
1604 user_filter = set()
1605 record_filter = set()
1606
1607 if kwargs.get('folders'):
1608 report = ShareReportCommand.sf_report(
1609 params,
1610 out=kwargs.get('output'),
1611 fmt=kwargs.get('format'),
1612 show_team_users=show_team_users
1613 )
1614 return report
1615
1616 containers = kwargs.get('container') or []
1617 containers = [get_folder_uids(params, container) for container in containers]
1618 containers = [uid for uids in containers for uid in uids]
1619 containers = [uid for uid in containers if uid]
1620 recs_by_containers = {k: v for c in containers for k, v in get_contained_record_uids(params, c, False).items()}
1621 contained_records = {r for k, recs in recs_by_containers.items() for r in recs}
1622
1623 if kwargs.get('record'):
1624 records = kwargs.get('record') or []
1625 for r in records:
1626 if r in params.record_cache:
1627 record_filter.add(r)
1628 else:
1629 r_uid = None
1630 rs = try_resolve_path(params, r)
1631 if rs is not None:
1632 sf, name = rs
1633 if name:
1634 shared_folder_uid = sf.uid or ''
1635 if shared_folder_uid in params.subfolder_record_cache:
1636 for uid in params.subfolder_record_cache[shared_folder_uid]:
1637 rec = api.get_record(params, uid)
1638 if name in {rec.title, rec.record_uid}:
1639 r_uid = rec.record_uid
1640 break
1641 if r_uid:
1642 record_filter.add(r_uid)
1643 else:
1644 raise CommandError('share-report', '\'{0}\' is not an existing record title or UID'.format(r))
1645
1646 record_uids = {x for x in record_filter}
1647 elif kwargs.get('user'):
1648 for u in kwargs['user']:
1649 user_filter.add(u)
1650
1651 record_uids = {x['record_uid'] for x in params.record_cache.values() if x['shared']}
1652 else:
1653 record_uids = {x['record_uid'] for x in params.record_cache.values() if x['shared']}
1654
1655 record_uids = record_uids.intersection(contained_records) if contained_records else record_uids

Calls 15

get_date_for_shareMethod · 0.95
get_record_share_dateMethod · 0.95
get_folder_uidsFunction · 0.85
try_resolve_pathFunction · 0.85
get_shared_recordsFunction · 0.85
get_record_sharesFunction · 0.85
field_to_titleFunction · 0.85
dump_report_dataFunction · 0.85