04/26 Fixed HIBP issue 2

This commit is contained in:
2026-04-26 15:29:28 -04:00
parent f2bc51e1c6
commit e8f57df2df
2 changed files with 29 additions and 15 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
/> />
<meta <meta
http-equiv="Content-Security-Policy" http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self' https://api.pwnedpasswords.com; frame-ancestors 'none';" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self' https://api.pwnedpasswords.com;"
/> />
<meta name="csrf-token" content="{{ csrf_token() }}" /> <meta name="csrf-token" content="{{ csrf_token() }}" />
<title>{% block title %}PassKeeper{% endblock %}</title> <title>{% block title %}PassKeeper{% endblock %}</title>
+28 -14
View File
@@ -127,7 +127,6 @@
id="sidebar-import-export" id="sidebar-import-export"
data-view="import-export" data-view="import-export"
data-tooltip="Import / Export" data-tooltip="Import / Export"
onclick="Vault.switchToImportExport()"
> >
<span class="sidebar-icon">📤</span> <span class="sidebar-icon">📤</span>
<span class="sidebar-label">Import / Export</span> <span class="sidebar-label">Import / Export</span>
@@ -282,18 +281,21 @@
<h2 class="vault-title">Import / Export</h2> <h2 class="vault-title">Import / Export</h2>
</header> </header>
<div class="panel-body"> <div class="panel-body">
<!-- Export --> <!-- Export -->
<section class="import-export-section"> <section class="import-export-section">
<h3 class="import-export-heading">Export Vault</h3> <h3 class="import-export-heading">Export Vault</h3>
<p class="import-export-desc"> <p class="import-export-desc">
Download an encrypted backup of your entire vault. The file contains Download an encrypted backup of your entire vault. The file contains
AES-256-GCM ciphertext — your master password is required to read it. AES-256-GCM ciphertext — your master password is required to read
Keep it safe. it. Keep it safe.
</p> </p>
<div class="import-export-row"> <div class="import-export-row">
<button class="btn-primary" id="btn-export-json">Download encrypted JSON</button> <button class="btn-primary" id="btn-export-json">
<button class="btn-secondary" id="btn-export-csv">Download CSV (plaintext — handle with care)</button> Download encrypted JSON
</button>
<button class="btn-secondary" id="btn-export-csv">
Download CSV (plaintext — handle with care)
</button>
</div> </div>
</section> </section>
@@ -301,16 +303,26 @@
<section class="import-export-section"> <section class="import-export-section">
<h3 class="import-export-heading">Import</h3> <h3 class="import-export-heading">Import</h3>
<p class="import-export-desc"> <p class="import-export-desc">
Import from a PassKeeper encrypted JSON export, or from a CSV file exported Import from a PassKeeper encrypted JSON export, or from a CSV file
by Chrome, Bitwarden, or 1Password. Duplicates are not checked — review exported by Chrome, Bitwarden, or 1Password. Duplicates are not
your vault after importing. checked — review your vault after importing.
</p> </p>
<div class="import-export-row"> <div class="import-export-row">
<label class="btn-secondary import-file-label" for="import-file-input"> <label
class="btn-secondary import-file-label"
for="import-file-input"
>
Choose file&hellip; Choose file&hellip;
</label> </label>
<input type="file" id="import-file-input" accept=".json,.csv" class="hidden" /> <input
<span id="import-file-name" class="import-file-name">No file chosen</span> type="file"
id="import-file-input"
accept=".json,.csv"
class="hidden"
/>
<span id="import-file-name" class="import-file-name"
>No file chosen</span
>
</div> </div>
<div id="import-preview" class="import-preview hidden"></div> <div id="import-preview" class="import-preview hidden"></div>
<div class="import-export-row"> <div class="import-export-row">
@@ -320,7 +332,6 @@
</div> </div>
<div id="import-result" class="import-result hidden"></div> <div id="import-result" class="import-result hidden"></div>
</section> </section>
</div> </div>
</div> </div>
@@ -687,7 +698,10 @@
<option value="">— No folder —</option> <option value="">— No folder —</option>
</select> </select>
</div> </div>
<div class="type-fields" data-for-types="password note card bank address ssn"> <div
class="type-fields"
data-for-types="password note card bank address ssn"
>
<div class="form-group"> <div class="form-group">
<label for="field-tags">Tags</label> <label for="field-tags">Tags</label>
<input <input