aboutsummaryrefslogtreecommitdiffstats
path: root/src/renderer.rs
diff options
context:
space:
mode:
authorJonas Diemer <jonasdiemer@gmail.com>2022-08-03 11:02:21 +0000
committerJonas Diemer <jonasdiemer@gmail.com>2022-09-18 18:24:48 +0000
commit455abe23d0fd2114f7836694502892990180577d (patch)
tree0e20c682fcbfe13a1b7f21a2b175fca4c5172a61 /src/renderer.rs
parentAdded dependency to -u for --restrict-upload-dir (diff)
downloadminiserve-455abe23d0fd2114f7836694502892990180577d.tar.gz
miniserve-455abe23d0fd2114f7836694502892990180577d.zip
Switched to use of PathBuf, fixed for subdirs
Diffstat (limited to 'src/renderer.rs')
-rw-r--r--src/renderer.rs23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/renderer.rs b/src/renderer.rs
index cae09df..2b3d1fa 100644
--- a/src/renderer.rs
+++ b/src/renderer.rs
@@ -39,15 +39,22 @@ pub fn page(
let mkdir_action = build_mkdir_action(&upload_route, encoded_dir);
let title_path = breadcrumbs_to_path_string(breadcrumbs);
- let upload_allowed = conf.restrict_upload_dir.is_empty() ||
- conf.restrict_upload_dir.contains(&encoded_dir[1..].to_string());
-
- let title_path = breadcrumbs
- .iter()
- .map(|el| el.name.clone())
- .collect::<Vec<_>>()
- .join("/");
+ // TODO: Probably not very idiomatic
+ let mut upload_allowed = false;
+
+ if conf.restrict_upload_dir.is_empty() {
+ upload_allowed = true;
+ } else {
+ for restricted_dir in conf.restrict_upload_dir.iter() {
+ let full_restricted_path = &format!("/{}", restricted_dir.display());
+ if encoded_dir.starts_with(full_restricted_path) {
+ upload_allowed = true;
+ break;
+ }
+ }
+ }
+
html! {
(DOCTYPE)
html {