Skip to content

Commit 5834759

Browse files
committed
add key list selection for setting access keys
1 parent f9c1a85 commit 5834759

File tree

2 files changed

+40
-13
lines changed

2 files changed

+40
-13
lines changed

app/gui/access_key_dialog.py

+37-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from PyQt6.QtCore import Qt
44
from PyQt6.QtWidgets import QDialog, QLabel, QLineEdit, QApplication, QHBoxLayout, QVBoxLayout, \
5-
QPushButton
5+
QPushButton, QListWidget
66

77
if TYPE_CHECKING:
88
from gui.gui import Gui
@@ -20,16 +20,22 @@ def __init__(self, parent=None):
2020

2121
self.resize(self.width, self.height)
2222

23-
self.key_name_text = QLabel("Key Name:", self)
23+
self.access_key_selection_text = QLabel("Select existing access-key:", self)
24+
self.access_key_selection = QListWidget()
25+
self.deselect_button = QPushButton("Deselect")
26+
self.deselect_button.clicked.connect(self.deselect)
27+
28+
self.key_name_text = QLabel("New Key name:", self)
2429
self.key_name_input = QLineEdit(self)
2530
self.key_name_input.setStyleSheet("color: black; background-color: white;")
2631
self.key_name_input.textChanged.connect(self.check_access_key_name)
32+
self.key_name_input.setPlaceholderText('access-key-<name>')
2733

2834
self.key_id_text = QLabel("Key ID:", self)
2935
self.key_id_input = QLineEdit(self)
3036
self.key_id_input.setStyleSheet("color: black; background-color: white;")
3137

32-
self.access_key_text = QLabel("Secret Access Key:", self)
38+
self.access_key_text = QLabel("Key secret:", self)
3339
self.access_key_input = QLineEdit(self)
3440
self.access_key_input.setStyleSheet("color: black; background-color: white;")
3541
self.access_key_input.setEchoMode(QLineEdit.EchoMode.Password)
@@ -49,6 +55,9 @@ def __init__(self, parent=None):
4955
hbox.addStretch(1)
5056

5157
vbox = QVBoxLayout()
58+
vbox.addWidget(self.access_key_selection_text)
59+
vbox.addWidget(self.access_key_selection)
60+
vbox.addWidget(self.deselect_button)
5261
vbox.addWidget(self.key_name_text)
5362
vbox.addWidget(self.key_name_input)
5463
vbox.addWidget(self.key_id_text)
@@ -63,14 +72,28 @@ def __init__(self, parent=None):
6372
def check_access_key_name(self, new_value: str):
6473
if new_value in self.existing_access_key_list:
6574
self.set_error_text('access key name already exists and will be overwritten')
66-
if not new_value.startswith('access-key'):
67-
self.set_error_text('access key name must start with \'access-key\'')
75+
elif new_value != '' and not new_value.startswith('access-key'):
76+
self.set_error_text('new key names must start with \'access-key\'')
6877
else:
6978
self.set_error_text('')
79+
self.access_key_selection.clearSelection()
80+
81+
def deselect(self):
82+
self.access_key_selection.clearSelection()
7083

7184
def ok(self):
72-
key_name = self.key_name_input.text()
73-
key_name = key_name.strip()
85+
if self.access_key_selection.selectedItems():
86+
selected_key = self.access_key_selection.currentItem().text()
87+
else:
88+
selected_key = ''
89+
new_key_name = self.key_name_input.text()
90+
new_key_name = new_key_name.strip()
91+
92+
if selected_key != '':
93+
key_name = selected_key
94+
else:
95+
key_name = new_key_name
96+
7497
key_id = self.key_id_input.text()
7598
key_id = key_id.strip()
7699
access_key = self.access_key_input.text()
@@ -85,10 +108,11 @@ def ok(self):
85108
if not access_key:
86109
self.set_error_text('missing access key')
87110
return
88-
if not key_name.startswith('access-key'):
89-
self.set_error_text('key name must start with \'access-key\'')
111+
if key_name != '' and not key_name.startswith('access-key'):
112+
self.set_error_text('new key names must start with \'access-key\'')
90113
return
91-
self.gui.set_access_key(key_name=key_name, key_id=key_id, access_key=access_key)
114+
print(f'key_name={key_name}, key_id={key_id}, access_key={access_key}')
115+
# self.gui.set_access_key(key_name=key_name, key_id=key_id, access_key=access_key)
92116
self.hide()
93117

94118
def cancel(self):
@@ -111,7 +135,9 @@ def set_error_text(self, message):
111135
self.error_text.repaint()
112136

113137
def show_dialog(self, access_key_list: List[str]):
114-
self.key_name_input.setText('access-key')
138+
self.access_key_selection.clear()
139+
self.access_key_selection.addItems(access_key_list)
140+
self.key_name_input.setText('')
115141
self.key_name_input.repaint()
116142
self.key_id_input.setText('')
117143
self.key_id_input.repaint()

app/gui/key_rotation_dialog.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def __init__(self, parent=None):
1919

2020
self.resize(self.width, self.height)
2121

22+
self.access_key_selection_text = QLabel("Select existing access-key:", self)
2223
self.access_key_selection = QListWidget()
2324

2425
self.text = QLabel("This will create a new key and delete the old one!", self)
@@ -35,6 +36,7 @@ def __init__(self, parent=None):
3536
hbox.addStretch(1)
3637

3738
vbox = QVBoxLayout()
39+
vbox.addWidget(self.access_key_selection_text)
3840
vbox.addWidget(self.access_key_selection)
3941
vbox.addWidget(self.text)
4042
vbox.addLayout(hbox)
@@ -64,8 +66,7 @@ def keyPressEvent(self, event):
6466

6567
def show_dialog(self, access_key_list: List[str]):
6668
self.access_key_selection.clear()
67-
for access_key in access_key_list:
68-
self.access_key_selection.addItem(access_key)
69+
self.access_key_selection.addItems(access_key_list)
6970
self.show()
7071
self.raise_()
7172
self.activateWindow()

0 commit comments

Comments
 (0)