def _validate_compare_id(compare_id: str): valid_chars = '0123456789abcdef_;' if not all(char in valid_chars for char in compare_id): raise ValueError(f'Compare ID {compare_id} contains invalid chars') uids = convert_compare_id_to_list(compare_id) if not all(is_uid(uid) for uid in uids): raise TypeError(f'Compare ID {compare_id} contains invalid UIDs')
def _get_search_parameters(self, query, only_firmware, inverted): ''' This function prepares the requested search by parsing all necessary parameters. In case of a binary search, indicated by the query being an uid instead of a dict, the cached search result is retrieved. ''' search_parameters = dict() if request.args.get('query'): query = request.args.get('query') if is_uid(query): with ConnectTo(FrontEndDbInterface, self._config) as connection: cached_query = connection.get_query_from_cache(query) query = cached_query['search_query'] search_parameters['query_title'] = cached_query[ 'query_title'] search_parameters['only_firmware'] = request.args.get( 'only_firmwares') == 'True' if request.args.get( 'only_firmwares') else only_firmware search_parameters['inverted'] = request.args.get( 'inverted') == 'True' if request.args.get('inverted') else inverted search_parameters['query'] = apply_filters_to_query(request, query) if 'query_title' not in search_parameters.keys(): search_parameters['query_title'] = search_parameters['query'] if request.args.get('date'): search_parameters['query'] = self._add_date_to_query( search_parameters['query'], request.args.get('date')) return search_parameters
def virtual_path_element_to_span(hid_element: str, uid_element, root_uid) -> str: if is_uid(uid_element): return ( '<span class="label label-primary"><a style="color: #fff" href="/analysis/{uid}/ro/{root_uid}">' '{hid}</a></span>'.format(uid=uid_element, root_uid=root_uid, hid=hid_element)) return '<span class="label label-default">{}</span>'.format(hid_element)
def virtual_path_element_to_span(hid_element: str, uid_element, root_uid) -> str: if is_uid(uid_element): return ( '<span class="badge badge-primary">' ' <a style="color: #fff" href="/analysis/{uid}/ro/{root_uid}">' ' {hid}' ' </a>' '</span>'.format(uid=uid_element, root_uid=root_uid, hid=cap_length_of_element(hid_element)) ) return '<span class="badge badge-secondary">{}</span>'.format(cap_length_of_element(hid_element))
def _get_search_parameters(self, query, only_firmware, inverted): search_parameters = dict() if request.args.get('query'): query = request.args.get('query') if is_uid(query): with ConnectTo(FrontEndDbInterface, self._config) as connection: cached_query = connection.get_query_from_cache(query) query = cached_query['search_query'] search_parameters['query_title'] = cached_query['query_title'] search_parameters['only_firmware'] = request.args.get('only_firmwares') == 'True' if request.args.get('only_firmwares') else only_firmware search_parameters['inverted'] = request.args.get('inverted') == 'True' if request.args.get('inverted') else inverted search_parameters['query'] = apply_filters_to_query(request, query) if 'query_title' not in search_parameters.keys(): search_parameters['query_title'] = search_parameters['query'] if request.args.get('date'): search_parameters['query'] = self._add_date_to_query(search_parameters['query'], request.args.get('date')) return search_parameters
def test_is_uid(self): self.assertFalse(is_uid(None)) self.assertFalse(is_uid("blah")) self.assertTrue(is_uid(self.test_uid)) self.assertFalse(is_uid(self.test_uid + "foobar"))
def test_is_uid(self): self.assertFalse(is_uid(None)) self.assertFalse(is_uid('blah')) self.assertTrue(is_uid(self.test_uid)) self.assertFalse(is_uid(self.test_uid + 'foobar'))