New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Setting the path_filter and show_files_listing, but list page still show all files. #3207
Comments
current solution is impl Files::new("/", EXAMPLES_DIR)
.files_listing_renderer(|dir, req| {
Ok(ServiceResponse::new(
req.clone(),
HttpResponse::Ok().body(dir.path.to_str().unwrap().to_owned()),
))
})
.show_files_listing() the |
Thx, this is the code that works properly, for future reference for anyone who might need it .service(
Files::new("/", EXAMPLES_DIR)
.files_listing_renderer(|dir, req| {
let files: Vec<_> = dir
.path
.read_dir()
.unwrap()
.filter_map(|d| match d {
Ok(dir) => {
let name = dir.file_name();
let s = name.to_string_lossy().to_string();
let include_files = ["lib.rs", "range.rs"];
if include_files.contains(&s.as_str()) {
return Some(s);
}
None
}
_ => None,
})
.map(|s| format!("<li><a target='_blank' href='/{}'>{}</a></li>", s, s))
.collect();
let html = format!(
r"
<html><head>
<meta charset='utf-8'>
<title>Index of /</title></head><body><h1>Index of /</h1><ul>{}</ul></body>
</html>
",
files.join("\n")
);
Ok(ServiceResponse::new(
req.clone(),
HttpResponse::Ok().body(html),
))
})
.show_files_listing(),``` |
Expected Behavior
Only display the files that pass the filter, as in the example above, only the lib.rs file should be displayed.
Current Behavior
Display all files, but only those passed by the filter can be accessed.
Possible Solution
Add a filter parameter to the DirectoryRenderer function, or add a filter field to the Directory.
Steps to Reproduce (for bugs)
Context
When I set a filter, it indicates that I don't want users to be aware of the existence of certain files. However, these files are still displayed on the list page and are inaccessible, which can confuse users.
Your Environment
rustc -V
): rustc 1.76.0-nightly (1e9dda77b 2023-11-22)The text was updated successfully, but these errors were encountered: