def _ajax_get_tree_children(self, uid, root_uid=None, compare_id=None): root_uid, compare_id = none_to_none(root_uid), none_to_none(compare_id) exclusive_files = self._get_exclusive_files(compare_id, root_uid) tree = self._generate_file_tree(root_uid, uid, exclusive_files) children = [ self._generate_jstree_node(child_node) for child_node in tree.get_list_of_child_nodes() ] return jsonify(children)
def show_analysis(self, uid, selected_analysis=None, root_uid=None): other_versions = None with ConnectTo(CompareDbInterface, self._config) as db_service: all_comparisons = db_service.page_compare_results() known_comparisons = [comparison for comparison in all_comparisons if uid in comparison[0]] analysis_filter = [selected_analysis] if selected_analysis else [] with ConnectTo(FrontEndDbInterface, self._config) as sc: file_obj = sc.get_object(uid, analysis_filter=analysis_filter) if not file_obj: return render_template('uid_not_found.html', uid=uid) if isinstance(file_obj, Firmware): root_uid = file_obj.uid other_versions = sc.get_other_versions_of_firmware(file_obj) included_fo_analysis_complete = not sc.all_uids_found_in_database(list(file_obj.files_included)) with ConnectTo(InterComFrontEndBinding, self._config) as sc: analysis_plugins = sc.get_available_analysis_plugins() return render_template_string( self._get_correct_template(selected_analysis, file_obj), uid=uid, firmware=file_obj, selected_analysis=selected_analysis, all_analyzed_flag=included_fo_analysis_complete, root_uid=none_to_none(root_uid), analysis_plugin_dict=analysis_plugins, other_versions=other_versions, uids_for_comparison=get_comparison_uid_list_from_session(), user_has_admin_clearance=user_has_privilege(current_user, privilege='delete'), known_comparisons=known_comparisons, available_plugins=self._get_used_and_unused_plugins( file_obj.processed_analysis, [x for x in analysis_plugins.keys() if x != 'unpacker'] ) )
def _show_analysis_results(self, uid, selected_analysis=None, root_uid=None): root_uid = none_to_none(root_uid) other_versions = None uids_for_comparison = get_comparison_uid_list_from_session() analysis_filter = [selected_analysis] if selected_analysis else [] with ConnectTo(FrontEndDbInterface, self._config) as sc: file_obj = sc.get_object(uid, analysis_filter=analysis_filter) if isinstance(file_obj, Firmware): root_uid = file_obj.get_uid() other_versions = sc.get_other_versions_of_firmware(file_obj) if file_obj: view = self._get_analysis_view(selected_analysis) if selected_analysis else get_template_as_string('show_analysis.html') with ConnectTo(FrontEndDbInterface, self._config) as sc: summary_of_included_files = sc.get_summary(file_obj, selected_analysis) if selected_analysis else None analysis_of_included_files_complete = not sc.all_uids_found_in_database(list(file_obj.files_included)) firmware_including_this_fo = self._get_firmware_ids_including_this_file(file_obj) with ConnectTo(InterComFrontEndBinding, self._config) as sc: analysis_plugins = sc.get_available_analysis_plugins() return render_template_string(view, uid=uid, firmware=file_obj, selected_analysis=selected_analysis, all_analyzed_flag=analysis_of_included_files_complete, summary_of_included_files=summary_of_included_files, root_uid=root_uid, firmware_including_this_fo=firmware_including_this_fo, analysis_plugin_dict=analysis_plugins, other_versions=other_versions, uids_for_comparison=uids_for_comparison, user_has_admin_clearance=user_has_privilege(current_user, privilege='delete')) else: return render_template('uid_not_found.html', uid=uid)
def _filter_nice_uid_list(self, input_data, root_uid=None, selected_analysis=None): root_uid = none_to_none(root_uid) if not is_list_of_uids(input_data): return input_data show_id = str(random.randint(0, 999999)) with ConnectTo(FrontEndDbInterface, self._config) as sc: included_files = sc.get_data_for_nice_list(input_data, root_uid) number_of_unanalyzed_files = len(input_data) - len(included_files) return render_template('generic_view/nice_fo_list.html', fo_list=included_files, u_show_id=show_id, number_of_unanalyzed_files=number_of_unanalyzed_files, root_uid=root_uid, selected_analysis=selected_analysis)
def _filter_nice_uid_list(self, uids, root_uid=None, selected_analysis=None, filename_only=False): root_uid = none_to_none(root_uid) if not is_list_of_uids(uids): return uids with ConnectTo(FrontEndDbInterface, self._config) as sc: analyzed_uids = sc.get_data_for_nice_list(uids, root_uid) number_of_unanalyzed_files = len(uids) - len(analyzed_uids) first_item = analyzed_uids.pop(0) return render_template( 'generic_view/nice_fo_list.html', fo_list=analyzed_uids, u_show_id=random_collapse_id(), number_of_unanalyzed_files=number_of_unanalyzed_files, root_uid=root_uid, selected_analysis=selected_analysis, first_item=first_item, filename_only=filename_only )
def test_none_to_none(input_data, expected): assert none_to_none(input_data) == expected
def test_none_to_none(self): self.assertIsNone(none_to_none(None), "none input not correct") self.assertIsNone(none_to_none("None"), "none string not crorrect") self.assertEqual(none_to_none("foo"), "foo", "non none string")
def test_none_to_none(self): self.assertIsNone(none_to_none(None), 'none input not correct') self.assertIsNone(none_to_none('None'), 'none string not crorrect') self.assertEqual(none_to_none('foo'), 'foo', 'non none string')