Add Administration, starting with accounts
An account whose Stalwart role manages accounts now finds Administration in the account menu. It lists, searches, creates and edits accounts -- display name, other addresses, role, storage limit -- sets a new password, and deletes, each offered only when the role holds the matching permission. The server keeps the permissions list from GET /api/account, which it already called for the edition and threw the rest away. Everything else is JMAP x:Account, x:Domain and x:Role calls through the existing /api/jmap proxy, so nothing new is stored and Stalwart decides every call. Stalwart checks a grant against the caller's permissions but not a password change or a delete, so an account that outranks the viewer is shown read-only. Your own password is changed in Settings, which re-seals the session; changing it here would strand it. The mock server gains a directory behind the same permission names, with MOCK_ROLE choosing admin, tenant-admin, helpdesk or user. 68 new strings, translated in all nine catalogues; strings falling back to English stay at 16.
This commit is contained in:
@@ -55,6 +55,75 @@ import type { Catalog } from "@/lib/i18n";
|
||||
*/
|
||||
export const catalog: Catalog = {
|
||||
strings: {
|
||||
// ── Administration: accounts ───────────────────────────────────
|
||||
"Change your own password in {settings}.": "Ihr eigenes Passwort ändern Sie unter {settings}.",
|
||||
"Administration": "Verwaltung",
|
||||
"Directory": "Verzeichnis",
|
||||
"User": "Benutzer",
|
||||
"Administrator": "Administrator",
|
||||
"Custom role": "Eigene Rolle",
|
||||
"New account": "Neues Konto",
|
||||
"The people who sign in to mail on the domains you manage.": "Die Personen, die sich auf den von Ihnen verwalteten Domains bei ihrer E-Mail anmelden.",
|
||||
"Search by name or address": "Nach Name oder Adresse suchen",
|
||||
"Search accounts": "Konten durchsuchen",
|
||||
"No accounts match": "Keine passenden Konten",
|
||||
"No accounts yet": "Noch keine Konten",
|
||||
"Nothing on your domains matches “{query}”.": "Auf Ihren Domains passt nichts zu „{query}“.",
|
||||
"Open {address}": "{address} öffnen",
|
||||
"{from}–{to} of {total}": "{from}–{to} von {total}",
|
||||
"Previous page": "Vorherige Seite",
|
||||
"Next page": "Nächste Seite",
|
||||
"Storage": "Speicher",
|
||||
"Groups": "Gruppen",
|
||||
"{used} · no limit": "{used} · ohne Begrenzung",
|
||||
"Profile": "Profil",
|
||||
"Domain": "Domain",
|
||||
"No domains are available to create an account on.": "Es gibt keine Domain, auf der ein Konto angelegt werden kann.",
|
||||
"Sign-in": "Anmeldung",
|
||||
"Other addresses": "Weitere Adressen",
|
||||
"Not in any group": "In keiner Gruppe",
|
||||
"You can't change your own role.": "Sie können Ihre eigene Rolle nicht ändern.",
|
||||
"Only roles whose permissions you hold yourself are offered. On an account inside a tenant, Administrator means administrator of that tenant.": "Angeboten werden nur Rollen, deren Berechtigungen Sie selbst besitzen. Bei einem Konto innerhalb eines Mandanten bedeutet Administrator: Administrator dieses Mandanten.",
|
||||
"Limit in GB": "Begrenzung in GB",
|
||||
"No limit": "Ohne Begrenzung",
|
||||
"This account has permissions yours doesn't, so you can view it but not change it.": "Dieses Konto hat Berechtigungen, die Ihres nicht hat. Sie können es ansehen, aber nicht ändern.",
|
||||
"Your role lets you view accounts but not change them.": "Ihre Rolle erlaubt es, Konten anzusehen, aber nicht zu ändern.",
|
||||
"This account has permissions yours doesn't.": "Dieses Konto hat Berechtigungen, die Ihres nicht hat.",
|
||||
"You can't delete the account you're signed in with.": "Das Konto, mit dem Sie angemeldet sind, können Sie nicht löschen.",
|
||||
"Create account": "Konto anlegen",
|
||||
"An account needs an address.": "Ein Konto braucht eine Adresse.",
|
||||
"Created {address}": "{address} angelegt",
|
||||
"Saved {address}": "{address} gespeichert",
|
||||
"Generate a password": "Passwort erzeugen",
|
||||
"Pass it on some way other than email to this address.": "Geben Sie es nicht per E-Mail an diese Adresse weiter.",
|
||||
"This account has no password. It may sign in through a directory or single sign-on.": "Dieses Konto hat kein Passwort. Möglicherweise meldet es sich über ein Verzeichnis oder Single Sign-on an.",
|
||||
"Set a new password…": "Neues Passwort festlegen…",
|
||||
"{name} will be signed out of every app and device using the old password.": "{name} wird in allen Apps und auf allen Geräten abgemeldet, die das alte Passwort verwenden.",
|
||||
"New password set for {address}": "Neues Passwort für {address} festgelegt",
|
||||
"Set password": "Passwort festlegen",
|
||||
"Remove {address}": "{address} entfernen",
|
||||
"New address": "Neue Adresse",
|
||||
"another name": "anderer Name",
|
||||
"Mail to these addresses is delivered to this account. Changes apply when you save.": "E-Mails an diese Adressen werden diesem Konto zugestellt. Änderungen gelten nach dem Speichern.",
|
||||
"Deletes the mailbox and everything in it.": "Löscht das Postfach und alles darin.",
|
||||
"Delete account…": "Konto löschen…",
|
||||
"Delete {address}?": "{address} löschen?",
|
||||
"This deletes the mail, calendars, contacts and files in this account. The server removes them in the background, and it can't be undone.": "Dadurch werden die E-Mails, Kalender, Kontakte und Dateien dieses Kontos gelöscht. Der Server entfernt sie im Hintergrund, und es kann nicht rückgängig gemacht werden.",
|
||||
"Type {address} to confirm": "Zur Bestätigung {address} eingeben",
|
||||
"Delete account": "Konto löschen",
|
||||
"Deleted {address}": "{address} gelöscht",
|
||||
"The server did not say whether the account was created.": "Der Server hat nicht mitgeteilt, ob das Konto angelegt wurde.",
|
||||
"The mail server refused this. Your role may not allow it.": "Der Mailserver hat dies abgelehnt. Ihre Rolle erlaubt es möglicherweise nicht.",
|
||||
"The mail server refused this: {reason}": "Der Mailserver hat dies abgelehnt: {reason}",
|
||||
"That address is already in use on this server, as an account, a list or an alias.": "Diese Adresse wird auf diesem Server bereits verwendet – als Konto, Liste oder Alias.",
|
||||
"One of the chosen domain, role or group can't be used for this account.": "Die gewählte Domain, Rolle oder Gruppe kann für dieses Konto nicht verwendet werden.",
|
||||
"Your organisation has reached the number of accounts it is allowed.": "Ihre Organisation hat die Anzahl der erlaubten Konten erreicht.",
|
||||
"Something still depends on this, so the server kept it.": "Etwas hängt noch davon ab, daher hat der Server es behalten.",
|
||||
"This account no longer exists. Someone may have deleted it.": "Dieses Konto existiert nicht mehr. Möglicherweise hat es jemand gelöscht.",
|
||||
"The password was not accepted: {reason}": "Das Passwort wurde nicht akzeptiert: {reason}",
|
||||
"The password was not accepted.": "Das Passwort wurde nicht akzeptiert.",
|
||||
"The mail server rejected a value: {reason}": "Der Mailserver hat einen Wert abgelehnt: {reason}",
|
||||
"The mail server rejected a value.": "Der Mailserver hat einen Wert abgelehnt.",
|
||||
"Go to folder…": "Zu Ordner springen…",
|
||||
"Set for everyone here. You cannot change this.": "Für alle hier festgelegt. Sie können dies nicht ändern.",
|
||||
"Export iCAL file": "iCAL-Datei exportieren",
|
||||
@@ -1375,6 +1444,8 @@ export const catalog: Catalog = {
|
||||
"no address": "keine Adresse",
|
||||
},
|
||||
plurals: {
|
||||
// ── Administration ────────────────────────────────────────────────
|
||||
"{n} accounts": { one: "{n} Konto", other: "{n} Konten" },
|
||||
// ── Third pass ─────────────────────────────────────────────────────
|
||||
"Delete {n} items": { one: "{n} Element löschen", other: "{n} Elemente löschen" },
|
||||
"Delete {n} items?": { one: "{n} Element löschen?", other: "{n} Elemente löschen?" },
|
||||
|
||||
Reference in New Issue
Block a user