diff --git a/svelte/src/admin_panel/BlockFiles.svelte b/svelte/src/admin_panel/BlockFiles.svelte
index d5314d9..203bb5d 100644
--- a/svelte/src/admin_panel/BlockFiles.svelte
+++ b/svelte/src/admin_panel/BlockFiles.svelte
@@ -54,6 +54,9 @@ let block_form = {
jresp.files_blocked.forEach(file => {
message += "
pixeldrain.com/u/" + file + ""
})
+ jresp.filesystem_nodes_blocked.forEach(file => {
+ message += "pixeldrain.com/d/" + file + ""
+ })
message += ""
return {success: true, message: message}
diff --git a/svelte/src/filesystem/Breadcrumbs.svelte b/svelte/src/filesystem/Breadcrumbs.svelte
index 8763037..87e881e 100644
--- a/svelte/src/filesystem/Breadcrumbs.svelte
+++ b/svelte/src/filesystem/Breadcrumbs.svelte
@@ -14,7 +14,9 @@ export let fs_navigator
class:button_highlight={state.base_index === i}
on:click|preventDefault={() => {fs_navigator.navigate(node.path, true)}}
>
- {#if shared}
+ {#if node.abuse_type !== undefined}
+ block
+ {:else if shared}
share
{/if}
diff --git a/svelte/src/filesystem/edit_window/SharingOptions.svelte b/svelte/src/filesystem/edit_window/SharingOptions.svelte
index c9e42cb..971d78c 100644
--- a/svelte/src/filesystem/edit_window/SharingOptions.svelte
+++ b/svelte/src/filesystem/edit_window/SharingOptions.svelte
@@ -2,6 +2,7 @@
import { createEventDispatcher } from "svelte";
import { domain_url } from "../../util/Util.svelte";
import CopyButton from "../../layout/CopyButton.svelte";
+import { formatDate } from "../../util/Formatting.svelte";
let dispatch = createEventDispatcher()
export let shared
@@ -41,6 +42,16 @@ const toggle_example = () => {
Share this file/directory
+
+{#if file.abuse_type !== undefined}
+
+ This file or directory has received an abuse report. It cannot be
+ shared.
+ Type of abuse: {file.abuse_type}
+ Report time: {formatDate(file.abuse_report_time, true, true, true)}
+
+{/if}
+
When a file or directory is shared it can be accessed through a
unique link. You can get the URL with the 'Copy link' button on
diff --git a/svelte/src/filesystem/filemanager/FileManager.svelte b/svelte/src/filesystem/filemanager/FileManager.svelte
index a8386b2..5b3561a 100644
--- a/svelte/src/filesystem/filemanager/FileManager.svelte
+++ b/svelte/src/filesystem/filemanager/FileManager.svelte
@@ -6,6 +6,7 @@ import ListView from './ListView.svelte'
import GalleryView from './GalleryView.svelte'
import Button from '../../layout/Button.svelte';
import FileImporter from './FileImporter.svelte';
+import { formatDate } from '../../util/Formatting.svelte';
let dispatch = createEventDispatcher()
export let fs_navigator
@@ -359,6 +360,16 @@ onMount(() => {
{/if}
+
+ {#if state.base.abuse_type !== undefined}
+
+ This directory has received an abuse report. It cannot be
+ shared.
+ Type of abuse: {state.base.abuse_type}
+ Report time: {formatDate(state.base.abuse_report_time, true, true, true)}
+
+ {/if}
+
{#if directory_view === "list"}
diff --git a/svelte/src/filesystem/filemanager/ListView.svelte b/svelte/src/filesystem/filemanager/ListView.svelte
index 94a5c1f..7a4d77d 100644
--- a/svelte/src/filesystem/filemanager/ListView.svelte
+++ b/svelte/src/filesystem/filemanager/ListView.svelte
@@ -38,7 +38,10 @@ export let large_icons = false
{/if}
- {#if child.id}
+
+ {#if child.abuse_type !== undefined}
+ block
+ {:else if child.id}
{dispatch("node_share_click", index)}}
diff --git a/svelte/src/user_home/ActivityLog.svelte b/svelte/src/user_home/ActivityLog.svelte
index a9195d9..8280d94 100644
--- a/svelte/src/user_home/ActivityLog.svelte
+++ b/svelte/src/user_home/ActivityLog.svelte
@@ -98,12 +98,14 @@ onMount(() => {
|
{#if row.event === "file_instance_blocked"}
{row.file_name}
+ {:else if row.event === "filesystem_node_blocked"}
+ {row.file_name}
{:else}
{row.file_name}
{/if}
|
- {#if row.event === "file_instance_blocked"}
+ {#if row.event === "file_instance_blocked" || row.event === "filesystem_node_blocked"}
Blocked for abuse
{:else if row.event === "file_instance_expired"}
Expired
diff --git a/webcontroller/filesystem.go b/webcontroller/filesystem.go
index e8af73f..1d4272a 100644
--- a/webcontroller/filesystem.go
+++ b/webcontroller/filesystem.go
@@ -26,12 +26,12 @@ func (wc *WebController) serveDirectory(w http.ResponseWriter, r *http.Request,
if err != nil {
if err.Error() == "not_found" || err.Error() == "path_not_found" {
wc.serveNotFound(w, r)
- return
} else if err.Error() == "forbidden" {
wc.serveForbidden(w, r)
- return
} else if err.Error() == "authentication_required" {
http.Redirect(w, r, "/login", http.StatusSeeOther)
+ } else if err.Error() == "unavailable_for_legal_reasons" {
+ wc.serveUnavailableForLegalReasons(w, r)
} else {
log.Error("Failed to get path: %s", err)
wc.templates.Get().ExecuteTemplate(w, "500", td)
|