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 |
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 |