From 1a0e58b2d34805f0fa2c457129b7c076ef4c06f9 Mon Sep 17 00:00:00 2001 From: Alex Lavallee <73203142+lavalleeale@users.noreply.github.com> Date: Sun, 29 Nov 2020 21:15:59 -0800 Subject: [PATCH] Added comment option when generating key --- Secretive/Views/CreateSecretView.swift | 20 +++++++++++++++++++- Secretive/Views/SecretDetailView.swift | 8 +++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Secretive/Views/CreateSecretView.swift b/Secretive/Views/CreateSecretView.swift index 5753932..bd500b8 100644 --- a/Secretive/Views/CreateSecretView.swift +++ b/Secretive/Views/CreateSecretView.swift @@ -5,9 +5,10 @@ struct CreateSecretView: View { @ObservedObject var store: StoreType @Binding var showing: Bool - + @State private var comment = "" @State private var name = "" @State private var requiresAuthentication = true + let defaults = UserDefaults.standard var body: some View { VStack { @@ -25,6 +26,10 @@ struct CreateSecretView: View { Text("Name:") TextField("Shhhhh", text: $name).focusable() } + HStack { + Text("Comment:") + TextField("\(dashedUserName)@\(dashedHostName)", text: $comment).focusable() + } HStack { Toggle(isOn: $requiresAuthentication) { Text("Requires Authentication (Biometrics or Password)") @@ -45,9 +50,22 @@ struct CreateSecretView: View { } }.padding() } + var dashedUserName: String { + NSUserName().replacingOccurrences(of: " ", with: "-") + } + var dashedHostName: String { + [Host.current().localizedName, "local"] + .compactMap { $0 } + .joined(separator: ".") + .replacingOccurrences(of: " ", with: "-") + } func save() { try! store.create(name: name, requiresAuthentication: requiresAuthentication) + if comment != "" { + defaults.set(comment, forKey: name) + } + defaults.set(comment, forKey: name) showing = false } } diff --git a/Secretive/Views/SecretDetailView.swift b/Secretive/Views/SecretDetailView.swift index 2fd31a3..ef23e2c 100644 --- a/Secretive/Views/SecretDetailView.swift +++ b/Secretive/Views/SecretDetailView.swift @@ -5,6 +5,8 @@ struct SecretDetailView: View { @State var secret: SecretType + let defaults = UserDefaults.standard + private let keyWriter = OpenSSHKeyWriter() var body: some View { @@ -33,7 +35,11 @@ struct SecretDetailView: View { } var keyString: String { - keyWriter.openSSHString(secret: secret, comment: "\(dashedUserName)@\(dashedHostName)") + if defaults.string(forKey: secret.name) != "" { + return keyWriter.openSSHString(secret: secret, comment: defaults.string(forKey: secret.name)) + } else { + return keyWriter.openSSHString(secret: secret, comment: "\(dashedUserName)@\(dashedHostName)") + } } func copy() {