Add more information to IP ban notification
This commit is contained in:
@@ -6,6 +6,7 @@ import LoadingIndicator from "../util/LoadingIndicator.svelte";
|
|||||||
|
|
||||||
let loading = true
|
let loading = true
|
||||||
let rows = []
|
let rows = []
|
||||||
|
let total_offences = 0
|
||||||
|
|
||||||
let expanded = false
|
let expanded = false
|
||||||
let creating = false
|
let creating = false
|
||||||
@@ -20,6 +21,10 @@ const get_bans = async () => {
|
|||||||
throw new Error(resp.text());
|
throw new Error(resp.text());
|
||||||
}
|
}
|
||||||
rows = await resp.json()
|
rows = await resp.json()
|
||||||
|
|
||||||
|
total_offences = rows.reduce(
|
||||||
|
(acc, curr) => acc + curr.offences.length, 0,
|
||||||
|
)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
alert(err);
|
alert(err);
|
||||||
} finally {
|
} finally {
|
||||||
@@ -83,6 +88,12 @@ onMount(get_bans);
|
|||||||
|
|
||||||
<section>
|
<section>
|
||||||
<div class="toolbar">
|
<div class="toolbar">
|
||||||
|
<div class="toolbar_label">
|
||||||
|
Bans {rows.length}
|
||||||
|
</div>
|
||||||
|
<div class="toolbar_label">
|
||||||
|
Offences {total_offences}
|
||||||
|
</div>
|
||||||
<div class="toolbar_spacer"></div>
|
<div class="toolbar_spacer"></div>
|
||||||
<button class:button_highlight={expanded} on:click={() => {expanded = !expanded}}>
|
<button class:button_highlight={expanded} on:click={() => {expanded = !expanded}}>
|
||||||
{#if expanded}
|
{#if expanded}
|
||||||
@@ -185,6 +196,7 @@ onMount(get_bans);
|
|||||||
}
|
}
|
||||||
.toolbar > * { flex: 0 0 auto; }
|
.toolbar > * { flex: 0 0 auto; }
|
||||||
.toolbar_spacer { flex: 1 1 auto; }
|
.toolbar_spacer { flex: 1 1 auto; }
|
||||||
|
.toolbar_label { margin: 5px; }
|
||||||
|
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
|
@@ -73,6 +73,24 @@ onMount(async () => {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
That these files originated from your IP address does not
|
||||||
|
necessarily mean that they were uploaded by you. It's possible
|
||||||
|
that people on your home/business network are sharing the same
|
||||||
|
IP address. If you're using a VPN then there are often many
|
||||||
|
people using the same IP address. And some ISPs deploy CGNAT, in
|
||||||
|
which case there could be hundreds of people sharing the same IP
|
||||||
|
address. In all of these cases IPv6 is the solution, but most
|
||||||
|
ISPs are decades behind on implementing internet standards. They
|
||||||
|
just don't care.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Now you may be asking: If IP banning is so unreliable, why are
|
||||||
|
you still using it? Well, I need to protect my service from
|
||||||
|
abuse somehow. The alternative is authenticating every user.
|
||||||
|
This adds another barrier to entry and generally complicates
|
||||||
|
things.
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If you would like to dispute your IP ban you can mail me at
|
If you would like to dispute your IP ban you can mail me at
|
||||||
support@pixeldrain.com. Please do not mail unless you have a good
|
support@pixeldrain.com. Please do not mail unless you have a good
|
||||||
|
@@ -86,10 +86,7 @@ export let highlight = false
|
|||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
.body {
|
.body {
|
||||||
display: flex;
|
padding: 0.5em;
|
||||||
padding: 0.4em;
|
|
||||||
flex-direction: column;
|
|
||||||
text-decoration: none;
|
|
||||||
border-top: 1px solid var(--separator);
|
border-top: 1px solid var(--separator);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Reference in New Issue
Block a user