mirror of
https://github.com/kanidm/kanidm.git
synced 2025-02-24 13:07:00 +01:00
Fixes #203 confirm password dialog
This commit is contained in:
parent
16267e8a29
commit
d4e73ef5c9
|
@ -1,5 +1,7 @@
|
||||||
use crate::common::CommonOpt;
|
use crate::common::CommonOpt;
|
||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
|
use crate::password_prompt;
|
||||||
|
|
||||||
|
|
||||||
#[derive(Debug, StructOpt)]
|
#[derive(Debug, StructOpt)]
|
||||||
pub struct AccountCommonOpt {
|
pub struct AccountCommonOpt {
|
||||||
|
@ -162,10 +164,13 @@ impl AccountOpt {
|
||||||
AccountOpt::Credential(acopt) => match acopt {
|
AccountOpt::Credential(acopt) => match acopt {
|
||||||
AccountCredential::SetPassword(acsopt) => {
|
AccountCredential::SetPassword(acsopt) => {
|
||||||
let client = acsopt.copt.to_client();
|
let client = acsopt.copt.to_client();
|
||||||
let password = rpassword::prompt_password_stderr(
|
let password = match password_prompt(format!("Enter new password for {}: ", acsopt.aopts.account_id).as_str() ) {
|
||||||
format!("Enter new password for {}: ", acsopt.aopts.account_id).as_str(),
|
Some(v) => v,
|
||||||
)
|
None => {
|
||||||
.unwrap();
|
println!("Passwords do not match");
|
||||||
|
return
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
client
|
client
|
||||||
.idm_account_primary_credential_set_password(
|
.idm_account_primary_credential_set_password(
|
||||||
|
@ -234,9 +239,14 @@ impl AccountOpt {
|
||||||
}
|
}
|
||||||
AccountPosix::SetPassword(aopt) => {
|
AccountPosix::SetPassword(aopt) => {
|
||||||
let client = aopt.copt.to_client();
|
let client = aopt.copt.to_client();
|
||||||
let password =
|
let password = match password_prompt("Enter new unit (sudo) password: ") {
|
||||||
rpassword::prompt_password_stderr("Enter new unix (sudo) password: ")
|
Some(v) => v,
|
||||||
.unwrap();
|
None => {
|
||||||
|
println!("Passwords do not match");
|
||||||
|
return
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
client
|
client
|
||||||
.idm_account_unix_cred_put(
|
.idm_account_unix_cred_put(
|
||||||
aopt.aopts.account_id.as_str(),
|
aopt.aopts.account_id.as_str(),
|
||||||
|
|
|
@ -101,3 +101,16 @@ impl ClientOpt {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(crate) fn password_prompt(prompt: &str) -> Option<String> {
|
||||||
|
let password = rpassword::prompt_password_stderr(prompt).unwrap();
|
||||||
|
|
||||||
|
let password_confirm = rpassword::prompt_password_stderr(
|
||||||
|
"Retype the new password to confirm: ").unwrap();
|
||||||
|
|
||||||
|
if password == password_confirm {
|
||||||
|
Some(password)
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue