Skip to content

Commit 4ba8002

Browse files
committed
Use CSRF token in save portadmin requests
Resolves #3444
1 parent b977361 commit 4ba8002

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

python/nav/web/static/js/src/portadmin.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ require(['libs/spin.min', 'libs/jquery-ui.min'], function (Spinner) {
346346
var $row = $('#' + rowid);
347347
var interfaceData = queue_data[rowid];
348348
var listItem = feedback.savingInterface($row);
349+
const csrfToken = $('#save-changes-form [name="csrfmiddlewaretoken"]').val();
349350
$.ajax({url: "save_interfaceinfo",
350351
data: interfaceData,
351352
dataType: 'json',
@@ -354,6 +355,9 @@ require(['libs/spin.min', 'libs/jquery-ui.min'], function (Spinner) {
354355
disableButtons($row);
355356
// spinner.spin($row);
356357
},
358+
headers: {
359+
'X-CSRFToken': csrfToken
360+
},
357361
success: function () {
358362
clearChangedState($row);
359363
updateDefaults($row, interfaceData);
@@ -400,13 +404,21 @@ require(['libs/spin.min', 'libs/jquery-ui.min'], function (Spinner) {
400404
/** Do a request to commit changes to startup config */
401405
console.log('Sending commit configuration request');
402406

403-
var status = feedback.committingConfig();
404-
var request = $.post('commit_configuration', {'interfaceid': interfaceid});
407+
const status = feedback.committingConfig();
408+
const csrfToken = $('#save-changes-form input[name="csrfmiddlewaretoken"]').val();
409+
const request = $.ajax({
410+
url: 'commit_configuration',
411+
type: 'POST',
412+
data: {'interfaceid': interfaceid},
413+
headers: {
414+
'X-CSRFToken': csrfToken
415+
},
416+
});
405417
request.done(function() {
406418
feedback.endProgress(status, 'success', request.responseText);
407419
restartInterfaces();
408420
});
409-
request.fail(function() {
421+
request.fail(function(err) {
410422
feedback.endProgress(status, 'alert', request.responseText);
411423
feedback.addCloseButton();
412424
});

python/nav/web/templates/portadmin/portlist.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
{% if handlertype %}({{ handlertype }}){% endif %}
1515

1616
</div>
17-
17+
<form id="save-changes-form" style="display: none;">
18+
{% csrf_token %}
19+
</form>
1820
<div class="row header_row">
1921
<div class="hide-for-small medium-2 column">
2022
Port

0 commit comments

Comments
 (0)