passforios/pass/Controllers/SSHKeySettingTableViewController.swift

61 lines
2.6 KiB
Swift
Raw Normal View History

2017-01-28 00:21:17 +08:00
//
// SSHKeySettingTableViewController.swift
// pass
//
// Created by Mingshen Sun on 25/1/2017.
// Copyright © 2017 Bob Sun. All rights reserved.
//
import UIKit
import SwiftyUserDefaults
2017-02-15 22:34:16 +08:00
import SVProgressHUD
2017-01-28 00:21:17 +08:00
class SSHKeySettingTableViewController: UITableViewController {
@IBOutlet weak var passphraseTextField: UITextField!
@IBOutlet weak var privateKeyURLTextField: UITextField!
@IBOutlet weak var publicKeyURLTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
passphraseTextField.text = Utils.getPasswordFromKeychain(name: "gitRepositorySSHPrivateKeyPassphrase") ?? ""
privateKeyURLTextField.text = Defaults[.gitRepositorySSHPrivateKeyURL]?.absoluteString
publicKeyURLTextField.text = Defaults[.gitRepositorySSHPublicKeyURL]?.absoluteString
2017-01-28 00:21:17 +08:00
var doneBarButtonItem: UIBarButtonItem?
doneBarButtonItem = UIBarButtonItem(title: "Done",
style: UIBarButtonItemStyle.done,
target: self,
action: #selector(doneButtonTapped(_:)))
navigationItem.rightBarButtonItem = doneBarButtonItem
2017-01-31 22:00:50 +08:00
navigationItem.title = "SSH Key"
2017-01-28 00:21:17 +08:00
}
func doneButtonTapped(_ sender: UIButton) {
2017-02-15 22:34:16 +08:00
guard URL(string: publicKeyURLTextField.text!) != nil else {
2017-02-16 00:54:42 +08:00
Utils.alert(title: "Cannot Save", message: "Please set Public Key URL first.", controller: self, completion: nil)
2017-02-15 22:34:16 +08:00
return
}
guard URL(string: privateKeyURLTextField.text!) != nil else {
2017-02-16 00:54:42 +08:00
Utils.alert(title: "Cannot Save", message: "Please set Private Key URL first.", controller: self, completion: nil)
2017-02-15 22:34:16 +08:00
return
}
2017-01-28 00:21:17 +08:00
Defaults[.gitRepositorySSHPublicKeyURL] = URL(string: publicKeyURLTextField.text!)
Defaults[.gitRepositorySSHPrivateKeyURL] = URL(string: privateKeyURLTextField.text!)
2017-02-23 17:34:55 +03:00
Utils.addPasswrodToKeychain(name: "gitRepositorySSHPrivateKeyPassphrase", password: passphraseTextField.text!)
do {
try Data(contentsOf: Defaults[.gitRepositorySSHPublicKeyURL]!).write(to: Globals.sshPublicKeyURL, options: .atomic)
try Data(contentsOf: Defaults[.gitRepositorySSHPrivateKeyURL]!).write(to: Globals.sshPrivateKeyURL, options: .atomic)
} catch {
2017-02-15 22:34:16 +08:00
SVProgressHUD.showError(withStatus: error.localizedDescription)
SVProgressHUD.dismiss(withDelay: 1)
print(error)
}
navigationController!.popViewController(animated: true)
2017-01-28 00:21:17 +08:00
}
}