From e43e5ce74a85d87a625295b9b089a1b5b8e26fab Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Sun, 9 May 2021 20:11:17 +0100 Subject: Add logout, only login if not already logged in (#91) Also: - Ensures that a key is generated as soon as a user registers! - Ensures that "atuin key" will generate a key if needed, and doesn't double base64 encode data And a few other little fixes :) Resolves #85 Resolves #86 --- src/command/login.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/command/login.rs') diff --git a/src/command/login.rs b/src/command/login.rs index eacb2105..9a144580 100644 --- a/src/command/login.rs +++ b/src/command/login.rs @@ -22,6 +22,16 @@ pub struct Cmd { impl Cmd { pub fn run(&self, settings: &Settings) -> Result<()> { + let session_path = atuin_common::utils::data_dir().join("session"); + + if session_path.exists() { + println!( + "You are already logged in! Please run 'atuin logout' if you wish to login again" + ); + + return Ok(()); + } + let session = api_client::login( settings.sync_address.as_str(), self.username.as_str(), @@ -34,7 +44,7 @@ impl Cmd { let key_path = settings.key_path.as_str(); let mut file = File::create(key_path)?; - file.write_all(&base64::decode(self.key.clone())?)?; + file.write_all(self.key.as_bytes())?; println!("Logged in!"); -- cgit v1.3.1