WebBrowser/Passwords/PasswordManager.py

branch
QtWebEngine
changeset 4749
750577d35452
parent 4744
ad3f6c1caf8d
child 4751
f745a556fd6f
--- a/WebBrowser/Passwords/PasswordManager.py	Thu Feb 18 20:19:33 2016 +0100
+++ b/WebBrowser/Passwords/PasswordManager.py	Fri Feb 19 19:26:54 2016 +0100
@@ -268,7 +268,7 @@
         @param data data to be submitted
         @type QByteArray
         @param page reference to the calling page
-        @type QWrbEnginePage
+        @type QWebEnginePage
         """
         # shall passwords be saved?
         if not Preferences.getUser("SavePasswords"):
@@ -278,6 +278,9 @@
                 .isPrivate():
             return
         
+        if not self.__loaded:
+            self.__load()
+        
         if urlStr in self.__never:
             return
         
@@ -315,7 +318,9 @@
             form = LoginForm()
             form.url = url
             form.name = userName
-            form.postData = QByteArray(data)
+            form.postData = Utilities.crypto.pwConvert(
+                bytes(data).decode("utf-8"), encode=True)
+##            form.postData = QByteArray(data)
             self.__loginForms[key] = form
             self.changed.emit()
     
@@ -361,7 +366,9 @@
         if form.url != url:
             return
         
-        script = Scripts.completeFormData(form.postData)
+        postData = QByteArray(Utilities.crypto.pwConvert(
+                form.postData, encode=False).encode("utf-8"))
+        script = Scripts.completeFormData(postData)
         page.runJavaScript(script)
     
     def masterPasswordChanged(self, oldPassword, newPassword):
@@ -374,14 +381,17 @@
         if not self.__loaded:
             self.__load()
         
+        # TODO: change this to include postData
         progress = E5ProgressDialog(
             self.tr("Re-encoding saved passwords..."),
-            None, 0, len(self.__logins), self.tr("%v/%m Passwords"),
+            None, 0, len(self.__logins) + len(self.__loginForms),
+            self.tr("%v/%m Passwords"),
             QApplication.activeModalWidget())
         progress.setMinimumDuration(0)
         progress.setWindowTitle(self.tr("Passwords"))
         count = 0
         
+        # step 1: do the logins
         for key in self.__logins:
             progress.setValue(count)
             QCoreApplication.processEvents()
@@ -390,6 +400,16 @@
             self.__logins[key] = (username, hash)
             count += 1
         
-        progress.setValue(len(self.__logins))
+        # step 2: do the login forms
+        for key in self.__loginForms:
+            progress.setValue(count)
+            QCoreApplication.processEvents()
+            postData = self.__loginForms[key].postData
+            postData = Utilities.crypto.pwRecode(
+                postData, oldPassword, newPassword)
+            self.__loginForms[key].postData = postData
+            count += 1
+        
+        progress.setValue(len(self.__logins) + len(self.__loginForms))
         QCoreApplication.processEvents()
         self.changed.emit()

eric ide

mercurial