Skip to content

Commit c7fe3be

Browse files
committed
[fix] extract LoadAllKeysAsync method and grant root users full key access
1 parent 143e72e commit c7fe3be

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

src/EtcdTerminal.App/Screens/KeyBrowseScreen.cs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,27 +56,37 @@ private async Task LoadKeysAsync()
5656
{
5757
var authEnabled = await _etcdClient.IsAuthenticationEnabledAsync();
5858

59+
async Task<List<EtcdKeyValue>> LoadAllKeysAsync()
60+
{
61+
var keys = await _etcdClient.GetKeysByPrefixAsync("");
62+
63+
if (keys.Count > 0)
64+
return [.. keys];
65+
66+
return [.. await _etcdClient.GetKeysByPrefixAsync("/")];
67+
}
68+
5969
if (!authEnabled)
6070
{
61-
_allKeys = [.. await _etcdClient.GetKeysByPrefixAsync("")];
71+
_allKeys = await LoadAllKeysAsync();
6272
}
6373
else
6474
{
6575
var username = _config.Username;
6676

6777
if (username is null)
6878
{
69-
_allKeys = [.. await _etcdClient.GetKeysByPrefixAsync("")];
79+
_allKeys = await LoadAllKeysAsync();
7080
_filteredKeys = [.. _allKeys];
7181

7282
return;
7383
}
7484

7585
var user = await _etcdClient.GetUserAsync(username);
7686

77-
if (user is null || user.Roles.Count == 0)
87+
if (user is null || user.Roles.Count == 0 || user.Roles.Contains("root"))
7888
{
79-
_allKeys = [.. await _etcdClient.GetKeysByPrefixAsync("")];
89+
_allKeys = await LoadAllKeysAsync();
8090
}
8191
else
8292
{

0 commit comments

Comments
 (0)