[pbs-devel] [PATCH v2 manager 2/2] fix #4734: manager: add user tfa {list, delete} commands
Wolfgang Bumiller
w.bumiller at proxmox.com
Fri Jun 23 08:04:08 CEST 2023
1 minor thing I missed in the 1st round
On Tue, Jun 20, 2023 at 03:39:08PM +0200, Maximiliano Sandoval wrote:
(...)
> diff --git a/src/config/tfa.rs b/src/config/tfa.rs
> index 6b1312bb..3cd7f9aa 100644
> --- a/src/config/tfa.rs
> +++ b/src/config/tfa.rs
> @@ -1,3 +1,4 @@
> +use std::collections::HashMap;
> use std::fs::File;
> use std::io::{self, Read, Seek, SeekFrom};
> use std::os::unix::fs::OpenOptionsExt;
> @@ -302,3 +303,50 @@ impl proxmox_tfa::api::UserChallengeAccess for TfaUserChallengeData {
> TfaUserChallengeData::save(self)
> }
> }
> +
> +// shell completion helper
> +pub fn complete_tfa_id(_arg: &str, param: &HashMap<String, String>) -> Vec<String> {
> + let mut results = Vec::new();
> +
> + let data = match read() {
> + Ok(data) => data,
> + Err(_err) => return results,
> + };
> + let user = match param
> + .get("userid")
> + .and_then(|user_name| data.users.get(user_name))
> + {
> + Some(user) => user,
> + None => return results,
> + };
> +
> + results.extend(
> + user.totp
> + .iter()
> + .map(|token| token.info.id.clone())
> + .collect::<Vec<_>>(),
^ .extend() takes an `IntoIterator`, you already have an iterator, you
can drop the `.collect()` call here
> + );
> + results.extend(
> + user.u2f
> + .iter()
> + .map(|token| token.info.id.clone())
> + .collect::<Vec<_>>(),
^ and here
> + );
> + results.extend(
> + user.webauthn
> + .iter()
> + .map(|token| token.info.id.clone())
> + .collect::<Vec<_>>(),
^ and here
> + );
> + results.extend(
> + user.yubico
> + .iter()
> + .map(|token| token.info.id.clone())
> + .collect::<Vec<_>>(),
^ and here
> + );
> + if user.recovery.is_some() {
> + results.push("recovery".to_string());
> + };
> +
> + results
> +}
> --
> 2.39.2
More information about the pbs-devel
mailing list