handle missing web search form values gracefully

This commit is contained in:
Mike McLean 2026-07-29 15:29:39 -04:00 • committed by Tomas Kopecek
commit fec4839bef

View file

@ -2630,10 +2630,10 @@ def search(environ, start=None, order=None):
if 'terms' in form and form['terms'].value:
terms = form['terms'].value
terms = terms.strip()
type = form['type'].value
match = form['match'].value
searchtype = form.getfirst('type', default='package')
match = form.getfirst('match', default='glob')
values['terms'] = terms
values['type'] = type
values['type'] = searchtype
values['match'] = match
if match not in ('glob', 'regexp', 'exact'):
@ -2647,14 +2647,15 @@ def search(environ, start=None, order=None):
values['terms'] = ''
return _genHTML(environ, 'search.html.j2')
infoURL = _infoURLs.get(type)
infoURL = _infoURLs.get(searchtype)
if not infoURL:
raise koji.GenericError('unknown search type: %s' % type)
raise koji.GenericError('unknown search type: %s' % searchtype)
values['infoURL'] = infoURL
order = order or _DEFAULT_SEARCH_ORDER.get(type, 'name')
order = order or _DEFAULT_SEARCH_ORDER.get(searchtype, 'name')
values['order'] = order
results = kojiweb.util.paginateMethod(server, values, 'search', args=(terms, type, match),
results = kojiweb.util.paginateMethod(server, values, 'search',
args=(terms, searchtype, match),
start=start, dataName='results', prefix='result',
order=order)
if not start and len(results) == 1:
@ -2662,12 +2663,12 @@ def search(environ, start=None, order=None):
# (you're feeling lucky)
_redirect(environ, infoURL % results[0])
else:
if type == 'maven':
if searchtype == 'maven':
typeLabel = 'Maven artifacts'
elif type == 'win':
elif searchtype == 'win':
typeLabel = 'Windows artifacts'
else:
typeLabel = '%ss' % type
typeLabel = '%ss' % searchtype
values['typeLabel'] = typeLabel
return _genHTML(environ, 'search.html.j2')
else: