v4: a deployment chooses which ways federated sign-in goes — every instance took users of the others and let its own sign in to them, with no way to turn either off. GERBEUR_FEDERATION_INCOMING=0 keeps users of other instances out: the login and register pages offer no other instance, /manage no list of instances, their sign-ins are refused, and those already in are signed out until it is on again, their homes' events still applied meanwhile. GERBEUR_FEDERATION_OUTGOING=0 keeps the instance's users from signing in elsewhere: its /authorize page lets no instance sign them in, its metadata says so (gerbeur_outgoing), which other instances check before sending anyone there, the settings page lists no instances, and at startup every grant is withdrawn, which signs them out there. Both are on by default and reach the client through index.html. The dev instance gerbeur (:3000) takes no users of the others, while its own still sign in to them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
khannurien
2026-10-09 16:18:21 +00:00
parent 66e402bd91
commit 83dc44050e
26 changed files with 420 additions and 121 deletions

View File

@@ -51,7 +51,7 @@ msgstr "{0} more online: {restNames}"
#. placeholder {0}: VALIDATION.USERNAME_MIN
#. placeholder {1}: VALIDATION.USERNAME_MAX
#: src/pages/UserRegister.tsx:147
#: src/pages/UserRegister.tsx:149
msgid "{0}–{1} characters: letters, numbers, or underscores"
msgstr "{0}–{1} characters: letters, numbers, or underscores"
@@ -350,7 +350,7 @@ msgstr "All"
msgid "Already dumped by {0} {1}"
msgstr "Already dumped by {0} {1}"
#: src/pages/UserRegister.tsx:179
#: src/pages/UserRegister.tsx:181
msgid "Already have an account? <0>Log in</0>"
msgstr "Already have an account? <0>Log in</0>"
@@ -374,7 +374,7 @@ msgstr "Appearance"
#. placeholder {0}: VALIDATION.PASSWORD_MIN
#: src/components/profile/ChangePasswordModal.tsx:101
#: src/pages/ResetPassword.tsx:124
#: src/pages/UserRegister.tsx:166
#: src/pages/UserRegister.tsx:168
msgid "At least {0} characters"
msgstr "At least {0} characters"
@@ -391,7 +391,7 @@ msgstr "Auto"
msgid "Back to login"
msgstr "Back to login"
#: src/pages/FederationCallback.tsx:71
#: src/pages/FederationCallback.tsx:72
msgid "Back to the login page"
msgstr "Back to the login page"
@@ -453,7 +453,7 @@ msgid "Cancel search"
msgstr "Cancel search"
#: src/components/category/CategorySelect.tsx:33
#: src/pages/Manage.tsx:36
#: src/pages/Manage.tsx:38
msgid "Categories"
msgstr "Categories"
@@ -498,7 +498,7 @@ msgstr "Chat"
msgid "Chat ({unreadChatCount} unread)"
msgstr "Chat ({unreadChatCount} unread)"
#: src/pages/UserRegister.tsx:108
#: src/pages/UserRegister.tsx:110
msgid "Checking invite…"
msgstr "Checking invite…"
@@ -838,7 +838,7 @@ msgstr "Editing {0}"
msgid "Email"
msgstr "Email"
#: src/pages/UserRegister.tsx:154
#: src/pages/UserRegister.tsx:156
msgid "Email address"
msgstr "Email address"
@@ -958,7 +958,7 @@ msgstr "Following"
msgid "email.digest.forYou"
msgstr "For you"
#: src/pages/UserLogin.tsx:101
#: src/pages/UserLogin.tsx:103
msgid "Forgot password?"
msgstr "Forgot password?"
@@ -997,7 +997,7 @@ msgstr "Hi {username},"
msgid "Hot"
msgstr "Hot"
#: src/pages/UserLogin.tsx:142
#: src/pages/UserLogin.tsx:144
msgid "If that address is registered you'll receive a reset link shortly."
msgstr "If that address is registered you'll receive a reset link shortly."
@@ -1029,11 +1029,11 @@ msgstr "In the chat"
msgid "Insert emoji"
msgstr "Insert emoji"
#: src/pages/Manage.tsx:43
#: src/pages/Manage.tsx:45
msgid "Instances"
msgstr "Instances"
#: src/pages/UserRegister.tsx:119
#: src/pages/UserRegister.tsx:121
msgid "Invalid invite"
msgstr "Invalid invite"
@@ -1156,9 +1156,9 @@ msgstr "Loading…"
#: src/components/layout/AppHeader.tsx:208
#: src/pages/FederationCallback.tsx:32
#: src/pages/UserLogin.tsx:44
#: src/pages/UserLogin.tsx:71
#: src/pages/UserLogin.tsx:90
#: src/pages/UserLogin.tsx:46
#: src/pages/UserLogin.tsx:73
#: src/pages/UserLogin.tsx:92
msgid "Log in"
msgstr "Log in"
@@ -1180,12 +1180,12 @@ msgstr "Log in with {0}"
msgid "Log out"
msgstr "Log out"
#: src/pages/UserLogin.tsx:89
#: src/pages/UserLogin.tsx:91
msgid "Logging in…"
msgstr "Logging in…"
#: src/pages/FederationCallback.tsx:68
#: src/pages/UserLogin.tsx:76
#: src/pages/FederationCallback.tsx:69
#: src/pages/UserLogin.tsx:78
msgid "Login failed"
msgstr "Login failed"
@@ -1194,8 +1194,8 @@ msgid "Lowercase letters, numbers and single hyphens only"
msgstr "Lowercase letters, numbers and single hyphens only"
#: src/components/layout/UserMenu.tsx:114
#: src/pages/Manage.tsx:27
#: src/pages/Manage.tsx:34
#: src/pages/Manage.tsx:29
#: src/pages/Manage.tsx:36
#: src/pages/UserPublicProfile.tsx:164
msgid "Manage"
msgstr "Manage"
@@ -1412,12 +1412,12 @@ msgstr "Page not found"
#: src/pages/Settings.tsx:96
#: src/pages/Settings.tsx:106
#: src/pages/UserLogin.tsx:86
#: src/pages/UserLogin.tsx:88
msgid "Password"
msgstr "Password"
#. placeholder {0}: VALIDATION.PASSWORD_MIN
#: src/pages/UserRegister.tsx:160
#: src/pages/UserRegister.tsx:162
msgid "Password (min. {0} characters)"
msgstr "Password (min. {0} characters)"
@@ -1519,17 +1519,17 @@ msgstr "Refreshing stream…"
msgid "Refreshing…"
msgstr "Refreshing…"
#: src/pages/UserRegister.tsx:47
#: src/pages/UserRegister.tsx:131
#: src/pages/UserRegister.tsx:171
#: src/pages/UserRegister.tsx:49
#: src/pages/UserRegister.tsx:133
#: src/pages/UserRegister.tsx:173
msgid "Register"
msgstr "Register"
#: src/pages/UserRegister.tsx:170
#: src/pages/UserRegister.tsx:172
msgid "Registering…"
msgstr "Registering…"
#: src/pages/UserRegister.tsx:136
#: src/pages/UserRegister.tsx:138
msgid "Registration failed"
msgstr "Registration failed"
@@ -1581,7 +1581,7 @@ msgstr "Reply"
msgid "Replying to"
msgstr "Replying to"
#: src/pages/UserLogin.tsx:154
#: src/pages/UserLogin.tsx:156
msgid "Request failed"
msgstr "Request failed"
@@ -1688,12 +1688,12 @@ msgstr "Seek"
msgid "Send"
msgstr "Send"
#: src/pages/UserLogin.tsx:163
#: src/pages/UserLogin.tsx:165
msgid "Send reset link"
msgstr "Send reset link"
#: src/components/chat/PendingItem.tsx:104
#: src/pages/UserLogin.tsx:162
#: src/pages/UserLogin.tsx:164
msgid "Sending…"
msgstr "Sending…"
@@ -1730,7 +1730,7 @@ msgid "Sign in to {name}?"
msgstr "Sign in to {name}?"
#: src/pages/Authorize.tsx:154
#: src/pages/FederationCallback.tsx:78
#: src/pages/FederationCallback.tsx:79
msgid "Signing you in…"
msgstr "Signing you in…"
@@ -1818,11 +1818,11 @@ msgstr "The new order couldn't be saved. Try again."
msgid "This comment couldn't be deleted. Try again."
msgstr "This comment couldn't be deleted. Try again."
#: src/pages/UserRegister.tsx:120
#: src/pages/UserRegister.tsx:122
msgid "This invite link is missing, expired, or already used."
msgstr "This invite link is missing, expired, or already used."
#: src/pages/UserLogin.tsx:110
#: src/pages/UserLogin.tsx:112
msgid "This is a mirage."
msgstr "This is a mirage."
@@ -1838,11 +1838,11 @@ msgstr "This page does not exist."
msgid "This reset link is missing or malformed."
msgstr "This reset link is missing or malformed."
#: src/pages/FederationCallback.tsx:39
#: src/pages/FederationCallback.tsx:40
msgid "This sign-in link is incomplete."
msgstr "This sign-in link is incomplete."
#: src/pages/FederationCallback.tsx:47
#: src/pages/FederationCallback.tsx:42
msgid "This sign-in was started elsewhere. Start again from the login page."
msgstr "This sign-in was started elsewhere. Start again from the login page."
@@ -2022,8 +2022,8 @@ msgstr "User menu"
#: src/components/profile/ProfileManageTab.tsx:61
#: src/components/profile/UsernameField.tsx:51
#: src/pages/Settings.tsx:91
#: src/pages/UserLogin.tsx:79
#: src/pages/UserRegister.tsx:139
#: src/pages/UserLogin.tsx:81
#: src/pages/UserRegister.tsx:141
msgid "Username"
msgstr "Username"
@@ -2151,7 +2151,7 @@ msgstr "Your account lives on {home}: sign in to other instances from there."
msgid "Your account lives on {home}: your password, email address, avatar and username change there."
msgstr "Your account lives on {home}: your password, email address, avatar and username change there."
#: src/pages/UserLogin.tsx:158
#: src/pages/UserLogin.tsx:160
msgid "Your email address"
msgstr "Your email address"

