src/eric7/WebBrowser/WebBrowserWindow.py

branch
eric7
changeset 10855
9082eb8f6571
parent 10730
454f6ff4e1cd
child 10922
36a90a94765c
--- a/src/eric7/WebBrowser/WebBrowserWindow.py	Fri Jul 19 18:06:48 2024 +0200
+++ b/src/eric7/WebBrowser/WebBrowserWindow.py	Sat Jul 20 11:14:51 2024 +0200
@@ -9,6 +9,7 @@
 
 import contextlib
 import functools
+import importlib
 import os
 import pathlib
 import shutil
@@ -1929,6 +1930,26 @@
         self.passwordsAct.triggered.connect(self.__showPasswordsDialog)
         self.__actions.append(self.passwordsAct)
 
+        self.securityKeysAct = EricAction(
+            self.tr("Manage FIDO2 Security Keys"),
+            EricPixmapCache.getIcon("securityKey"),
+            self.tr("Manage FIDO2 Security Keys..."),
+            0,
+            0,
+            self,
+            "webbrowser_manage_security_keys",
+        )
+        self.securityKeysAct.setStatusTip(self.tr("Manage FIDO2 security keys"))
+        self.securityKeysAct.setWhatsThis(
+            self.tr(
+                """<b>Manage FIDO2 Security Keys...</b>"""
+                """<p>Opens a dialog to manage FIDO2 security keys.</p>"""
+            )
+        )
+        self.securityKeysAct.triggered.connect(self.__showSecurityKeysDialog)
+        self.__actions.append(self.securityKeysAct)
+        self.securityKeysAct.setEnabled(importlib.util.find_spec("fido2") is not None)
+
         self.adblockAct = EricAction(
             self.tr("Ad Block"),
             EricPixmapCache.getIcon("adBlockPlus"),
@@ -2451,6 +2472,7 @@
         menu.addAction(self.searchEnginesAct)
         menu.addSeparator()
         menu.addAction(self.passwordsAct)
+        menu.addAction(self.securityKeysAct)
         menu.addAction(self.certificateErrorsAct)
         menu.addSeparator()
         menu.addAction(self.zoomValuesAct)
@@ -2577,6 +2599,7 @@
         menu.addAction(self.searchEnginesAct)
         menu.addSeparator()
         menu.addAction(self.passwordsAct)
+        menu.addAction(self.securityKeysAct)
         menu.addAction(self.certificateErrorsAct)
         menu.addSeparator()
         menu.addAction(self.zoomValuesAct)
@@ -4216,6 +4239,16 @@
         dlg.exec()
 
     @pyqtSlot()
+    def __showSecurityKeysDialog(self):
+        """
+        Private slot to show a dialog for managing FIDO2 security keys.
+        """
+        from .WebAuth.Fido2ManagementDialog import Fido2ManagementDialog
+
+        dlg = Fido2ManagementDialog(parent=self)
+        dlg.exec()
+
+    @pyqtSlot()
     def __showCertificateErrorsDialog(self):
         """
         Private slot to show the certificate errors management dialog.

eric ide

mercurial