--- a/src/eric7/WebBrowser/Passwords/PasswordManager.py Tue Oct 18 16:05:20 2022 +0200 +++ b/src/eric7/WebBrowser/Passwords/PasswordManager.py Tue Oct 18 16:06:21 2022 +0200 @@ -10,27 +10,27 @@ import os from PyQt6.QtCore import ( - pyqtSignal, - QObject, QByteArray, - QUrl, QCoreApplication, + QObject, + QUrl, QXmlStreamReader, + pyqtSignal, ) +from PyQt6.QtWebEngineCore import QWebEngineScript from PyQt6.QtWidgets import QApplication -from PyQt6.QtWebEngineCore import QWebEngineScript -from EricWidgets import EricMessageBox -from EricWidgets.EricProgressDialog import EricProgressDialog +from eric7 import Preferences, Utilities + +from eric7.EricWidgets import EricMessageBox +from eric7.EricWidgets.EricProgressDialog import EricProgressDialog -from Utilities.AutoSaver import AutoSaver -import Utilities -import Utilities.crypto -import Preferences +from eric7.Utilities import crypto +from eric7.Utilities.AutoSaver import AutoSaver -import WebBrowser.WebBrowserWindow -from ..Tools import Scripts -from ..WebBrowserPage import WebBrowserPage +from eric7.WebBrowser.Tools import Scripts +from eric7.WebBrowser.WebBrowserPage import WebBrowserPage +from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow class PasswordManager(QObject): @@ -59,7 +59,7 @@ script.setWorldId(WebBrowserPage.SafeJsWorld) script.setRunsOnSubFrames(True) script.setSourceCode(Scripts.setupFormObserver()) - profile = WebBrowser.WebBrowserWindow.WebBrowserWindow.webProfile() + profile = WebBrowserWindow.webProfile() profile.scripts().insert(script) self.__logins = {} @@ -98,7 +98,7 @@ key = self.__createKey(url, realm) try: - return self.__logins[key][0], Utilities.crypto.pwConvert( + return self.__logins[key][0], crypto.pwConvert( self.__logins[key][1], encode=False ) except KeyError: @@ -119,7 +119,7 @@ key = self.__createKey(url, realm) self.__logins[key] = ( username, - Utilities.crypto.pwConvert(password, encode=True), + crypto.pwConvert(password, encode=True), ) self.changed.emit() @@ -153,14 +153,12 @@ """ Public slot to save the login entries to disk. """ + from .PasswordWriter import PasswordWriter + if not self.__loaded: return - from WebBrowser.WebBrowserWindow import WebBrowserWindow - if not WebBrowserWindow.isPrivate(): - from .PasswordWriter import PasswordWriter - loginFile = self.getFileName() writer = PasswordWriter() if not writer.write( @@ -180,13 +178,13 @@ """ Private method to load the saved login credentials. """ + from .PasswordReader import PasswordReader + if self.__loaded: return loginFile = self.getFileName() if os.path.exists(loginFile): - from .PasswordReader import PasswordReader - reader = PasswordReader() self.__logins, self.__loginForms, self.__never = reader.read(loginFile) if reader.error() != QXmlStreamReader.Error.NoError: @@ -266,7 +264,7 @@ if site not in self.__logins: return None - return self.__logins[site][0], Utilities.crypto.pwConvert( + return self.__logins[site][0], crypto.pwConvert( self.__logins[site][1], encode=False ) @@ -285,11 +283,13 @@ @param page reference to the calling page @type QWebEnginePage """ + from .LoginForm import LoginForm + # shall passwords be saved? if not Preferences.getUser("SavePasswords"): return - if WebBrowser.WebBrowserWindow.WebBrowserWindow.isPrivate(): + if WebBrowserWindow.isPrivate(): return if not self.__loaded: @@ -329,16 +329,12 @@ self.__logins[key] = ( userName, - Utilities.crypto.pwConvert(password, encode=True), + crypto.pwConvert(password, encode=True), ) - from .LoginForm import LoginForm - form = LoginForm() form.url = url form.name = userName - form.postData = Utilities.crypto.pwConvert( - bytes(data).decode("utf-8"), encode=True - ) + form.postData = crypto.pwConvert(bytes(data).decode("utf-8"), encode=True) self.__loginForms[key] = form self.changed.emit() @@ -385,7 +381,7 @@ return postData = QByteArray( - Utilities.crypto.pwConvert(form.postData, encode=False).encode("utf-8") + crypto.pwConvert(form.postData, encode=False).encode("utf-8") ) script = Scripts.completeFormData(postData) page.runJavaScript(script, WebBrowserPage.SafeJsWorld) @@ -417,7 +413,7 @@ progress.setValue(count) QCoreApplication.processEvents() username, pwHash = self.__logins[key] - pwHash = Utilities.crypto.pwRecode(pwHash, oldPassword, newPassword) + pwHash = crypto.pwRecode(pwHash, oldPassword, newPassword) self.__logins[key] = (username, pwHash) count += 1 @@ -426,7 +422,7 @@ progress.setValue(count) QCoreApplication.processEvents() postData = self.__loginForms[key].postData - postData = Utilities.crypto.pwRecode(postData, oldPassword, newPassword) + postData = crypto.pwRecode(postData, oldPassword, newPassword) self.__loginForms[key].postData = postData count += 1