Skip to content

Commit e951347

Browse files
gonetim-schilling
authored andcommitted
unsigning history forms
1 parent ff0b974 commit e951347

File tree

3 files changed

+15
-42
lines changed

3 files changed

+15
-42
lines changed

debug_toolbar/panels/history/panel.py

+3-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from django.utils import timezone
99
from django.utils.translation import gettext_lazy as _
1010

11-
from debug_toolbar.forms import SignedDataForm
1211
from debug_toolbar.panels import Panel
1312
from debug_toolbar.panels.history import views
1413
from debug_toolbar.panels.history.forms import HistoryStoreForm
@@ -84,20 +83,16 @@ def content(self):
8483
for id, toolbar in reversed(self.toolbar._store.items()):
8584
stores[id] = {
8685
"toolbar": toolbar,
87-
"form": SignedDataForm(
88-
initial=HistoryStoreForm(initial={"store_id": id}).initial
89-
),
86+
"form": HistoryStoreForm(initial={"store_id": id}),
9087
}
9188

9289
return render_to_string(
9390
self.template,
9491
{
9592
"current_store_id": self.toolbar.store_id,
9693
"stores": stores,
97-
"refresh_form": SignedDataForm(
98-
initial=HistoryStoreForm(
99-
initial={"store_id": self.toolbar.store_id}
100-
).initial
94+
"refresh_form": HistoryStoreForm(
95+
initial={"store_id": self.toolbar.store_id}
10196
),
10297
},
10398
)

debug_toolbar/panels/history/views.py

+6-13
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
from django.http import HttpResponseBadRequest, JsonResponse
22
from django.template.loader import render_to_string
33

4-
from debug_toolbar.decorators import require_show_toolbar, signed_data_view
5-
from debug_toolbar.forms import SignedDataForm
4+
from debug_toolbar.decorators import require_show_toolbar
65
from debug_toolbar.panels.history.forms import HistoryStoreForm
76
from debug_toolbar.toolbar import DebugToolbar
87

98

109
@require_show_toolbar
11-
@signed_data_view
12-
def history_sidebar(request, verified_data):
10+
def history_sidebar(request):
1311
"""Returns the selected debug toolbar history snapshot."""
14-
form = HistoryStoreForm(verified_data)
12+
form = HistoryStoreForm(request.GET)
1513

1614
if form.is_valid():
1715
store_id = form.cleaned_data["store_id"]
@@ -38,10 +36,9 @@ def history_sidebar(request, verified_data):
3836

3937

4038
@require_show_toolbar
41-
@signed_data_view
42-
def history_refresh(request, verified_data):
39+
def history_refresh(request):
4340
"""Returns the refreshed list of table rows for the History Panel."""
44-
form = HistoryStoreForm(verified_data)
41+
form = HistoryStoreForm(request.GET)
4542

4643
if form.is_valid():
4744
requests = []
@@ -56,11 +53,7 @@ def history_refresh(request, verified_data):
5653
"id": id,
5754
"store_context": {
5855
"toolbar": toolbar,
59-
"form": SignedDataForm(
60-
initial=HistoryStoreForm(
61-
initial={"store_id": id}
62-
).initial
63-
),
56+
"form": HistoryStoreForm(initial={"store_id": id}),
6457
},
6558
},
6659
),

tests/panels/test_history.py

+6-21
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from django.test import RequestFactory, override_settings
44
from django.urls import resolve, reverse
55

6-
from debug_toolbar.forms import SignedDataForm
76
from debug_toolbar.toolbar import DebugToolbar
87

98
from ..base import BaseTestCase, IntegrationTestCase
@@ -98,15 +97,11 @@ def test_history_sidebar_invalid(self):
9897
response = self.client.get(reverse("djdt:history_sidebar"))
9998
self.assertEqual(response.status_code, 400)
10099

101-
data = {"signed": SignedDataForm.sign({"store_id": "foo"}) + "invalid"}
102-
response = self.client.get(reverse("djdt:history_sidebar"), data=data)
103-
self.assertEqual(response.status_code, 400)
104-
105100
def test_history_sidebar(self):
106101
"""Validate the history sidebar view."""
107102
self.client.get("/json_view/")
108103
store_id = list(DebugToolbar._store)[0]
109-
data = {"signed": SignedDataForm.sign({"store_id": store_id})}
104+
data = {"store_id": store_id}
110105
response = self.client.get(reverse("djdt:history_sidebar"), data=data)
111106
self.assertEqual(response.status_code, 200)
112107
self.assertEqual(
@@ -121,7 +116,7 @@ def test_history_sidebar_expired_store_id(self):
121116
"""Validate the history sidebar view."""
122117
self.client.get("/json_view/")
123118
store_id = list(DebugToolbar._store)[0]
124-
data = {"signed": SignedDataForm.sign({"store_id": store_id})}
119+
data = {"store_id": store_id}
125120
response = self.client.get(reverse("djdt:history_sidebar"), data=data)
126121
self.assertEqual(response.status_code, 200)
127122
self.assertEqual(
@@ -131,43 +126,33 @@ def test_history_sidebar_expired_store_id(self):
131126
self.client.get("/json_view/")
132127

133128
# Querying old store_id should return in empty response
134-
data = {"signed": SignedDataForm.sign({"store_id": store_id})}
129+
data = {"store_id": store_id}
135130
response = self.client.get(reverse("djdt:history_sidebar"), data=data)
136131
self.assertEqual(response.status_code, 200)
137132
self.assertEqual(response.json(), {})
138133

139134
# Querying with latest store_id
140135
latest_store_id = list(DebugToolbar._store)[0]
141-
data = {"signed": SignedDataForm.sign({"store_id": latest_store_id})}
136+
data = {"store_id": latest_store_id}
142137
response = self.client.get(reverse("djdt:history_sidebar"), data=data)
143138
self.assertEqual(response.status_code, 200)
144139
self.assertEqual(
145140
set(response.json()),
146141
self.PANEL_KEYS,
147142
)
148143

149-
def test_history_refresh_invalid_signature(self):
150-
response = self.client.get(reverse("djdt:history_refresh"))
151-
self.assertEqual(response.status_code, 400)
152-
153-
data = {"signed": "eyJzdG9yZV9pZCI6ImZvbyIsImhhc2giOiI4YWFiMzIzZGZhODIyMW"}
154-
response = self.client.get(reverse("djdt:history_refresh"), data=data)
155-
self.assertEqual(response.status_code, 400)
156-
self.assertEqual(b"Invalid signature", response.content)
157-
158144
def test_history_refresh(self):
159145
"""Verify refresh history response has request variables."""
160146
data = {"foo": "bar"}
161147
self.client.get("/json_view/", data, content_type="application/json")
162-
data = {"signed": SignedDataForm.sign({"store_id": "foo"})}
148+
data = {"store_id": "foo"}
163149
response = self.client.get(reverse("djdt:history_refresh"), data=data)
164150
self.assertEqual(response.status_code, 200)
165151
data = response.json()
166152
self.assertEqual(len(data["requests"]), 1)
167153

168154
store_id = list(DebugToolbar._store)[0]
169-
signature = SignedDataForm.sign({"store_id": store_id})
170-
self.assertIn(html.escape(signature), data["requests"][0]["content"])
155+
self.assertIn(html.escape(store_id), data["requests"][0]["content"])
171156

172157
for val in ["foo", "bar"]:
173158
self.assertIn(val, data["requests"][0]["content"])

0 commit comments

Comments
 (0)