100 if not self.__loaded: |
100 if not self.__loaded: |
101 self.__load() |
101 self.__load() |
102 |
102 |
103 key = self.__createKey(url, realm) |
103 key = self.__createKey(url, realm) |
104 self.__logins[key] = ( |
104 self.__logins[key] = ( |
105 username, |
105 username, |
106 Utilities.crypto.pwConvert(password, encode=True) |
106 Utilities.crypto.pwConvert(password, encode=True) |
107 ) |
107 ) |
108 self.changed.emit() |
108 self.changed.emit() |
109 |
109 |
110 def __createKey(self, url, realm): |
110 def __createKey(self, url, realm): |
166 if reader.error() != QXmlStreamReader.NoError: |
166 if reader.error() != QXmlStreamReader.NoError: |
167 E5MessageBox.warning( |
167 E5MessageBox.warning( |
168 None, |
168 None, |
169 self.trUtf8("Loading login data"), |
169 self.trUtf8("Loading login data"), |
170 self.trUtf8("""Error when loading login data on""" |
170 self.trUtf8("""Error when loading login data on""" |
171 """ line {0}, column {1}:\n{2}""")\ |
171 """ line {0}, column {1}:\n{2}""") |
172 .format(reader.lineNumber(), |
172 .format(reader.lineNumber(), |
173 reader.columnNumber(), |
173 reader.columnNumber(), |
174 reader.errorString())) |
174 reader.errorString())) |
175 |
175 |
176 self.__loaded = True |
176 self.__loaded = True |
177 |
177 |
178 def __loadNonXml(self, loginFile): |
178 def __loadNonXml(self, loginFile): |
179 """ |
179 """ |
193 E5MessageBox.critical( |
193 E5MessageBox.critical( |
194 None, |
194 None, |
195 self.trUtf8("Loading login data"), |
195 self.trUtf8("Loading login data"), |
196 self.trUtf8("""<p>Login data could not be loaded """ |
196 self.trUtf8("""<p>Login data could not be loaded """ |
197 """from <b>{0}</b></p>""" |
197 """from <b>{0}</b></p>""" |
198 """<p>Reason: {1}</p>""")\ |
198 """<p>Reason: {1}</p>""") |
199 .format(loginFile, str(err))) |
199 .format(loginFile, str(err))) |
200 return |
200 return |
201 |
201 |
202 data = [] |
202 data = [] |
203 section = 0 # 0 = login data, 1 = forms data, |
203 section = 0 # 0 = login data, 1 = forms data, |
204 # 2 = never store info |
204 # 2 = never store info |
219 None, |
219 None, |
220 self.trUtf8("Loading login data"), |
220 self.trUtf8("Loading login data"), |
221 self.trUtf8( |
221 self.trUtf8( |
222 """<p>Login data could not be loaded """ |
222 """<p>Login data could not be loaded """ |
223 """from <b>{0}</b></p>""" |
223 """from <b>{0}</b></p>""" |
224 """<p>Reason: Wrong input format</p>""")\ |
224 """<p>Reason: Wrong input format</p>""") |
225 .format(loginFile)) |
225 .format(loginFile)) |
226 return |
226 return |
227 self.__logins[data[0]] = (data[1], data[2]) |
227 self.__logins[data[0]] = (data[1], data[2]) |
228 data = [] |
228 data = [] |
229 |
229 |
230 elif section == 1: |
230 elif section == 1: |
355 if navType != QWebPage.NavigationTypeFormSubmitted: |
355 if navType != QWebPage.NavigationTypeFormSubmitted: |
356 return |
356 return |
357 |
357 |
358 # determine the QWebPage |
358 # determine the QWebPage |
359 webPage = request.attribute(QNetworkRequest.User + 100) |
359 webPage = request.attribute(QNetworkRequest.User + 100) |
360 if webPage is None: |
360 if webPage is None: |
361 return |
361 return |
362 |
362 |
363 # determine the requests content type |
363 # determine the requests content type |
364 contentTypeHeader = request.rawHeader("Content-Type") |
364 contentTypeHeader = request.rawHeader("Content-Type") |
365 if contentTypeHeader.isEmpty(): |
365 if contentTypeHeader.isEmpty(): |
413 type_ = form.elementTypes[element[0]] |
413 type_ = form.elementTypes[element[0]] |
414 if user == "" and \ |
414 if user == "" and \ |
415 type_ == "text": |
415 type_ == "text": |
416 user = element[1] |
416 user = element[1] |
417 elif password == "" and \ |
417 elif password == "" and \ |
418 type_ == "password": |
418 type_ == "password": |
419 password = element[1] |
419 password = element[1] |
420 form.elements[index] = (element[0], "--PASSWORD--") |
420 form.elements[index] = (element[0], "--PASSWORD--") |
421 if user and password: |
421 if user and password: |
422 self.__logins[key] = \ |
422 self.__logins[key] = \ |
423 (user, Utilities.crypto.pwConvert(password, encode=True)) |
423 (user, Utilities.crypto.pwConvert(password, encode=True)) |
466 lst = webPage.mainFrame().evaluateJavaScript(parseForms_js) |
466 lst = webPage.mainFrame().evaluateJavaScript(parseForms_js) |
467 for map in lst: |
467 for map in lst: |
468 formHasPasswords = False |
468 formHasPasswords = False |
469 formName = map["name"] |
469 formName = map["name"] |
470 formIndex = map["index"] |
470 formIndex = map["index"] |
471 if type(formIndex) == type(0.0) and formIndex.is_integer(): |
471 if isinstance(formIndex, float) and formIndex.is_integer(): |
472 formIndex = int(formIndex) |
472 formIndex = int(formIndex) |
473 elements = map["elements"] |
473 elements = map["elements"] |
474 formElements = set() |
474 formElements = set() |
475 formElementTypes = {} |
475 formElementTypes = {} |
476 deadElements = set() |
476 deadElements = set() |