From 1b3ed44e6ec1bc0fb8f13968ad6a4f9927028c2a Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 31 Jul 2026 13:23:55 +0000 Subject: [PATCH] Benutzername in der Detailansicht immer im Klartext Das Auge neben dem Benutzernamen schaltete eine Maskierung, die standardmaessig ohnehin aus war. Ein Benutzername ist kein Geheimnis, das Umschalten also ohne Nutzen. Button, Handler und der zugehoerige Zustand entfallen; der Kopieren-Button bleibt. Das Passwort bleibt maskiert. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01G12DRMpe4UjYDwuRU1sjy1 --- CHANGELOG.md | 2 ++ extension/popup.html | 3 --- extension/popup.js | 20 ++++---------------- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0998d4..caa64e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,8 @@ Die Erweiterungsversion (`manifest.json`) ist unabhängig von der OpenNIT-Server Zwischenablage entfernt. ### Geändert +- **Benutzername immer sichtbar:** Das Auge zum Ausblenden des Benutzernamens in der Detailansicht ist + entfallen – ein Benutzername ist kein Geheimnis. Das Passwort bleibt weiterhin maskiert. - **Vorschläge weichen der Seite:** Sobald in ein Feld getippt wird, verschwindet die Vault-Liste – darunter erscheint typischerweise die Suche der Seite selbst. Bei Feldern, die erkennbar eine eigene Auswahlliste öffnen (etwa Benutzer-Auswahlfelder), erscheinen gar keine Vault-Vorschläge mehr. diff --git a/extension/popup.html b/extension/popup.html index 1f9290e..b6a9da3 100644 --- a/extension/popup.html +++ b/extension/popup.html @@ -269,9 +269,6 @@ body {
Benutzername
- diff --git a/extension/popup.js b/extension/popup.js index 104ea9d..bb8890c 100644 --- a/extension/popup.js +++ b/extension/popup.js @@ -29,7 +29,6 @@ async function init() { // Detail-Panel $('btnDetailBack').addEventListener('click', closeDetail); $('btnDetailClose').addEventListener('click', closeDetail); - $('btnRevealUser').addEventListener('click', toggleRevealUser); $('btnCopyUser').addEventListener('click', () => copySecret($('detailUser').dataset.value || '', 'Benutzername kopiert')); $('btnRevealPass').addEventListener('click', toggleRevealPass); $('btnCopyPass').addEventListener('click', copyDetailPassword); @@ -422,7 +421,7 @@ function openDetail(id) { const e = entryIndex[String(id)]; if (!e) return; closeDetailTimers(); - detailState = { id: String(id), password: null, revealUser: true, revealPass: false, totpInterval: null }; + detailState = { id: String(id), password: null, revealPass: false, totpInterval: null }; $('listWrap').style.display = 'none'; $('search').closest('.search-wrap').style.display = 'none'; @@ -457,21 +456,18 @@ function openDetail(id) { urlLink.style.display = 'none'; } - // Benutzername (standardmäßig sichtbar; Auge schaltet Maskierung) + // Benutzername – kein Geheimnis, daher immer im Klartext. const uval = e.username || ''; const uEl = $('detailUser'); uEl.dataset.value = uval; - detailState.revealUser = true; if (uval) { uEl.classList.remove('empty'); uEl.textContent = uval; - $('btnRevealUser').style.display = ''; - $('btnCopyUser').style.display = ''; + $('btnCopyUser').style.display = ''; } else { uEl.classList.add('empty'); uEl.textContent = 'Kein Benutzername'; - $('btnRevealUser').style.display = 'none'; - $('btnCopyUser').style.display = 'none'; + $('btnCopyUser').style.display = 'none'; } // Passwort (standardmäßig maskiert) @@ -505,14 +501,6 @@ function closeDetail() { $('search').closest('.search-wrap').style.display = ''; } -function toggleRevealUser() { - const uEl = $('detailUser'); - const val = uEl.dataset.value || ''; - if (!val) return; - detailState.revealUser = !detailState.revealUser; - uEl.textContent = detailState.revealUser ? val : '•'.repeat(Math.min(val.length, 14)); -} - async function ensurePassword(id) { if (detailState && detailState.password !== null) return detailState.password; const pw = await new Promise(resolve => {