Disallow overwriting existing identities via `pijul id edit`

finchie
Nov 26, 2022, 7:39 AM
YJXRCXOSO2J5BFFR6QKFDVV3RJ5J3QXB4UZ3DVQZLYTF5RJ4TNJAC

Dependencies

  • [2] KKNMDXAI Tweak identity subcommand
  • [3] 4OJWMSOW Fully replace crate::Identity
  • [4] QKBU6HCD Prevent illegal characters in identity name
  • [5] 4KJ45IJL Implement new identity management

Change contents

  • replacement in pijul/src/identity/create.rs at line 32
    [3.29054][3.29054:29133]()
    /// * `replace_current` - If the new identity will replace an existing one
    [3.29054]
    [3.8855]
    /// * `replace_current` - The identity to replace
  • replacement in pijul/src/identity/create.rs at line 35
    [3.8903][3.8903:8934]()
    replace_current: bool,
    [3.8903]
    [3.8934]
    replace_current: Option<&String>,
  • replacement in pijul/src/identity/create.rs at line 45
    [3.29468][3.29468:29520]()
    .with_initial_text(if replace_current {
    [3.29468]
    [3.9110]
    .with_initial_text(if replace_current.is_some() {
  • replacement in pijul/src/identity/create.rs at line 57
    [3.29774][3.29774:29933]()
    if replace_current {
    // The user is trying to edit an existing identity
    Ok(())
    [3.29774]
    [3.29933]
    if let Some(name) = replace_current {
    if name == input {
    // The user is trying to edit an existing identity
    Ok(())
    } else {
    // The user is editing an existing identity but trying to overwrite a different name
    Err(format!("The identity {existing_identity} already exists. Either remove the identity or edit it directly."))
    }
  • replacement in pijul/src/identity/create.rs at line 66
    [3.29966][3.29966:30061]()
    Err(format!("That identity already exists: {existing_identity}",))
    [3.29966]
    [3.30061]
    // The user is creating a new identity but trying to use an existing name
    Err(format!("The identity {existing_identity} already exists. Either remove the identity or edit it directly."))
  • replacement in pijul/src/identity/create.rs at line 346
    [3.38747][3.14103:14162]()
    self.prompt_changes(false, link_remote).await?
    [3.38747]
    [3.38787]
    self.prompt_changes(None, link_remote).await?
  • replacement in pijul/src/commands/identity.rs at line 396
    [3.55139][2.872:947]()
    cli_args.prompt_changes(true, !options.no_link).await?
    [3.55139]
    [3.55202]
    cli_args
    .prompt_changes(Some(&old_identity.name), !options.no_link)
    .await?