Refactor read_password function to take just the name as argument, not the prompt.
This commit is contained in:
+4
-4
@@ -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
@@ -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
@@ -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
@@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user