]> git.proxmox.com Git - proxmox-backup.git/commitdiff
api2/access/user: drop Option, treat empty Vec as None
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 29 Oct 2020 14:17:53 +0000 (15:17 +0100)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Thu, 29 Oct 2020 14:17:54 +0000 (15:17 +0100)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
src/api2/access/user.rs

index 33568a2599268de3132f95789d9670b4677b9008..2d7f3ceca6daa901410f6a39e65f88d0c5d206c8 100644 (file)
@@ -75,8 +75,8 @@ pub struct UserWithTokens {
     pub lastname: Option<String>,
     #[serde(skip_serializing_if="Option::is_none")]
     pub email: Option<String>,
-    #[serde(skip_serializing_if="Option::is_none")]
-    pub tokens: Option<Vec<user::ApiToken>>,
+    #[serde(skip_serializing_if="Vec::is_empty")]
+    pub tokens: Vec<user::ApiToken>,
 }
 
 impl UserWithTokens {
@@ -89,7 +89,7 @@ impl UserWithTokens {
             firstname: user.firstname,
             lastname: user.lastname,
             email: user.email,
-            tokens: None,
+            tokens: Vec::new(),
         }
     }
 }
@@ -145,7 +145,7 @@ pub fn list_users(
 
     let iter = list.into_iter().filter(filter_by_privs);
     let list = if include_tokens {
-        let tokens:Vec<user::ApiToken> = config.convert_to_typed_array("token")?;
+        let tokens: Vec<user::ApiToken> = config.convert_to_typed_array("token")?;
         let mut user_to_tokens = tokens
             .into_iter()
             .fold(
@@ -162,7 +162,7 @@ pub fn list_users(
         iter
             .map(|user: user::User| {
                 let mut user = UserWithTokens::new(user);
-                user.tokens = user_to_tokens.remove(&user.userid);
+                user.tokens = user_to_tokens.remove(&user.userid).unwrap_or_default();
                 user
             })
             .collect()