src/eric7/WebBrowser/WebBrowserWebAuthDialog.py

branch
eric7
changeset 10851
5c47172bb240
parent 10847
b3f04b83fc84
equal deleted inserted replaced
10850:d835f48b9908 10851:5c47172bb240
41 super().__init__(parent) 41 super().__init__(parent)
42 self.setupUi(self) 42 self.setupUi(self)
43 43
44 self.__uxRequest = uxRequest 44 self.__uxRequest = uxRequest
45 45
46 self.pinButton.setIcon(EricPixmapCache.getIcon("showPassword"))
47
46 self.selectAccountButtonGroup = QButtonGroup(self) 48 self.selectAccountButtonGroup = QButtonGroup(self)
47 self.selectAccountButtonGroup.setExclusive(True) 49 self.selectAccountButtonGroup.setExclusive(True)
48 50
49 self.selectAccountLayout = QVBoxLayout(self.selectAccountWidget) 51 self.selectAccountLayout = QVBoxLayout(self.selectAccountWidget)
50 self.selectAccountLayout.setAlignment(Qt.AlignmentFlag.AlignTop) 52 self.selectAccountLayout.setAlignment(Qt.AlignmentFlag.AlignTop)
113 @pyqtSlot() 115 @pyqtSlot()
114 def __acceptRequest(self): 116 def __acceptRequest(self):
115 """ 117 """
116 Private slot to accept the WebAuth request. 118 Private slot to accept the WebAuth request.
117 """ 119 """
118 # TODO: not implemented yet
119 requestState = self.__uxRequest.state() 120 requestState = self.__uxRequest.state()
120 if requestState == QWebEngineWebAuthUxRequest.WebAuthUxState.SelectAccount: 121 if requestState == QWebEngineWebAuthUxRequest.WebAuthUxState.SelectAccount:
121 checkedButton = self.selectAccountButtonGroup.checkedButton() 122 checkedButton = self.selectAccountButtonGroup.checkedButton()
122 if checkedButton: 123 if checkedButton:
123 self.__uxRequest.setSelectedAccount(checkedButton.text()) 124 self.__uxRequest.setSelectedAccount(checkedButton.text())
127 @pyqtSlot() 128 @pyqtSlot()
128 def __cancelRequest(self): 129 def __cancelRequest(self):
129 """ 130 """
130 Private slot to cancel the WebAuth request. 131 Private slot to cancel the WebAuth request.
131 """ 132 """
132 # TODO: not implemented yet
133 self.__uxRequest.cancel() 133 self.__uxRequest.cancel()
134 134
135 @pyqtSlot() 135 @pyqtSlot()
136 def __retry(self): 136 def __retry(self):
137 """ 137 """
138 Private slot to retry the WebAuth request. 138 Private slot to retry the WebAuth request.
139 """ 139 """
140 # TODO: not implemented yet
141 self.__uxRequest.retry() 140 self.__uxRequest.retry()
142 141
143 @pyqtSlot() 142 @pyqtSlot()
144 def updateDialog(self): 143 def updateDialog(self):
145 """ 144 """
154 requestState 153 requestState
155 == QWebEngineWebAuthUxRequest.WebAuthUxState.FinishTokenCollection 154 == QWebEngineWebAuthUxRequest.WebAuthUxState.FinishTokenCollection
156 ): 155 ):
157 self.__setupFinishCollectTokenUi() 156 self.__setupFinishCollectTokenUi()
158 elif requestState == QWebEngineWebAuthUxRequest.WebAuthUxState.RequestFailed: 157 elif requestState == QWebEngineWebAuthUxRequest.WebAuthUxState.RequestFailed:
159 self.__setupErrorUi 158 self.__setupErrorUi()
160 159
161 self.adjustSize() 160 self.adjustSize()
162 161
163 def __setupSelectAccountUi(self): 162 def __setupSelectAccountUi(self):
164 """ 163 """
165 Private method to configure the 'Select Account' UI. 164 Private method to configure the 'Select Account' UI.
166 """ 165 """
167 # TODO: not implemented yet
168 self.__clearSelectAccountButtons() 166 self.__clearSelectAccountButtons()
169 167
170 self.headerLabel.setText(self.tr("<b>Choose Passkey</b>")) 168 self.headerLabel.setText(self.tr("<b>Choose Passkey</b>"))
171 self.descriptionLabel.setText( 169 self.descriptionLabel.setText(
172 self.tr("Which passkey do you want to use for {0}?").format( 170 self.tr("Which passkey do you want to use for {0}?").format(
193 191
194 def __setupCollectPinUi(self): 192 def __setupCollectPinUi(self):
195 """ 193 """
196 Private method to configure the 'Collect PIN' UI. 194 Private method to configure the 'Collect PIN' UI.
197 """ 195 """
198 # TODO: not implemented yet
199 self.__clearSelectAccountButtons() 196 self.__clearSelectAccountButtons()
200 197
201 self.selectAccountArea.setVisible(False) 198 self.selectAccountArea.setVisible(False)
202 199
203 self.pinGroupBox.setVisible(False) 200 self.pinGroupBox.setVisible(True)
204 self.confirmPinLabel.setVisible(False) 201 self.confirmPinLabel.setVisible(False)
205 self.confirmPinEdit.setVisible(False) 202 self.confirmPinEdit.setVisible(False)
206 self.confirmPinErrorLabel.setVisible(False) 203 self.confirmPinErrorLabel.setVisible(False)
207 204
208 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setText( 205 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setText(
260 257
261 def __setupFinishCollectTokenUi(self): 258 def __setupFinishCollectTokenUi(self):
262 """ 259 """
263 Private method to configure the 'Finish Collect Token' UI. 260 Private method to configure the 'Finish Collect Token' UI.
264 """ 261 """
265 # TODO: not implemented yet
266 self.__clearSelectAccountButtons() 262 self.__clearSelectAccountButtons()
267 263
268 self.headerLabel.setText(self.tr("<b>Use your security key with {0}</b>")) 264 self.headerLabel.setText(
265 self.tr("<b>Use your security key with {0}</b>").format(
266 self.__uxRequest.relyingPartyId()
267 )
268 )
269 self.descriptionLabel.setText( 269 self.descriptionLabel.setText(
270 self.tr("Touch your security key to complete the request.") 270 self.tr("Touch your security key to complete the request.")
271 ) 271 )
272 self.pinGroupBox.setVisible(False) 272 self.pinGroupBox.setVisible(False)
273 273
279 279
280 def __setupErrorUi(self): 280 def __setupErrorUi(self):
281 """ 281 """
282 Private method to configure the 'Error' UI. 282 Private method to configure the 'Error' UI.
283 """ 283 """
284 # TODO: not implemented yet
285 self.__clearSelectAccountButtons() 284 self.__clearSelectAccountButtons()
286 285
287 errorMsg = "" 286 errorMsg = ""
288 retryVisible = False 287 retryVisible = False
289 288
334 ) 333 )
335 elif ( 334 elif (
336 requestFailureReason 335 requestFailureReason
337 == QWebEngineWebAuthUxRequest.RequestFailureReason.AuthenticatorMissingResidentKeys # noqa: E501 336 == QWebEngineWebAuthUxRequest.RequestFailureReason.AuthenticatorMissingResidentKeys # noqa: E501
338 ): 337 ):
339 errorMsg = self.tr("Security key doesn't have resident key support.") 338 errorMsg = self.tr("Security key does not have resident key support.")
340 elif ( 339 elif (
341 requestFailureReason 340 requestFailureReason
342 == QWebEngineWebAuthUxRequest.RequestFailureReason.AuthenticatorMissingUserVerification # noqa: E501 341 == QWebEngineWebAuthUxRequest.RequestFailureReason.AuthenticatorMissingUserVerification # noqa: E501
343 ): 342 ):
344 errorMsg = self.tr("Security key is missing user verification.") 343 errorMsg = self.tr("Security key is missing user verification.")
364 errorMsg = self.tr("User consent denied.") 363 errorMsg = self.tr("User consent denied.")
365 elif ( 364 elif (
366 requestFailureReason 365 requestFailureReason
367 == QWebEngineWebAuthUxRequest.RequestFailureReason.WinUserCancelled 366 == QWebEngineWebAuthUxRequest.RequestFailureReason.WinUserCancelled
368 ): 367 ):
369 errorMsg = self.tr("User cancelled the WebAuth request.") 368 errorMsg = self.tr("User canceled the WebAuth request.")
370 369
371 self.headerLabel.setText(self.tr("<b>Something went wrong</b>")) 370 self.headerLabel.setText(self.tr("<b>Something went wrong</b>"))
372 self.descriptionLabel.setText(errorMsg) 371 self.descriptionLabel.setText(errorMsg)
373 self.descriptionLabel.adjustSize() 372 self.descriptionLabel.adjustSize()
374 373

eric ide

mercurial