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:
@@ -146,6 +146,39 @@ export const catalog: Catalog = {
|
||||
"Could not be loaded": "Chargement impossible",
|
||||
"Detailed metrics, the delivery queue, logs and server settings are in Stalwart's own administration.": "Les métriques détaillées, la file de distribution, les journaux et les réglages du serveur se trouvent dans l’administration de Stalwart.",
|
||||
"Open Stalwart admin": "Ouvrir l’administration de Stalwart",
|
||||
"Default group role": "Rôle de groupe par défaut",
|
||||
"A group needs an address.": "Un groupe a besoin d’une adresse.",
|
||||
"New group": "Nouveau groupe",
|
||||
"Your role lets you view groups but not change them.": "Votre rôle vous permet de consulter les groupes, mais pas de les modifier.",
|
||||
"No domains are available to create a group on.": "Aucun domaine n’est disponible pour créer un groupe.",
|
||||
"Mail to these addresses is delivered to this group. Changes apply when you save.": "Les messages envoyés à ces adresses sont distribués à ce groupe. Les modifications s’appliquent à l’enregistrement.",
|
||||
"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.": "Ce que le groupe lui-même peut faire. Les membres gardent leurs propres rôles : un groupe leur donne ce qui est partagé avec lui, pas ses autorisations. Seuls les rôles dont vous détenez vous-même les autorisations sont proposés.",
|
||||
"Loading the group's members…": "Chargement des membres du groupe…",
|
||||
"This group has more members than can be taken out at once.": "Ce groupe a plus de membres qu’on ne peut en retirer en une fois.",
|
||||
"Deleting a group takes its members out of it first, and your role can't change their accounts.": "Supprimer un groupe en retire d’abord les membres, et votre rôle ne permet pas de modifier leurs comptes.",
|
||||
"Create group": "Créer le groupe",
|
||||
"Added {address} to the group": "{address} ajouté au groupe",
|
||||
"Removed {address} from the group": "{address} retiré du groupe",
|
||||
"Remove {address} from the group": "Retirer {address} du groupe",
|
||||
"You can't change your own group memberships.": "Vous ne pouvez pas modifier vos propres appartenances à des groupes.",
|
||||
"Remove from group": "Retirer du groupe",
|
||||
"No members yet": "Aucun membre pour l’instant",
|
||||
"Showing {shown} of {total} members.": "{shown} membres affichés sur {total}.",
|
||||
"Members get what is shared with the group, such as its mailbox. Changes apply straight away.": "Les membres reçoivent ce qui est partagé avec le groupe, comme sa boîte aux lettres. Les modifications s’appliquent immédiatement.",
|
||||
"Add a member by name or address": "Ajouter un membre par nom ou adresse",
|
||||
"Add a member": "Ajouter un membre",
|
||||
"No one else matches": "Personne d’autre ne correspond",
|
||||
"Deletes the group and its mailbox. Its members' own accounts stay.": "Supprime le groupe et sa boîte aux lettres. Les comptes des membres sont conservés.",
|
||||
"Delete group…": "Supprimer le groupe…",
|
||||
"Delete group": "Supprimer le groupe",
|
||||
"The group's own mail is removed in the background, and it can't be undone.": "Les messages du groupe sont supprimés en arrière-plan, et c’est irréversible.",
|
||||
"Shared addresses and mailboxes, and the people who share them.": "Adresses et boîtes aux lettres partagées, et les personnes qui les partagent.",
|
||||
"Search groups": "Rechercher des groupes",
|
||||
"No groups match": "Aucun groupe ne correspond",
|
||||
"No groups yet": "Aucun groupe pour l’instant",
|
||||
"Your organisation has reached the number of groups it is allowed.": "Votre organisation a atteint le nombre de groupes autorisé.",
|
||||
"This group no longer exists. Someone may have deleted it.": "Ce groupe n’existe plus. Quelqu’un l’a peut-être supprimé.",
|
||||
"The server did not say whether the group was created.": "Le serveur n’a pas indiqué si le groupe a été créé.",
|
||||
"User": "Utilisateur",
|
||||
"Administrator": "Administrateur",
|
||||
"Custom role": "Rôle personnalisé",
|
||||
@@ -1538,6 +1571,8 @@ export const catalog: Catalog = {
|
||||
"{n} accounts use this domain. Move or delete them first.": { one: "{n} compte utilise ce domaine. Déplacez-le ou supprimez-le d’abord.", other: "{n} comptes utilisent ce domaine. Déplacez-les ou supprimez-les d’abord." },
|
||||
"The server stops accepting mail for this domain, and its {n} DKIM keys are deleted. This can't be undone.": { one: "Le serveur n’accepte plus de messages pour ce domaine, et sa {n} clé DKIM est supprimée. C’est irréversible.", other: "Le serveur n’accepte plus de messages pour ce domaine, et ses {n} clés DKIM sont supprimées. C’est irréversible." },
|
||||
"{n} domains": { one: "{n} domaine", other: "{n} domaines" },
|
||||
"{n} groups": { one: "{n} groupe", other: "{n} groupes" },
|
||||
"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: "Son {n} membre est d’abord retiré du groupe et perd ce qui était partagé avec lui. Les messages du groupe sont supprimés en arrière-plan, et c’est irréversible.", other: "Ses {n} membres sont d’abord retirés du groupe et perdent ce qui était partagé avec lui. Les messages du groupe sont supprimés en arrière-plan, et c’est irréversible." },
|
||||
"{n} mailing lists": { one: "{n} liste de diffusion", other: "{n} listes de diffusion" },
|
||||
"{n} DKIM keys": { one: "{n} clé DKIM", other: "{n} clés DKIM" },
|
||||
"{n} other items": { one: "{n} autre élément", other: "{n} autres éléments" },
|
||||
|
||||
Reference in New Issue
Block a user