View File

@@ -51,7 +51,7 @@ msgstr "{0} de plus en ligne : {restNames}"
#. placeholder {0}: VALIDATION.USERNAME_MIN
#. placeholder {1}: VALIDATION.USERNAME_MAX
#: src/pages/UserRegister.tsx:147
#: src/pages/UserRegister.tsx:149
msgid "{0}–{1} characters: letters, numbers, or underscores"
msgstr "{0}–{1} caractères : lettres, chiffres ou tirets bas"
@@ -350,7 +350,7 @@ msgstr "Tout"
msgid "Already dumped by {0} {1}"
msgstr "Déjà recommandé par {0} {1}"
#: src/pages/UserRegister.tsx:179
#: src/pages/UserRegister.tsx:181
msgid "Already have an account? <0>Log in</0>"
msgstr "Vous avez déjà un compte ? <0>Se connecter</0>"
@@ -374,7 +374,7 @@ msgstr "Apparence"
#. placeholder {0}: VALIDATION.PASSWORD_MIN
#: src/components/profile/ChangePasswordModal.tsx:101
#: src/pages/ResetPassword.tsx:124
#: src/pages/UserRegister.tsx:166
#: src/pages/UserRegister.tsx:168
msgid "At least {0} characters"
msgstr "Au moins {0} caractères"
@@ -391,7 +391,7 @@ msgstr "Auto"
msgid "Back to login"
msgstr "Retour à la connexion"
#: src/pages/FederationCallback.tsx:71
#: src/pages/FederationCallback.tsx:72
msgid "Back to the login page"
msgstr "Retour à la page de connexion"
@@ -453,7 +453,7 @@ msgid "Cancel search"
msgstr "Annuler la recherche"
#: src/components/category/CategorySelect.tsx:33
#: src/pages/Manage.tsx:36
#: src/pages/Manage.tsx:38
msgid "Categories"
msgstr "Catégories"
@@ -498,7 +498,7 @@ msgstr "Tribune"
msgid "Chat ({unreadChatCount} unread)"
msgstr "{unreadChatCount} messages non lus"
#: src/pages/UserRegister.tsx:108
#: src/pages/UserRegister.tsx:110
msgid "Checking invite…"
msgstr "Vérification de l'invitation…"
@@ -838,7 +838,7 @@ msgstr "Édition de {0}"
msgid "Email"
msgstr "E-mail"
#: src/pages/UserRegister.tsx:154
#: src/pages/UserRegister.tsx:156
msgid "Email address"
msgstr "Adresse e-mail"
@@ -958,7 +958,7 @@ msgstr "Abonné"
msgid "email.digest.forYou"
msgstr "Pour vous"
#: src/pages/UserLogin.tsx:101
#: src/pages/UserLogin.tsx:103
msgid "Forgot password?"
msgstr "Mot de passe oublié ?"
@@ -997,7 +997,7 @@ msgstr "Bonjour {username},"
msgid "Hot"
msgstr "Tendances"
#: src/pages/UserLogin.tsx:142
#: src/pages/UserLogin.tsx:144
msgid "If that address is registered you'll receive a reset link shortly."
msgstr "Si cette adresse est enregistrée, vous recevrez un lien de réinitialisation sous peu."
@@ -1029,11 +1029,11 @@ msgstr "Dans la tribune"
msgid "Insert emoji"
msgstr "Insérer un emoji"
#: src/pages/Manage.tsx:43
#: src/pages/Manage.tsx:45
msgid "Instances"
msgstr "Instances"
#: src/pages/UserRegister.tsx:119
#: src/pages/UserRegister.tsx:121
msgid "Invalid invite"
msgstr "Invitation invalide"
@@ -1156,9 +1156,9 @@ msgstr "Chargement…"
#: src/components/layout/AppHeader.tsx:208
#: src/pages/FederationCallback.tsx:32
#: src/pages/UserLogin.tsx:44
#: src/pages/UserLogin.tsx:71
#: src/pages/UserLogin.tsx:90
#: src/pages/UserLogin.tsx:46
#: src/pages/UserLogin.tsx:73
#: src/pages/UserLogin.tsx:92
msgid "Log in"
msgstr "Se connecter"
@@ -1180,12 +1180,12 @@ msgstr "Se connecter avec {0}"
msgid "Log out"
msgstr "Se déconnecter"
#: src/pages/UserLogin.tsx:89
#: src/pages/UserLogin.tsx:91
msgid "Logging in…"
msgstr "Connexion…"
#: src/pages/FederationCallback.tsx:68
#: src/pages/UserLogin.tsx:76
#: src/pages/FederationCallback.tsx:69
#: src/pages/UserLogin.tsx:78
msgid "Login failed"
msgstr "Connexion échouée"
@@ -1194,8 +1194,8 @@ msgid "Lowercase letters, numbers and single hyphens only"
msgstr "Minuscules, chiffres et tirets simples seulement"
#: src/components/layout/UserMenu.tsx:114
#: src/pages/Manage.tsx:27
#: src/pages/Manage.tsx:34
#: src/pages/Manage.tsx:29
#: src/pages/Manage.tsx:36
#: src/pages/UserPublicProfile.tsx:164
msgid "Manage"
msgstr "Administration"
@@ -1412,12 +1412,12 @@ msgstr "Page introuvable"
#: src/pages/Settings.tsx:96
#: src/pages/Settings.tsx:106
#: src/pages/UserLogin.tsx:86
#: src/pages/UserLogin.tsx:88
msgid "Password"
msgstr "Mot de passe"
#. placeholder {0}: VALIDATION.PASSWORD_MIN
#: src/pages/UserRegister.tsx:160
#: src/pages/UserRegister.tsx:162
msgid "Password (min. {0} characters)"
msgstr "Mot de passe (min. {0} caractères)"
@@ -1519,17 +1519,17 @@ msgstr "Actualisation du flux…"
msgid "Refreshing…"
msgstr "Actualisation…"
#: src/pages/UserRegister.tsx:47
#: src/pages/UserRegister.tsx:131
#: src/pages/UserRegister.tsx:171
#: src/pages/UserRegister.tsx:49
#: src/pages/UserRegister.tsx:133
#: src/pages/UserRegister.tsx:173
msgid "Register"
msgstr "S'inscrire"
#: src/pages/UserRegister.tsx:170
#: src/pages/UserRegister.tsx:172
msgid "Registering…"
msgstr "Inscription…"
#: src/pages/UserRegister.tsx:136
#: src/pages/UserRegister.tsx:138
msgid "Registration failed"
msgstr "Inscription échouée"
@@ -1581,7 +1581,7 @@ msgstr "Répondre"
msgid "Replying to"
msgstr "En réponse à"
#: src/pages/UserLogin.tsx:154
#: src/pages/UserLogin.tsx:156
msgid "Request failed"
msgstr "Échec de la demande"
@@ -1688,12 +1688,12 @@ msgstr "Position"
msgid "Send"
msgstr "Envoyer"
#: src/pages/UserLogin.tsx:163
#: src/pages/UserLogin.tsx:165
msgid "Send reset link"
msgstr "Envoyer le lien de réinitialisation"
#: src/components/chat/PendingItem.tsx:104
#: src/pages/UserLogin.tsx:162
#: src/pages/UserLogin.tsx:164
msgid "Sending…"
msgstr "Envoi…"
@@ -1730,7 +1730,7 @@ msgid "Sign in to {name}?"
msgstr "Se connecter à {name} ?"
#: src/pages/Authorize.tsx:154
#: src/pages/FederationCallback.tsx:78
#: src/pages/FederationCallback.tsx:79
msgid "Signing you in…"
msgstr "Connexion…"
@@ -1818,11 +1818,11 @@ msgstr "Le nouvel ordre n'a pas pu être enregistré. Réessayez."
msgid "This comment couldn't be deleted. Try again."
msgstr "Ce commentaire n'a pas pu être supprimé. Réessayez."
#: src/pages/UserRegister.tsx:120
#: src/pages/UserRegister.tsx:122
msgid "This invite link is missing, expired, or already used."
msgstr "Ce lien d'invitation est manquant, expiré ou déjà utilisé."
#: src/pages/UserLogin.tsx:110
#: src/pages/UserLogin.tsx:112
msgid "This is a mirage."
msgstr "C'est un mirage."
@@ -1838,11 +1838,11 @@ msgstr "Rien à voir, circulez."
msgid "This reset link is missing or malformed."
msgstr "Ce lien de réinitialisation est absent ou malformé."
#: src/pages/FederationCallback.tsx:39
#: src/pages/FederationCallback.tsx:40
msgid "This sign-in link is incomplete."
msgstr "Ce lien de connexion est incomplet."
#: src/pages/FederationCallback.tsx:47
#: src/pages/FederationCallback.tsx:42
msgid "This sign-in was started elsewhere. Start again from the login page."
msgstr "Cette connexion a été commencée ailleurs. Recommencez depuis la page de connexion."
@@ -2022,8 +2022,8 @@ msgstr "Menu utilisateur"
#: src/components/profile/ProfileManageTab.tsx:61
#: src/components/profile/UsernameField.tsx:51
#: src/pages/Settings.tsx:91
#: src/pages/UserLogin.tsx:79
#: src/pages/UserRegister.tsx:139
#: src/pages/UserLogin.tsx:81
#: src/pages/UserRegister.tsx:141
msgid "Username"
msgstr "Nom d'utilisateur"
@@ -2151,7 +2151,7 @@ msgstr "Votre compte est sur {home} : connectez-vous aux autres instances depuis
msgid "Your account lives on {home}: your password, email address, avatar and username change there."
msgstr "Votre compte est sur {home} : votre mot de passe, votre adresse e-mail, votre avatar et votre nom d'utilisateur se changent là-bas."
#: src/pages/UserLogin.tsx:158
#: src/pages/UserLogin.tsx:160
msgid "Your email address"
msgstr "Votre adresse e-mail"