diff --git a/pass/GitServerSettingTableViewController.swift b/pass/GitServerSettingTableViewController.swift index 6e71d0d..531d8df 100644 --- a/pass/GitServerSettingTableViewController.swift +++ b/pass/GitServerSettingTableViewController.swift @@ -16,7 +16,7 @@ class GitServerSettingTableViewController: UITableViewController { @IBOutlet weak var passwordTextField: UITextField! @IBOutlet weak var authenticationTableViewCell: UITableViewCell! - var authenticationMethod = "Password" + var authenticationMethod = Defaults[.gitRepositoryAuthenticationMethod] override func viewDidLoad() { @@ -26,7 +26,7 @@ class GitServerSettingTableViewController: UITableViewController { } usernameTextField.text = Defaults[.gitRepositoryUsername] passwordTextField.text = Defaults[.gitRepositoryPassword] - authenticationTableViewCell.detailTextLabel?.text = Defaults[.gitRepositoryAuthenticationMethod] + authenticationTableViewCell.detailTextLabel?.text = authenticationMethod } override func viewDidAppear(_ animated: Bool) { diff --git a/pass/PasswordStore.swift b/pass/PasswordStore.swift index de7ae34..f81720e 100644 --- a/pass/PasswordStore.swift +++ b/pass/PasswordStore.swift @@ -58,7 +58,11 @@ class PasswordStore { if Defaults[.pgpKeyID] != "" { pgp.importKeys(fromFile: Globals.shared.secringPath, allowDuplicates: false) } - gitCredential = GitCredential(credential: GitCredential.Credential.http(userName: Defaults[.gitRepositoryUsername], password: Defaults[.gitRepositoryPassword])) + if Defaults[.gitRepositoryAuthenticationMethod] == "Password" { + gitCredential = GitCredential(credential: GitCredential.Credential.http(userName: Defaults[.gitRepositoryUsername], password: Defaults[.gitRepositoryPassword])) + } else { + gitCredential = GitCredential(credential: GitCredential.Credential.ssh(userName: Defaults[.gitRepositoryUsername], password: Defaults[.gitRepositorySSHPrivateKeyPassphrase]!, publicKeyFile: Defaults[.gitRepositorySSHPublicKeyURL]!, privateKeyFile: Defaults[.gitRepositorySSHPrivateKeyURL]!)) + } } diff --git a/pass/SSHKeySettingTableViewController.swift b/pass/SSHKeySettingTableViewController.swift index fa4f272..a3c8565 100644 --- a/pass/SSHKeySettingTableViewController.swift +++ b/pass/SSHKeySettingTableViewController.swift @@ -27,6 +27,7 @@ class SSHKeySettingTableViewController: UITableViewController { target: self, action: #selector(doneButtonTapped(_:))) navigationItem.rightBarButtonItem = doneBarButtonItem + navigationItem.title = "SSH Key" } func doneButtonTapped(_ sender: UIButton) { diff --git a/pass/SettingsTableViewController.swift b/pass/SettingsTableViewController.swift index 14fd65b..3f3a6a5 100644 --- a/pass/SettingsTableViewController.swift +++ b/pass/SettingsTableViewController.swift @@ -23,7 +23,7 @@ class SettingsTableViewController: UITableViewController { let gitRepostiroyURL = controller.gitRepositoryURLTextField.text! let username = controller.usernameTextField.text! let password = controller.passwordTextField.text! - let auth = controller.authenticationTableViewCell.detailTextLabel!.text! + let auth = controller.authenticationMethod Defaults[.gitRepositoryURL] = URL(string: gitRepostiroyURL) @@ -34,7 +34,12 @@ class SettingsTableViewController: UITableViewController { if Defaults[.gitRepositoryURL] == nil || gitRepostiroyURL != Defaults[.gitRepositoryURL]!.absoluteString { SVProgressHUD.setDefaultMaskType(.black) SVProgressHUD.show(withStatus: "Prepare Repository") - let gitCredential = GitCredential(credential: GitCredential.Credential.http(userName: username, password: password)) + var gitCredential: GitCredential + if Defaults[.gitRepositoryAuthenticationMethod] == "Password" { + gitCredential = GitCredential(credential: GitCredential.Credential.http(userName: username, password: password)) + } else { + gitCredential = GitCredential(credential: GitCredential.Credential.ssh(userName: username, password: Defaults[.gitRepositorySSHPrivateKeyPassphrase]!, publicKeyFile: Defaults[.gitRepositorySSHPublicKeyURL]!, privateKeyFile: Defaults[.gitRepositorySSHPrivateKeyURL]!)) + } DispatchQueue.global(qos: .userInitiated).async { let ret = PasswordStore.shared.cloneRepository(remoteRepoURL: URL(string: gitRepostiroyURL)!,