Add Groups to Administration
A group is a shared address and mailbox and the people who share it. To Stalwart it is an x:Account of type Group, behind the same sysAccount* permissions as a person, so it sits under Directory beside Accounts: search, a page of fifty with each group's member count, and a panel to create, edit and delete one. Membership lives on the member, not the group. Members are the users whose memberGroupIds name it, and adding or removing one is a single memberGroupIds/<group> pointer on that user's account -- true or null -- which leaves their other groups alone. Changes apply straight away rather than riding on Save, so the list is always what the server has. Nobody can add or remove themselves, the same line the account panel draws at one's own role. A group's role is Default or Custom, not a person's User or Admin, and it is what the group may do: in 0.16 a user's permissions come from their own roles only, and a group gives its members what is shared with it. Only roles the viewer could grant are offered. Delete takes the members out first and then deletes the group, the order a domain's keys go before the domain, because the registry keeps anything another object names. A role that cannot change the members' accounts is not offered a delete it could only half finish. The mock's groups had a person's roles, accepted a memberGroupIds filter without applying it, and answered a linked delete with the wrong shape; all three follow the source now, and it refuses nested groups and memberships of things that are not groups. Nothing about groups has been run against a live server yet: production has none, and every operation is a write. KNOWN-ISSUES says what was read from source. Thirty-five new strings, two of them plurals, in all nine catalogues.
This commit is contained in:
@@ -137,6 +137,39 @@ export const catalog: Catalog = {
|
||||
"Could not be loaded": "Не вдалося завантажити",
|
||||
"Detailed metrics, the delivery queue, logs and server settings are in Stalwart's own administration.": "Докладні метрики, черга доставки, журнали та налаштування сервера є у власній панелі адміністрування Stalwart.",
|
||||
"Open Stalwart admin": "Відкрити адміністрування Stalwart",
|
||||
"Default group role": "Роль групи за замовчуванням",
|
||||
"A group needs an address.": "Групі потрібна адреса.",
|
||||
"New group": "Нова група",
|
||||
"Your role lets you view groups but not change them.": "Ваша роль дозволяє переглядати групи, але не змінювати їх.",
|
||||
"No domains are available to create a group on.": "Немає доменів, на яких можна створити групу.",
|
||||
"Mail to these addresses is delivered to this group. Changes apply when you save.": "Пошта на ці адреси доставляється в цю групу. Зміни застосовуються після збереження.",
|
||||
"What the group itself may do. Members keep their own roles: a group gives them what is shared with it, not its permissions. Only roles whose permissions you hold yourself are offered.": "Що може робити сама група. Учасники зберігають свої ролі: група дає їм те, чим із нею поділилися, а не свої дозволи. Пропонуються лише ролі, дозволи яких маєте ви самі.",
|
||||
"Loading the group's members…": "Завантаження учасників групи…",
|
||||
"This group has more members than can be taken out at once.": "У цій групі більше учасників, ніж можна прибрати за один раз.",
|
||||
"Deleting a group takes its members out of it first, and your role can't change their accounts.": "Під час видалення групи спочатку з неї прибираються учасники, а ваша роль не дозволяє змінювати їхні облікові записи.",
|
||||
"Create group": "Створити групу",
|
||||
"Added {address} to the group": "{address} додано до групи",
|
||||
"Removed {address} from the group": "{address} прибрано з групи",
|
||||
"Remove {address} from the group": "Прибрати {address} з групи",
|
||||
"You can't change your own group memberships.": "Не можна змінювати власну участь у групах.",
|
||||
"Remove from group": "Прибрати з групи",
|
||||
"No members yet": "Учасників поки немає",
|
||||
"Showing {shown} of {total} members.": "Показано учасників: {shown} з {total}.",
|
||||
"Members get what is shared with the group, such as its mailbox. Changes apply straight away.": "Учасники отримують те, чим поділилися з групою, наприклад її поштову скриньку. Зміни застосовуються одразу.",
|
||||
"Add a member by name or address": "Додати учасника за іменем або адресою",
|
||||
"Add a member": "Додати учасника",
|
||||
"No one else matches": "Більше ніхто не підходить",
|
||||
"Deletes the group and its mailbox. Its members' own accounts stay.": "Видаляє групу та її поштову скриньку. Власні облікові записи учасників залишаються.",
|
||||
"Delete group…": "Видалити групу…",
|
||||
"Delete group": "Видалити групу",
|
||||
"The group's own mail is removed in the background, and it can't be undone.": "Пошта групи видаляється у фоновому режимі, і це не можна скасувати.",
|
||||
"Shared addresses and mailboxes, and the people who share them.": "Спільні адреси й поштові скриньки та люди, які ними користуються.",
|
||||
"Search groups": "Пошук груп",
|
||||
"No groups match": "Немає відповідних груп",
|
||||
"No groups yet": "Груп поки немає",
|
||||
"Your organisation has reached the number of groups it is allowed.": "Ваша організація досягла дозволеної кількості груп.",
|
||||
"This group no longer exists. Someone may have deleted it.": "Цієї групи більше немає. Можливо, її хтось видалив.",
|
||||
"The server did not say whether the group was created.": "Сервер не повідомив, чи створено групу.",
|
||||
"User": "Користувач",
|
||||
"Administrator": "Адміністратор",
|
||||
"Custom role": "Власна роль",
|
||||
@@ -1529,6 +1562,8 @@ export const catalog: Catalog = {
|
||||
"{n} accounts use this domain. Move or delete them first.": { one: "Цей домен використовує {n} обліковий запис. Спершу перенесіть або видаліть його.", few: "Цей домен використовують {n} облікові записи. Спершу перенесіть або видаліть їх.", many: "Цей домен використовують {n} облікових записів. Спершу перенесіть або видаліть їх.", other: "Цей домен використовують {n} облікового запису. Спершу перенесіть або видаліть їх." },
|
||||
"The server stops accepting mail for this domain, and its {n} DKIM keys are deleted. This can't be undone.": { one: "Сервер перестане приймати пошту для цього домену, і його {n} ключ DKIM буде видалено. Скасувати це неможливо.", few: "Сервер перестане приймати пошту для цього домену, і його {n} ключі DKIM буде видалено. Скасувати це неможливо.", many: "Сервер перестане приймати пошту для цього домену, і його {n} ключів DKIM буде видалено. Скасувати це неможливо.", other: "Сервер перестане приймати пошту для цього домену, і його {n} ключа DKIM буде видалено. Скасувати це неможливо." },
|
||||
"{n} domains": { one: "{n} домен", few: "{n} домени", many: "{n} доменів", other: "{n} домену" },
|
||||
"{n} groups": { one: "{n} група", few: "{n} групи", many: "{n} груп", other: "{n} групи" },
|
||||
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Спочатку {n} учасник прибирається з групи й утрачає те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати.", few: "Спочатку {n} учасники прибираються з групи й утрачають те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати.", many: "Спочатку {n} учасників прибирають із групи, і вони втрачають те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати.", other: "Спочатку {n} учасника прибирають із групи, і вони втрачають те, чим із нею поділилися. Пошта групи видаляється у фоновому режимі, і це не можна скасувати." },
|
||||
"{n} mailing lists": { one: "{n} список розсилки", few: "{n} списки розсилки", many: "{n} списків розсилки", other: "{n} списку розсилки" },
|
||||
"{n} DKIM keys": { one: "{n} ключ DKIM", few: "{n} ключі DKIM", many: "{n} ключів DKIM", other: "{n} ключа DKIM" },
|
||||
"{n} other items": { one: "{n} інший об'єкт", few: "{n} інші об'єкти", many: "{n} інших об'єктів", other: "{n} іншого об'єкта" },
|
||||
|
||||
Reference in New Issue
Block a user