Mitarbeiter-Zugang: Review-Punkte (fail closed, Kunden-Konto bleibt, Probelauf robuster)
- removeEmployeeEntry: nur 404 heisst "kein Konto", jeder andere Fehler bricht ab - Mitarbeiter loeschen (Admin-Panel): Konto ohne Mitarbeiter-Label (Kunde mit altem employees-Eintrag) bleibt bestehen, nur der Eintrag geht - Mitarbeiter bearbeiten gibt nie automatisch das Label (der Eintrag kann von einem Kunden stammen); nur Neuanlage bekommt "mitarbeiter" - --rechte: --offen-lassen <ids>, unlesbare Listen als Fehler statt Abbruch (--anwenden verweigert dann), --sicherung <datei> + docker-cp-Hinweis, Bucket-Einstellung transformations wird mitgeschickt - getEmployeeByEmail entfernt (unbenutzt) - Tests: write/users-unverified, zweiter Lauf idempotent, >100 Dokumente, Loeschen mit Kunden- und Mitarbeiter-Konto Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2659385205
commit
10b393687c
6 files changed
+139
-40
No files matched your search
@@ -6,8 +6,8 @@
|
||||
* docker exec -it -w /app webklar-kundenbereich-server node scripts/mitarbeiter-zugang.mjs --status
|
||||
* ... --label <userId>[,<userId>...] [--yes] Label "mitarbeiter" vergeben (nur ausdrueckliche Konten)
|
||||
* ... --eintrag-loeschen <employeeId> [--yes] employees-Eintrag eines Kunden loeschen (Konto bleibt)
|
||||
* ... --rechte Probelauf: welche Rechte sich aendern
|
||||
* ... --rechte --anwenden [--yes] Rechte umstellen, Sicherung als JSON (Pfad wird ausgegeben)
|
||||
* ... --rechte [--offen-lassen <id>[,<id>...]] Probelauf: welche Rechte sich aendern (IDs bleiben offen)
|
||||
* ... --rechte --anwenden [--sicherung <datei>] [--yes] Rechte umstellen, vorher Sicherung als JSON
|
||||
* ... --rechte --zurueck <sicherung.json> [--yes] Rechte aus einer Sicherung wiederherstellen
|
||||
*/
|
||||
import 'dotenv/config'
|
||||
@@ -99,14 +99,19 @@ async function permissions() {
|
||||
return report(await applyPermissionChanges(changes, { direction: 'before' }))
|
||||
}
|
||||
|
||||
const changes = await planPermissionChanges()
|
||||
const keep = (flag('--offen-lassen') || '').split(',').map((id) => id.trim()).filter(Boolean)
|
||||
const { changes, errors } = await planPermissionChanges(undefined, { keep })
|
||||
for (const e of errors) console.log(`NICHT LESBAR ${e.path}: ${e.error}`)
|
||||
if (keep.length) console.log(`Bleiben offen: ${keep.join(', ')}`)
|
||||
if (!changes.length) return console.log('Keine offenen Rechte (any/guests/users) gefunden.')
|
||||
printChanges(changes)
|
||||
if (!args.includes('--anwenden')) return console.log(`Probelauf: ${changes.length} Stellen. Mit --anwenden umstellen.`)
|
||||
if (errors.length) throw new Error('Nicht alles lesbar (siehe oben) - erst den Key-Scope klären, dann erneut.')
|
||||
|
||||
const backup = join(tmpdir(), `mitarbeiter-rechte-${new Date().toISOString().replace(/[:.]/g, '-')}.json`)
|
||||
const backup = flag('--sicherung') || join(tmpdir(), `mitarbeiter-rechte-${new Date().toISOString().replace(/[:.]/g, '-')}.json`)
|
||||
writeFileSync(backup, JSON.stringify(changes, null, 2))
|
||||
console.log(`Sicherung: ${backup}`)
|
||||
console.log(` aus dem Container holen: docker cp webklar-kundenbereich-server:${backup} /root/reports/`)
|
||||
if (!(await confirm(`${changes.length} Stellen nur noch für Mitarbeiter freigeben?`))) return console.log('Abgebrochen.')
|
||||
report(await applyPermissionChanges(changes))
|
||||
}
|
||||
@@ -118,7 +123,7 @@ async function main() {
|
||||
const employeeId = flag('--eintrag-loeschen')
|
||||
if (employeeId) return removeEntry(employeeId)
|
||||
if (args.includes('--rechte')) return permissions()
|
||||
console.log('Usage: --status | --label <userId>[,...] | --eintrag-loeschen <employeeId> | --rechte [--anwenden | --zurueck <datei>] [--yes]')
|
||||
console.log('Usage: --status | --label <userId>[,...] | --eintrag-loeschen <employeeId> | --rechte [--offen-lassen <id>,...] [--anwenden [--sicherung <datei>] | --zurueck <datei>] [--yes]')
|
||||
}
|
||||
|
||||
main().catch((err) => {
|
||||
|
||||
Reference in new issue
Block a user