1
0
mirror of https://framagit.org/luc/lufi.git synced 2025-10-05 22:02:39 +02:00

🐛 — Fix bug in POST file deletion (#319)

This commit is contained in:
Luc Didry
2025-08-29 15:37:02 +02:00
parent f5a0366e45
commit 333a3823a4
5 changed files with 31 additions and 21 deletions

View File

@@ -2,6 +2,9 @@ Revision history for Lufi
0.08.0 ????-??-??
0.07.2 ????-??-??
- 🐛 — Fix bug in POST file deletion (#319)
0.07.1 2025-07-16
- 🚚 — Use POST to delete a file instead of GET

View File

@@ -470,7 +470,7 @@ sub delete {
my $token = $c->param('token');
if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd')) && !defined($c->config('auth_headers'))) || $c->is_user_authenticated) {
if ($c->validation->csrf_protect->has_error('csrf_token')) {
if (!(defined($c->param('_format')) && $c->param('_format') eq 'json') && $c->validation->csrf_protect->has_error('csrf_token')) {
$c->flash(msg => $c->l('Bad CSRF token.'));
$c->redirect_to('delete', $short, $token);
} else {
@@ -495,9 +495,10 @@ sub delete {
},
any => sub {
$c->render(
template => 'msg',
f => $ldfile,
msg => $msg
template => 'msg',
f => $ldfile,
msg => $msg,
del_short_from_localstorage => $short
);
}
);

View File

@@ -27,6 +27,21 @@ function formatDate(unixTimestamp) {
minute: '2-digit',
})
}
function delItem(name) {
var files = localStorage.getItem(`${window.prefix}files`);
if (files === null) {
files = new Array();
} else {
files = JSON.parse(files);
}
var i;
for (i = 0; i < files.length; i++) {
if (files[i].short === name) {
files.splice(i, 1);
}
}
localStorage.setItem(`${window.prefix}files`, JSON.stringify(files));
}
$(document).ready(function(){
$('select').material_select();
$(".select-lang select").on('change', changeLang);

View File

@@ -11,22 +11,6 @@ function addItem(item) {
localStorage.setItem(`${window.prefix}files`, JSON.stringify(files));
}
function delItem(name) {
var files = localStorage.getItem(`${window.prefix}files`);
if (files === null) {
files = new Array();
} else {
files = JSON.parse(files);
}
var i;
for (i = 0; i < files.length; i++) {
if (files[i].short === name) {
files.splice(i, 1);
}
}
localStorage.setItem(`${window.prefix}files`, JSON.stringify(files));
}
function itemExists(name) {
var files = localStorage.getItem(`${window.prefix}files`);
if (files === null) {
@@ -140,7 +124,7 @@ function delFile() {
var short = $(this).attr('data-short');
$.ajax({
url: dlink,
method: 'GET',
method: 'POST',
data: {
_format: 'json'
},

View File

@@ -20,3 +20,10 @@
</div>
</div>
</div>
% if (defined stash('del_short_from_localstorage')) {
<script>
$(document).ready(function(){
delItem('<%= stash('del_short_from_localstorage') %>');
});
</script>
% }