From b60ce3b00321227f1f994c4a20ce10ebab91a7dc Mon Sep 17 00:00:00 2001 From: Danny Moesch Date: Tue, 10 Dec 2019 23:20:59 +0100 Subject: [PATCH] Fix #340: Always end password entries with a newline --- .../Controllers/AddPasswordTableViewController.swift | 5 ----- .../EditPasswordTableViewController.swift | 10 +++------- .../PasswordEditorTableViewController.swift | 12 ++++++++++++ passKit/Models/Password.swift | 1 - 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/pass/Controllers/AddPasswordTableViewController.swift b/pass/Controllers/AddPasswordTableViewController.swift index 3647912..94e2578 100644 --- a/pass/Controllers/AddPasswordTableViewController.swift +++ b/pass/Controllers/AddPasswordTableViewController.swift @@ -49,11 +49,6 @@ class AddPasswordTableViewController: PasswordEditorTableViewController { override func prepare(for segue: UIStoryboardSegue, sender: Any?) { super.prepare(for: segue, sender: sender) if segue.identifier == "saveAddPasswordSegue" { - var plainText = (fillPasswordCell?.getContent())! - if let additionsString = additionsCell?.getContent(), additionsString.isEmpty == false { - plainText.append("\n") - plainText.append(additionsString) - } let (name, url) = getNameURL() password = Password(name: name, url: url, plainText: plainText) } diff --git a/pass/Controllers/EditPasswordTableViewController.swift b/pass/Controllers/EditPasswordTableViewController.swift index 2d7eb32..b0269c3 100644 --- a/pass/Controllers/EditPasswordTableViewController.swift +++ b/pass/Controllers/EditPasswordTableViewController.swift @@ -38,14 +38,10 @@ class EditPasswordTableViewController: PasswordEditorTableViewController { override func prepare(for segue: UIStoryboardSegue, sender: Any?) { super.prepare(for: segue, sender: sender) if segue.identifier == "saveEditPasswordSegue" { - var plainText = (fillPasswordCell?.getContent())! - if let additionsString = additionsCell?.getContent(), additionsString.isEmpty == false { - plainText.append("\n") - plainText.append(additionsString) - } + let editedPlainText = plainText let (name, url) = getNameURL() - if password!.plainText != plainText || password!.url.path != url.path { - password!.updatePassword(name: name, url: url, plainText: plainText) + if password!.plainText != editedPlainText || password!.url.path != url.path { + password!.updatePassword(name: name, url: url, plainText: editedPlainText) } } } diff --git a/pass/Controllers/PasswordEditorTableViewController.swift b/pass/Controllers/PasswordEditorTableViewController.swift index 5bd2d52..3888bbf 100644 --- a/pass/Controllers/PasswordEditorTableViewController.swift +++ b/pass/Controllers/PasswordEditorTableViewController.swift @@ -43,6 +43,18 @@ class PasswordEditorTableViewController: UITableViewController, FillPasswordTabl private var scanQRCodeCell: UITableViewCell? private var memorablePasswordGeneratorCell: UITableViewCell? + var plainText: String { + var plainText = (fillPasswordCell?.getContent())! + if let additionsString = additionsCell?.getContent(), !additionsString.isEmpty { + plainText.append("\n") + plainText.append(additionsString) + } + if !plainText.trimmingCharacters(in: .whitespaces).hasSuffix("\n") { + plainText.append("\n") + } + return plainText + } + override func loadView() { super.loadView() diff --git a/passKit/Models/Password.swift b/passKit/Models/Password.swift index e534e23..fde83b9 100644 --- a/passKit/Models/Password.swift +++ b/passKit/Models/Password.swift @@ -79,7 +79,6 @@ public class Password { initEverything() } - public func updatePassword(name: String, url: URL, plainText: String) { guard self.plainText != plainText || self.url != url else { return