Skip to content
Merged

Release #1790

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion keepercommander/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
# Contact: ops@keepersecurity.com
#

__version__ = '17.2.5'
__version__ = '17.2.6'
56 changes: 44 additions & 12 deletions keepercommander/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -486,42 +486,74 @@ def search_records(params, searchstring):
return search_results


def search_shared_folders(params, searchstring):
"""Search shared folders """
def search_shared_folders(params, searchstring, use_regex=False):
"""Search shared folders.

p = re.compile(searchstring.lower())
Args:
params: KeeperParams
searchstring: Search string (tokens or regex depending on use_regex)
use_regex: If True, treat as regex. If False (default), token-based search.
"""
search_results = []

search_results = []
if not searchstring:
return search_results

if use_regex:
p = re.compile(searchstring.lower())
match_func = lambda target: p.search(target)
else:
# Token-based search: all tokens must match
tokens = [t.lower() for t in searchstring.split() if t.strip()]
if not tokens:
return search_results
match_func = lambda target: all(token in target for token in tokens)

for shared_folder_uid in params.shared_folder_cache:

logging.debug('Getting Shared Folder UID: %s', shared_folder_uid)
sf = get_shared_folder(params, shared_folder_uid)
target = sf.to_lowerstring()

if p.search(target):
if match_func(target):
logging.debug('Search success')
search_results.append(sf)

return search_results


def search_teams(params, searchstring):
"""Search teams """
def search_teams(params, searchstring, use_regex=False):
"""Search teams.

p = re.compile(searchstring.lower())
Args:
params: KeeperParams
searchstring: Search string (tokens or regex depending on use_regex)
use_regex: If True, treat as regex. If False (default), token-based search.
"""
search_results = []

search_results = []
if not searchstring:
return search_results

if use_regex:
p = re.compile(searchstring.lower())
match_func = lambda target: p.search(target)
else:
# Token-based search: all tokens must match
tokens = [t.lower() for t in searchstring.split() if t.strip()]
if not tokens:
return search_results
match_func = lambda target: all(token in target for token in tokens)

for team_uid in params.team_cache:
team = get_team(params, team_uid)

target = team.to_lowerstring()

if p.search(target):
if match_func(target):
logging.debug('Search success')
search_results.append(team)

return search_results


Expand Down
136 changes: 67 additions & 69 deletions keepercommander/auth/console_ui.py

Large diffs are not rendered by default.

Loading
Loading