Skip to content

Commit 2d7cedb

Browse files
committed
url-encode programming language filter values
Signed-off-by: uttam282005 <uttam282005@gmail.com>
1 parent 90f4f5e commit 2d7cedb

3 files changed

Lines changed: 17 additions & 5 deletions

File tree

scanpipe/templates/scanpipe/panels/scan_summary_panel.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
{% for entry in scan_summary.primary_language %}
5858
{% if entry.value %}
5959
<li>
60-
<a href="{% url 'project_resources' project.slug %}?programming_language={{ entry.value }}" target="_blank">
60+
<a href="{% url 'project_resources' project.slug %}?programming_language={{ entry.value|urlencode }}" target="_blank">
6161
{{ entry.value }}
6262
{% if entry.count %}
6363
<span class="tag is-rounded">
@@ -123,7 +123,7 @@
123123
<ul>
124124
{% for entry in scan_summary.other_languages %}
125125
{% if entry.value %}
126-
<a href="{% url 'project_resources' project.slug %}?programming_language={{ entry.value }}" target="_blank">
126+
<a href="{% url 'project_resources' project.slug %}?programming_language={{ entry.value|urlencode }}" target="_blank">
127127
<li>
128128
{{ entry.value }}
129129
{% if entry.count %}
@@ -163,4 +163,4 @@
163163
</tr>
164164
</table>
165165
</div>
166-
</article>
166+
</article>

scanpipe/templates/scanpipe/project_charts.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ <h3 class="title is-4 has-text-centered mb-3">
152152
// Keep in sync with FilterSetUtilsMixin.(empty_value|other_value)
153153
if (name === "(No value detected)") name = "_EMPTY_";
154154
if (name === "Other") name = "_OTHER_";
155-
let full_url = `${base_url}?${field}=${name}`;
155+
let full_url = `${base_url}?${field}=${${encodeURIComponent(name)}`;
156156
if (in_package) full_url += `&in_package=${in_package}`;
157157
if (event.ctrlKey || event.metaKey) window.open(full_url, '_blank');
158158
else window.location.href = full_url;
@@ -182,4 +182,4 @@ <h3 class="title is-4 has-text-centered mb-3">
182182
makeChart("file_compliance_alert", "#compliance_alert_chart", "Resource\nCompliance\nAlert");
183183
{% endif %}
184184
</script>
185-
{% endblock %}
185+
{% endblock %}

scanpipe/tests/test_api.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -788,6 +788,18 @@ def test_scanpipe_api_project_action_resources_filterset(self):
788788
response = self.csrf_client.get(url + "?slug=aaa")
789789
self.assertEqual(2, response.data["count"])
790790

791+
def test_scanpipe_api_project_action_resources_filterset_special_chars(self):
792+
make_resource_file(
793+
self.project1,
794+
path="csharp_file.cs",
795+
programming_language="C#",
796+
)
797+
url = reverse("project-resources", args=[self.project1.uuid])
798+
response = self.csrf_client.get(url + "?programming_language=C%23")
799+
self.assertEqual(1, response.data["count"])
800+
self.assertEqual("csharp_file.cs", response.data["results"][0]["path"])
801+
self.assertEqual("C#", response.data["results"][0]["programming_language"])
802+
791803
def test_scanpipe_api_project_action_packages(self):
792804
url = reverse("project-packages", args=[self.project1.uuid])
793805
response = self.csrf_client.get(url)

0 commit comments

Comments
 (0)