Refactor read_password function to take just the name as argument, not the prompt.

This commit is contained in:
Oleksandr Kozachuk
2023-01-07 13:40:00 +01:00
parent 54c2c0e5a1
commit 122aeaf75b
4 changed files with 9 additions and 13 deletions
+4 -4
View File
@@ -46,7 +46,7 @@ impl<'a> LKEval<'a> {
(_, Some(s)) => Some(s.to_string()), (_, Some(s)) => Some(s.to_string()),
(None, None) => { (None, None) => {
if read { if read {
match (self.read_password)("Master: ".to_string()) { match (self.read_password)("/".to_string()) {
Ok(password) => { Ok(password) => {
let name = "/".to_string(); let name = "/".to_string();
self.cmd_correct(&out, &name, true, Some(password.clone())); self.cmd_correct(&out, &name, true, Some(password.clone()));
@@ -61,7 +61,7 @@ impl<'a> LKEval<'a> {
} }
(Some(pn), None) => { (Some(pn), None) => {
let password = if read { let password = if read {
(self.read_password)(format!("Password for {}: ", pn.lock().borrow().name)).ok() (self.read_password)(pn.lock().borrow().name.to_string()).ok()
} else { } else {
None None
}; };
@@ -139,7 +139,7 @@ impl<'a> LKEval<'a> {
Some(p) => { Some(p) => {
let pwd = match pass { let pwd = match pass {
Some(pp) => pp.to_string(), Some(pp) => pp.to_string(),
None => (self.read_password)(format!("Password for {}: ", p.lock().borrow().name)).unwrap(), None => (self.read_password)(p.lock().borrow().name.to_string()).unwrap(),
}; };
self.cmd_correct(&out, &p.lock().borrow().name, true, Some(pwd.clone())); self.cmd_correct(&out, &p.lock().borrow().name, true, Some(pwd.clone()));
self.state.lock().borrow_mut().secrets.insert(p.lock().borrow().name.to_string(), pwd); self.state.lock().borrow_mut().secrets.insert(p.lock().borrow().name.to_string(), pwd);
@@ -148,7 +148,7 @@ impl<'a> LKEval<'a> {
if name == "/" { if name == "/" {
let pwd = match pass { let pwd = match pass {
Some(pp) => pp.to_string(), Some(pp) => pp.to_string(),
None => (self.read_password)("Master: ".to_string()).unwrap(), None => (self.read_password)("/".to_string()).unwrap(),
}; };
self.cmd_correct(&out, &"/".to_string(), true, Some(pwd.clone())); self.cmd_correct(&out, &"/".to_string(), true, Some(pwd.clone()));
self.state.lock().borrow_mut().secrets.insert("/".to_string(), pwd); self.state.lock().borrow_mut().secrets.insert("/".to_string(), pwd);
+1 -5
View File
@@ -320,22 +320,18 @@ mod tests {
Date::new(2022, 12, 30), Date::new(2022, 12, 30),
None, None,
)); ));
println!("POINT 1");
assert_eq!( assert_eq!(
LKEval::news(Command::Add(t1.clone()), lk.clone()).eval(), LKEval::news(Command::Add(t1.clone()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone()) LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
); );
println!("POINT 2");
assert_eq!( assert_eq!(
LKEval::news(Command::Add(t2.clone()), lk.clone()).eval(), LKEval::news(Command::Add(t2.clone()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone()) LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
); );
println!("POINT 3");
assert_eq!( assert_eq!(
LKEval::news(Command::Add(t3.clone()), lk.clone()).eval(), LKEval::news(Command::Add(t3.clone()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone()) LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
); );
println!("POINT 4");
assert_eq!( assert_eq!(
LKEval::news(Command::Mv("t3".to_string(), "t2".to_string()), lk.clone()).eval(), LKEval::news(Command::Mv("t3".to_string(), "t2".to_string()), lk.clone()).eval(),
LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone()) LKPrint::new(LKOut::from_vecs(vec![], vec![]), false, lk.clone())
@@ -358,7 +354,7 @@ mod tests {
) )
); );
assert_eq!( assert_eq!(
LKEval::newd(Command::Enc("t3".to_string()), lk.clone(), |p| if p == "Master: " { LKEval::newd(Command::Enc("t3".to_string()), lk.clone(), |p| if p == "/" {
Ok("a".to_string()) Ok("a".to_string())
} else { } else {
Err(std::io::Error::new(std::io::ErrorKind::NotFound, "test")) Err(std::io::Error::new(std::io::ErrorKind::NotFound, "test"))
+2 -2
View File
@@ -493,7 +493,7 @@ mod tests {
assert_eq!( assert_eq!(
pr.out, pr.out,
LKOut::from_vecs( LKOut::from_vecs(
vec!["fief gild sits can un very".to_string()], vec!["san bud most noon jaw cash".to_string()],
vec![ vec![
"warning: password / is not marked as correct".to_string(), "warning: password / is not marked as correct".to_string(),
"warning: password t1 is not marked as correct".to_string(), "warning: password t1 is not marked as correct".to_string(),
@@ -523,6 +523,6 @@ mod tests {
] ]
) )
); );
assert_eq!(std::fs::read_to_string("test_pb_out").expect("read"), "fief gild sits can un very"); assert_eq!(std::fs::read_to_string("test_pb_out").expect("read"), "san bud most noon jaw cash");
} }
} }
+2 -2
View File
@@ -139,8 +139,8 @@ pub mod editor {
} }
} }
pub fn password(prompt: impl ToString) -> std::io::Result<String> { pub fn password(pwname: String) -> std::io::Result<String> {
rpassword::prompt_password(prompt) rpassword::prompt_password(format!("Password for {}: ", pwname))
} }
} }