Mon, 22 Jul 2024 10:15:41 +0200
Continued implementing the FIDO2 security key management interface.
10856
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Module implementing a dialog showing information about the selected security key. |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | from PyQt6.QtCore import Qt |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt6.QtWidgets import QDialog, QTreeWidgetItem |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from .Ui_Fido2InfoDialog import Ui_Fido2InfoDialog |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | class Fido2InfoDialog(QDialog, Ui_Fido2InfoDialog): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | Class implementing a dialog showing information about the selected security key. |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | def __init__(self, header, manager, parent=None): |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Constructor |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | @param header header string |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | @type str |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | @param manager reference to the FIDO2 manager object |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @type Fido2Management |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @param parent reference to the parent widget (defaults to None) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @type QWidget (optional) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | super().__init__(parent) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | self.setupUi(self) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | self.headerLabel.setText(f"<b>{header}</b>") |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | data = manager.getSecurityKeyInfo() |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | if not data: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | itm = QTreeWidgetItem( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | self.infoWidget, [self.tr("No information available.")] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | itm.setFirstColumnSpanned(True) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | return |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | for key in data: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | if data[key]: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | topItem = QTreeWidgetItem( |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.infoWidget, [manager.FidoInfoCategories2Str.get(key, key)] |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | ) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | topItem.setFirstColumnSpanned(True) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | topItem.setExpanded(True) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | for entry in data[key]: |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | QTreeWidgetItem(topItem, list(entry)) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.infoWidget.sortItems(1, Qt.SortOrder.AscendingOrder) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.infoWidget.sortItems(0, Qt.SortOrder.AscendingOrder) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.infoWidget.resizeColumnToContents(0) |
b19cefceca15
Continued implementing the FIDO2 security key management interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.infoWidget.resizeColumnToContents(1) |