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:
@@ -139,6 +139,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.": "显示 {total} 位成员中的 {shown} 位。",
|
||||
"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": "自定义角色",
|
||||
@@ -1540,6 +1573,8 @@ export const catalog: Catalog = {
|
||||
"{n} accounts use this domain. Move or delete them first.": { other: "有 {n} 个账户正在使用此域名。请先移动或删除它们。" },
|
||||
"The server stops accepting mail for this domain, and its {n} DKIM keys are deleted. This can't be undone.": { other: "服务器将不再接收此域名的邮件,其 {n} 个 DKIM 密钥也会被删除。此操作无法撤销。" },
|
||||
"{n} domains": { other: "{n} 个域名" },
|
||||
"{n} groups": { 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.": { other: "会先将 {n} 位成员移出群组,他们将失去与群组共享的内容。群组的邮件会在后台删除,且无法撤销。" },
|
||||
"{n} mailing lists": { other: "{n} 个邮件列表" },
|
||||
"{n} DKIM keys": { other: "{n} 个 DKIM 密钥" },
|
||||
"{n} other items": { other: "其他 {n} 项" },
|
||||
|
||||
Reference in New Issue
Block a user