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

Method execute

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

Source from the content-addressed store, hash-verified

3063 return clipboard_copy_parser
3064
3065 def execute(self, params, **kwargs):
3066 record_name = kwargs['record'] if 'record' in kwargs else ''
3067
3068 if not record_name:
3069 self.get_parser().print_help()
3070 return
3071
3072 user_pattern = None
3073 if kwargs['username']:
3074 user_pattern = re.compile(kwargs['username'], re.IGNORECASE)
3075
3076 record_uid = None
3077 if record_name in params.record_cache:
3078 record_uid = record_name
3079 else:
3080 rs = try_resolve_path(params, record_name)
3081 if rs is not None:
3082 folder, record_name = rs
3083 if folder is not None and record_name is not None:
3084 folder_uid = folder.uid or ''
3085 if folder_uid in params.subfolder_record_cache:
3086 for uid in params.subfolder_record_cache[folder_uid]:
3087 r = vault.KeeperRecord.load(params, uid)
3088 if not isinstance(r, (vault.PasswordRecord, vault.TypedRecord)):
3089 continue
3090 if r.title.lower() == record_name.lower():
3091 if user_pattern:
3092 login = ''
3093 if isinstance(r, vault.PasswordRecord):
3094 login = r.login
3095 elif isinstance(r, vault.TypedRecord):
3096 login_field = r.get_typed_field('login')
3097 if login_field is None:
3098 login_field = r.get_typed_field('email')
3099 if login_field:
3100 login = login_field.get_default_value(str)
3101 if not login:
3102 continue
3103 if not user_pattern.match(login):
3104 continue
3105 record_uid = uid
3106 break
3107
3108 if record_uid is None:
3109 records = [] # type: List[vault.KeeperRecord]
3110 for r in vault_extensions.find_records(params, record_name, use_regex=True):
3111 if isinstance(r, (vault.PasswordRecord, vault.TypedRecord)):
3112 if user_pattern:
3113 login = ''
3114 if isinstance(r, vault.PasswordRecord):
3115 login = r.login
3116 elif isinstance(r, vault.TypedRecord):
3117 login_field = r.get_typed_field('login')
3118 if login_field is None:
3119 login_field = r.get_typed_field('email')
3120 if login_field:
3121 login = login_field.get_default_value(str)
3122 if not login:

Callers 2

action_copy_passwordMethod · 0.95
on_mouse_downMethod · 0.95

Calls 14

get_parserMethod · 0.95
try_resolve_pathFunction · 0.85
get_totp_codeFunction · 0.85
get_default_valueMethod · 0.80
load_record_historyMethod · 0.80
get_custom_valueMethod · 0.80
get_external_valueMethod · 0.80
queue_audit_eventMethod · 0.80
CommandErrorClass · 0.70
print_helpMethod · 0.45
loadMethod · 0.45
get_typed_fieldMethod · 0.45

Tested by

no test coverage detected