From ce7fabacfabff245f67313a25e2f25908cacca60 Mon Sep 17 00:00:00 2001
From: blek
Date: Fri, 27 Oct 2023 00:41:43 +1000
Subject: [PATCH 1/5] add upload_pass config option
---
filed/config/filed.toml.example | 5 +++++
filed/src/config/types.rs | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/filed/config/filed.toml.example b/filed/config/filed.toml.example
index 9c73491..dd3d161 100644
--- a/filed/config/filed.toml.example
+++ b/filed/config/filed.toml.example
@@ -21,6 +21,11 @@ allow_pass_protection=true
# This is shown only if allow_uploads = false
# upload_disable_reason="File uploads were disabled because of an ongoing attack."
+# If you want to restrict the uploads
+# To only the people who have a password,
+# uncomment this field
+# upload_pass=super_secret_pass
+
# Timeout for deleting a user uploaded file
file_del_timeout=1800
diff --git a/filed/src/config/types.rs b/filed/src/config/types.rs
index dbe8bd4..878230d 100644
--- a/filed/src/config/types.rs
+++ b/filed/src/config/types.rs
@@ -22,6 +22,10 @@ pub struct FilesPolicy {
#[serde(default)]
pub upload_disable_reason: Option,
+ /// Upload password
+ #[serde(default)]
+ pub upload_pass: Option,
+
/// Default time for file to be deleted
#[serde(default)]
pub file_del_timeout: usize,
@@ -42,6 +46,7 @@ impl Default for FilesPolicy {
allow_custom_names: true,
allow_pass_protection: true,
upload_disable_reason: None,
+ upload_pass: None,
file_del_timeout: 1800,
type_whitelist: None,
type_blacklist: None,
--
2.40.1
From 8ae2b5003ca56232cca61164c050dd9e5397fee0 Mon Sep 17 00:00:00 2001
From: blek
Date: Fri, 27 Oct 2023 00:50:02 +1000
Subject: [PATCH 2/5] add password request on upload page
---
filed/static/assets/alert.css | 4 ++++
filed/templates/index.html | 18 ++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/filed/static/assets/alert.css b/filed/static/assets/alert.css
index 6228e95..55bc69d 100644
--- a/filed/static/assets/alert.css
+++ b/filed/static/assets/alert.css
@@ -20,4 +20,8 @@
.alert.danger .alert-title {
background: #602020;
+}
+
+.alert.blue .alert-title {
+ background: #203050;
}
\ No newline at end of file
diff --git a/filed/templates/index.html b/filed/templates/index.html
index 794e74f..bba9521 100644
--- a/filed/templates/index.html
+++ b/filed/templates/index.html
@@ -114,6 +114,24 @@
{%- else -%}
+
+ {%- if let Some(pass) = conf.files.upload_pass -%}
+
+
+ Upload password
+
+
+
This instance requires a password to upload a file.
+
+
+
+
+
+ {%- endif -%}
+
-
--
2.40.1
From cd4eaabeb7b6e0e4d5eec7431482a036b1e95338 Mon Sep 17 00:00:00 2001
From: blek
Date: Fri, 27 Oct 2023 01:17:03 +1000
Subject: [PATCH 5/5] add password field to /api/files/upload method
---
filed/docs/file_api.swagger.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/filed/docs/file_api.swagger.yml b/filed/docs/file_api.swagger.yml
index 4cdab6c..8f0818d 100644
--- a/filed/docs/file_api.swagger.yml
+++ b/filed/docs/file_api.swagger.yml
@@ -111,6 +111,10 @@ paths:
type: string
example: binary file data
description: binary file data
+ instance_pass:
+ type: string
+ example: super_secret_pass
+ description: Instance-specific password needed to upload files
metadata:
type: object
description: file info
--
2.40.1