User accounts, login before the title screen, own savegames per user, standalone download

- Service: accounts with Argon2 password hashes and session tokens; the first login creates
  the admin (shared savegames of before move to the admin); the admin creates and deletes
  users; everybody can change the password; savegames are stored and listed per user
- Game: login page before the title (only when the service is reachable), with licence and
  repository link; account page (password, logout; users for the admin); text fields with
  Tab/Enter, masked passwords, browser dialog on touch screens; long status messages wrap
- Download Standalone: DungeonCraft.html with the game embedded (built in the Docker image,
  served to logged-in users via nginx auth_request); works from file:// without server and
  opens downloaded savegames
- Without the service (standalone, local files) there is no login, savegame files as before

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-03 13:33:22 +01:00
1 parent 8853d84564
commit c9848c8948
15 files changed
+1232 -83

No files matched your search

+33
View File
@@ -538,3 +538,36 @@ cost.steel = {0} Gold/Wand, {1} für befestigte Wände
hint.steel_where = Stahl lässt sich nur an Erdwände neben deinem Gebiet anbringen.
tile.steel = Stahlwand
tile.steel_info = Helden brauchen ewig, um hindurchzukommen.
# accounts and standalone
login.title = Anmelden
login.setup = Admin-Konto anlegen
login.setup_hint = Erster Start des Servers: Dieser Name und dieses Passwort werden das Admin-Konto.
login.name = Name:
login.password = Passwort:
login.button = Anmelden
login.create_admin = Admin-Konto anlegen
login.err_invalid = Name: Buchstaben, Ziffern, - und _ (max. 24); Passwort mindestens 4 Zeichen.
login.err_wrong = Name oder Passwort falsch.
login.err_session = Bitte melde dich neu an.
login.welcome = Angemeldet als {0}.
menu.account = Konto: {0}
menu.standalone = Standalone herunterladen
account.title = Konto von {0}
account.title_admin = Konto von {0} (Admin)
account.change_pw = Passwort ändern
account.old_pw = Altes Passwort:
account.new_pw = Neues Passwort:
account.save_pw = Ändern
account.users = Benutzer
account.user_name = Neuer Benutzer:
account.user_pw = Passwort:
account.create = Benutzer anlegen
account.logout = Abmelden
account.err_old = Das alte Passwort stimmt nicht.
account.err_exists = Diesen Benutzer gibt es schon.
account.pw_changed = Passwort geändert.
account.users_changed = Benutzer aktualisiert.
standalone.running = Die Standalone-Version wird vorbereitet ...
standalone.done = DungeonCraft.html heruntergeladen: In jedem Browser öffnen, kein Server nötig. Deine heruntergeladenen Spielstände lassen sich dort auch laden.
standalone.failed = Die Standalone-Version konnte nicht heruntergeladen werden.