]> OzVa Git service - ozva-cloud/commitdiff
feat: change auth logic/options
authorsigoden <sigoden@gmail.com>
Thu, 2 Jun 2022 11:32:19 +0000 (19:32 +0800)
committersigoden <sigoden@gmail.com>
Thu, 2 Jun 2022 11:36:04 +0000 (19:36 +0800)
README.md
src/args.rs
src/server.rs

index 74e80e83efb605ddeb39e2fa2c91286bde976248..edded01401327a2b5d06eb2f0d54e638e32079c2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -89,15 +89,15 @@ ARGS:
     <path>    Path to a root directory for serving files [default: .]
 
 OPTIONS:
-    -a, --auth <user:pass>      Use HTTP authentication for all operations
+    -a, --auth <user:pass>      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 <address>        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 <port>           Specify port to listen on [default: 5000]
         --path-prefix <path>    Specify an url path prefix
         --render-index          Render index.html when requesting a directory
index cd5935f0b845228e25cafc3d889837528c2787cb..034969cdfb43c352a2d228a978cd15af78faed0e 100644 (file)
@@ -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<String>,
     pub auth: Option<String>,
-    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,
index 011f535eab047369b80a71263d6e4daebbf6a76a..2d7779aa80108362b92a762aa437a78fbd7d0267 100644 (file)
@@ -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,
                 },
             }
         };