diff --git a/README.md b/README.md index 74e80e8..edded01 100644 --- a/README.md +++ b/README.md @@ -89,15 +89,15 @@ ARGS: Path to a root directory for serving files [default: .] OPTIONS: - -a, --auth Use HTTP authentication for all operations + -a, --auth Use HTTP authentication to restrict write + --auth-access Enhance authentication to restrict access -A, --allow-all Allow all operations - --allow-delete Allow delete operation - --allow-symlink Allow symlink to directories/files outside root directory - --allow-upload Allow upload operation + --allow-delete Allow delete files/folders + --allow-symlink Allow symlink to files/folders outside root directory + --allow-upload Allow upload files/folders -b, --bind
Specify bind address [default: 127.0.0.1] --cors Enable CORS, sets `Access-Control-Allow-Origin: *` -h, --help Print help information - --no-auth-read Do not authenticate read operations like static serving -p, --port Specify port to listen on [default: 5000] --path-prefix Specify an url path prefix --render-index Render index.html when requesting a directory diff --git a/src/args.rs b/src/args.rs index cd5935f..034969c 100644 --- a/src/args.rs +++ b/src/args.rs @@ -49,17 +49,17 @@ fn app() -> clap::Command<'static> { .arg( Arg::new("allow-upload") .long("allow-upload") - .help("Allow upload operation"), + .help("Allow upload files/folders"), ) .arg( Arg::new("allow-delete") .long("allow-delete") - .help("Allow delete operation"), + .help("Allow delete files/folders"), ) .arg( Arg::new("allow-symlink") .long("allow-symlink") - .help("Allow symlink to directories/files outside root directory"), + .help("Allow symlink to files/folders outside root directory"), ) .arg( Arg::new("render-index") @@ -74,14 +74,16 @@ fn app() -> clap::Command<'static> { .arg( Arg::new("auth") .short('a') + .display_order(1) .long("auth") - .help("Use HTTP authentication for all operations") + .help("Use HTTP authentication to restrict write") .value_name("user:pass"), ) .arg( - Arg::new("no-auth-read") - .long("no-auth-read") - .help("Do not authenticate read operations like static serving"), + Arg::new("auth-access") + .display_order(1) + .long("auth-access") + .help("Enhance authentication to restrict access"), ) .arg( Arg::new("cors") @@ -113,7 +115,7 @@ pub struct Args { pub path: PathBuf, pub path_prefix: Option, pub auth: Option, - pub no_auth_read: bool, + pub auth_access: bool, pub allow_upload: bool, pub allow_delete: bool, pub allow_symlink: bool, @@ -135,7 +137,7 @@ impl Args { let path_prefix = matches.value_of("path-prefix").map(|v| v.to_owned()); let cors = matches.is_present("cors"); let auth = matches.value_of("auth").map(|v| v.to_owned()); - let no_auth_read = matches.is_present("no-auth-read"); + let auth_access = matches.is_present("auth-access"); let allow_upload = matches.is_present("allow-all") || matches.is_present("allow-upload"); let allow_delete = matches.is_present("allow-all") || matches.is_present("allow-delete"); let allow_symlink = matches.is_present("allow-all") || matches.is_present("allow-symlink"); @@ -156,7 +158,7 @@ impl Args { path, path_prefix, auth, - no_auth_read, + auth_access, cors, allow_delete, allow_upload, diff --git a/src/server.rs b/src/server.rs index 011f535..2d7779a 100644 --- a/src/server.rs +++ b/src/server.rs @@ -519,7 +519,7 @@ impl InnerService { .unwrap_or_default(), _ => false, }, - None => self.args.no_auth_read && req.method() == Method::GET, + None => !self.args.auth_access && req.method() == Method::GET, }, } };