rpcenv: &mut dyn RpcEnvironment,
userid: &Userid,
password: Option<String>,
+ must_exist: bool,
) -> Result<(), Error> {
let authid: Authid = rpcenv.get_auth_id().unwrap().parse()?;
}
// After authentication, verify that the to-be-modified user actually exists:
- if authid.user() != userid {
+ if must_exist && authid.user() != userid {
let (config, _digest) = crate::config::user::config()?;
if config.sections.get(userid.as_str()).is_none() {
password: Option<String>,
rpcenv: &mut dyn RpcEnvironment,
) -> Result<(), Error> {
- tfa_update_auth(rpcenv, &userid, password)?;
+ tfa_update_auth(rpcenv, &userid, password, false)?;
let _lock = crate::config::tfa::write_lock()?;
r#type: TfaType,
rpcenv: &mut dyn RpcEnvironment,
) -> Result<TfaUpdateInfo, Error> {
- tfa_update_auth(rpcenv, &userid, password)?;
+ tfa_update_auth(rpcenv, &userid, password, true)?;
let need_description =
move || description.ok_or_else(|| format_err!("'description' is required for new entries"));
password: Option<String>,
rpcenv: &mut dyn RpcEnvironment,
) -> Result<(), Error> {
- tfa_update_auth(rpcenv, &userid, password)?;
+ tfa_update_auth(rpcenv, &userid, password, true)?;
let _lock = crate::config::tfa::write_lock()?;