From 2662c59fcffe1b62e019b08d1e22c1cd5c741066 Mon Sep 17 00:00:00 2001 From: Jonas Diemer Date: Tue, 2 Aug 2022 15:02:09 +0200 Subject: Added option restrict-upload-dir --- src/renderer.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index c8958fe..8bee00f 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -38,8 +38,15 @@ pub fn page( let upload_action = build_upload_action(&upload_route, encoded_dir, sort_method, sort_order); let mkdir_action = build_mkdir_action(&upload_route, encoded_dir); + let upload_allowed = conf.restrict_upload_dir.contains(&encoded_dir[1..].to_string()); let title_path = breadcrumbs_to_path_string(breadcrumbs); + let title_path = breadcrumbs + .iter() + .map(|el| el.name.clone()) + .collect::>() + .join("/"); + html! { (DOCTYPE) html { @@ -120,7 +127,7 @@ pub fn page( } } div.toolbar_box_group { - @if conf.file_upload { + @if conf.file_upload && upload_allowed { div.toolbar_box { form id="file_submit" action=(upload_action) method="POST" enctype="multipart/form-data" { p { "Select a file to upload or drag it anywhere into the window" } -- cgit v1.2.3 From 193bd544ff92734eba7ce26c218d6a7d014e02e8 Mon Sep 17 00:00:00 2001 From: Jonas Diemer Date: Tue, 2 Aug 2022 17:28:49 +0200 Subject: fixed rendering of upload if non-restricted --- src/renderer.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 8bee00f..cae09df 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -38,8 +38,9 @@ pub fn page( let upload_action = build_upload_action(&upload_route, encoded_dir, sort_method, sort_order); let mkdir_action = build_mkdir_action(&upload_route, encoded_dir); - let upload_allowed = conf.restrict_upload_dir.contains(&encoded_dir[1..].to_string()); 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() -- cgit v1.2.3 From 455abe23d0fd2114f7836694502892990180577d Mon Sep 17 00:00:00 2001 From: Jonas Diemer Date: Wed, 3 Aug 2022 13:02:21 +0200 Subject: Switched to use of PathBuf, fixed for subdirs --- src/renderer.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/renderer.rs') 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::>() - .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 { -- cgit v1.2.3 From e5804835e491b77625541b025669efa5524d8102 Mon Sep 17 00:00:00 2001 From: Jonas Diemer Date: Wed, 3 Aug 2022 13:32:57 +0200 Subject: cleaned up code using any() --- src/renderer.rs | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 2b3d1fa..0ee26af 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -40,20 +40,8 @@ pub fn page( let title_path = breadcrumbs_to_path_string(breadcrumbs); - // 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; - } - } - } + let upload_allowed = conf.restrict_upload_dir.is_empty() || conf.restrict_upload_dir.iter().any( + |x| encoded_dir.starts_with(&format!("/{}", x.display())) ); html! { (DOCTYPE) -- cgit v1.2.3 From 550ae0151c1dadc6c1f00df300d88528c29fbf49 Mon Sep 17 00:00:00 2001 From: Jonas Diemer Date: Thu, 4 Aug 2022 11:20:37 +0200 Subject: Renamed option for more clarity --- src/renderer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 0ee26af..107f0a4 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -40,7 +40,7 @@ pub fn page( let title_path = breadcrumbs_to_path_string(breadcrumbs); - let upload_allowed = conf.restrict_upload_dir.is_empty() || conf.restrict_upload_dir.iter().any( + let upload_allowed = conf.allowed_upload_dir.is_empty() || conf.allowed_upload_dir.iter().any( |x| encoded_dir.starts_with(&format!("/{}", x.display())) ); html! { -- cgit v1.2.3 From d905b68ca93c42769c3ebddf472a2916dc75b012 Mon Sep 17 00:00:00 2001 From: Jonas Diemer Date: Wed, 17 Aug 2022 10:28:46 +0200 Subject: cargo fmt --- src/renderer.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index 107f0a4..b98a595 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -40,9 +40,12 @@ pub fn page( let title_path = breadcrumbs_to_path_string(breadcrumbs); - let upload_allowed = conf.allowed_upload_dir.is_empty() || conf.allowed_upload_dir.iter().any( - |x| encoded_dir.starts_with(&format!("/{}", x.display())) ); - + let upload_allowed = conf.allowed_upload_dir.is_empty() + || conf + .allowed_upload_dir + .iter() + .any(|x| encoded_dir.starts_with(&format!("/{}", x.display()))); + html! { (DOCTYPE) html { -- cgit v1.2.3 From 6577af2b8d802ad213968e4b7c9f2823c1ab52dc Mon Sep 17 00:00:00 2001 From: Jonas Diemer Date: Mon, 19 Sep 2022 13:06:17 +0200 Subject: Changed handling of allowed path to fix Windows --- src/renderer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index b98a595..38d2617 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -44,7 +44,7 @@ pub fn page( || conf .allowed_upload_dir .iter() - .any(|x| encoded_dir.starts_with(&format!("/{}", x.display()))); + .any(|x| encoded_dir.starts_with(&format!("/{}", x))); html! { (DOCTYPE) -- cgit v1.2.3