From 46348dfb1d65e6077ebb6441dcfdeeca003c27cb Mon Sep 17 00:00:00 2001 From: sigoden Date: Tue, 3 Dec 2024 17:58:27 +0800 Subject: refactor: allow `.edit role` in empty session with role (#1031) --- src/config/mod.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/config') diff --git a/src/config/mod.rs b/src/config/mod.rs index c98c81d..2eecf62 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -915,7 +915,17 @@ impl Config { } pub fn edit_role(&mut self) -> Result<()> { - if let Some(name) = self.role.as_ref().map(|v| v.name().to_string()) { + if let Some(session) = self.session.as_ref() { + if let Some(name) = session.role_name().map(|v| v.to_string()) { + if session.is_empty() { + self.upsert_role(&name) + } else { + bail!("Cannot perform this operation because you are in a non-empty session") + } + } else { + bail!("No role") + } + } else if let Some(name) = self.role.as_ref().map(|v| v.name().to_string()) { self.upsert_role(&name) } else { bail!("No role") -- cgit v1.2.3