Skip to content

Commit c2b0c84

Browse files
committed
Release 17.2.2
1 parent c77cde5 commit c2b0c84

7 files changed

Lines changed: 32 additions & 19 deletions

File tree

keepercommander/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
# Contact: ops@keepersecurity.com
1111
#
1212

13-
__version__ = '17.2.1'
13+
__version__ = '17.2.2'

keepercommander/commands/base.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,14 @@ def register_commands(commands, aliases, command_info):
133133
command_info['email-config'] = 'Email provider configuration management'
134134

135135
# SuperShell requires textual library - only register if available
136-
try:
137-
from .supershell import SuperShellCommand
138-
commands['supershell'] = SuperShellCommand()
139-
command_info['supershell'] = 'Launch full terminal vault UI with vim navigation'
140-
aliases['ss'] = 'supershell'
141-
except ImportError:
142-
pass # textual not installed, skip supershell
136+
if sys.version_info.major > 3 or (sys.version_info.major == 3 and sys.version_info.minor >= 9):
137+
try:
138+
from .supershell import SuperShellCommand
139+
commands['supershell'] = SuperShellCommand()
140+
command_info['supershell'] = 'Launch full terminal vault UI with vim navigation'
141+
aliases['ss'] = 'supershell'
142+
except ImportError:
143+
pass # textual not installed, skip supershell
143144

144145
from . import credential_provision
145146
credential_provision.register_commands(commands)

keepercommander/commands/record.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -542,16 +542,16 @@ def execute(self, params, **kwargs):
542542
shareable = False
543543

544544
# Handle both possible spellings of readable
545-
if 'readable' in user:
546-
readable = user['readable']
545+
if 'editable' in user:
546+
editable = user['editable']
547547
else:
548-
readable = False
548+
editable = False
549549

550-
if readable is None:
551-
readable = False
550+
if editable is None:
551+
editable = False
552552

553553
print(' Shareable: ' + ('Yes' if shareable else 'No'))
554-
print(' Read-Only: ' + ('Yes' if not shareable else 'No'))
554+
print(' Read-Only: ' + ('Yes' if not editable else 'No'))
555555
if 'shared_folder_permissions' in rec['shares'] and rec['shares']['shared_folder_permissions']:
556556
print('')
557557
print('Shared Folder Permissions:')
@@ -1126,7 +1126,8 @@ def execute(self, params, **kwargs):
11261126
all_results = []
11271127

11281128
if 'r' in categories:
1129-
records = list(vault_extensions.find_records(params, pattern))
1129+
1130+
records = list(vault_extensions.find_records(params, pattern, record_version=None if verbose else [2,3]))
11301131
if records:
11311132
if fmt == 'json':
11321133
for record in records:

keepercommander/commands/record_edit.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -806,9 +806,9 @@ def execute(self, params, **kwargs):
806806
record_fields.append(parsed_field)
807807

808808
if record_type in ('legacy', 'general'):
809-
raise CommandError('record-add', 'Legacy record type is not supported anymore.')
810-
# record = vault.PasswordRecord()
811-
# self.assign_legacy_fields(record, record_fields)
809+
# raise CommandError('record-add', 'Legacy record type is not supported anymore.')
810+
record = vault.PasswordRecord()
811+
self.assign_legacy_fields(record, record_fields)
812812
else:
813813
rt_fields = self.get_record_type_fields(params, record_type)
814814
if not rt_fields:

keepercommander/vault_extensions.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,15 @@ def find_records(params, # type: KeeperParams
9090

9191
if pattern:
9292
is_match = matches_record(record, pattern, search_fields)
93+
if not is_match and isinstance(record, vault.TypedRecord):
94+
field = record.get_typed_field('fileRef')
95+
if field and isinstance(field.value, list):
96+
for file_uid in field.value:
97+
file_record = vault.KeeperRecord.load(params, file_uid)
98+
if isinstance(file_record, vault.FileRecord):
99+
is_match = matches_record(file_record, pattern, search_fields)
100+
if is_match:
101+
break
93102
else:
94103
is_match = True
95104
if is_match:

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ pyobjc-framework-LocalAuthentication; sys_platform == "darwin" and python_versio
2525
winrt-runtime; sys_platform == "win32"
2626
winrt-Windows.Foundation; sys_platform == "win32"
2727
winrt-Windows.Security.Credentials.UI; sys_platform == "win32"
28-
keeper-mlkem; python_version>='3.11'
28+
keeper-mlkem; python_version>='3.11'
29+
textual; python_version>='3.9'

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ install_requires =
5252
winrt-Windows.Foundation; sys_platform == "win32" and python_version>='3.10'
5353
winrt-Windows.Security.Credentials.UI; sys_platform == "win32" and python_version>='3.10'
5454
keeper-mlkem; python_version>='3.11'
55+
textual; python_version>='3.9'
5556

5657
[options.package_data]
5758
keepercommander = resources/*, resources/email_templates/*

0 commit comments

Comments
 (0)