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.
+33
View File
@@ -539,3 +539,36 @@ cost.steel = {0} gold/wall, {1} for reinforced walls
hint.steel_where = Steel can only be put on earth walls next to your own ground.
tile.steel = Steel wall
tile.steel_info = Heroes need ages to get through.
# accounts and standalone
login.title = Login
login.setup = Create the admin account
login.setup_hint = First start of the server: this name and password become the admin account.
login.name = Name:
login.password = Password:
login.button = Log in
login.create_admin = Create admin account
login.err_invalid = Name: letters, digits, - and _ (max. 24); password at least 4 characters.
login.err_wrong = Wrong name or password.
login.err_session = Please log in again.
login.welcome = Logged in as {0}.
menu.account = Account: {0}
menu.standalone = Download Standalone
account.title = Account of {0}
account.title_admin = Account of {0} (admin)
account.change_pw = Change password
account.old_pw = Old password:
account.new_pw = New password:
account.save_pw = Change
account.users = Users
account.user_name = New user:
account.user_pw = Password:
account.create = Create user
account.logout = Log out
account.err_old = The old password is wrong.
account.err_exists = This user already exists.
account.pw_changed = Password changed.
account.users_changed = Users updated.
standalone.running = Preparing the standalone version ...
standalone.done = DungeonCraft.html downloaded: open it in any browser, no server needed. Your downloaded savegames load there too.
standalone.failed = The standalone version could not be downloaded.