Setup and invitations: the first login made from the client, everyone else by a group's invitation
PrivaPub's sign-up is closed. While it has no administrator, Login offers /setup, where the first login is made with its first persona and becomes the administrator (PrivaPub's /clientapi/user/setup; owner decision 2026-10-16: first come, first served, and setup then closes for good). Everyone else joins at /join?code=: a group's invitation makes the login, and its first persona joins the group (/clientapi/user/invitation/signup). Login links there, and a group's page shows the link next to its code. A login without a persona is sent from Login to Settings instead of a dead end. Login, setup and join share AuthService's StartSession, and all three go without credentials. e2e (Login/SignUpTests, against the pasture): setup offered on Login, made, the feed reached with Administration, then a signed-out reader is offered sign-in and invitations only; an invitation link makes a login whose persona joins the circle. The phone sweep covers /setup and /join: login, setup and join fit every portrait phone, and AccountTests signs in through the changed Login. The town's signed-in tests were not rerun: today's pasture came up without Mastodon, and its town seed left stale sessions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4da6a398d7
commit
5796d62406
12 files changed
+630
-35
No files matched your search
@@ -425,9 +425,6 @@
|
||||
<data name="This device did not give its position: {0}" xml:space="preserve">
|
||||
<value>Questo dispositivo non ha dato la sua posizione: {0}</value>
|
||||
</data>
|
||||
<data name="This login has no persona to act as. Create one on PrivaPub first." xml:space="preserve">
|
||||
<value>Questo accesso non ha una persona con cui agire. Creane prima una su PrivaPub.</value>
|
||||
</data>
|
||||
<data name="This persona is in no community or circle yet." xml:space="preserve">
|
||||
<value>Questa persona non è ancora in nessuna comunità o cerchia.</value>
|
||||
</data>
|
||||
@@ -2246,4 +2243,67 @@
|
||||
<data name="servers blocked" xml:space="preserve">
|
||||
<value>server bloccati</value>
|
||||
</data>
|
||||
<data name="Set up PrivaPub" xml:space="preserve">
|
||||
<value>Configura PrivaPub</value>
|
||||
</data>
|
||||
<data name="You are signed in" xml:space="preserve">
|
||||
<value>Hai già effettuato l'accesso</value>
|
||||
</data>
|
||||
<data name="This server is set up" xml:space="preserve">
|
||||
<value>Questo server è già configurato</value>
|
||||
</data>
|
||||
<data name="It has an administrator already: sign in, or join with a group's invitation." xml:space="preserve">
|
||||
<value>Ha già un amministratore: accedi, oppure unisciti con l'invito di un gruppo.</value>
|
||||
</data>
|
||||
<data name="Join with an invitation" xml:space="preserve">
|
||||
<value>Unisciti con un invito</value>
|
||||
</data>
|
||||
<data name="This server has no administrator yet. The first login made here becomes it, with its first persona; after that, joining takes a group's invitation." xml:space="preserve">
|
||||
<value>Questo server non ha ancora un amministratore. Il primo accesso creato qui lo diventa, con la sua prima persona; dopo, per unirsi serve l'invito di un gruppo.</value>
|
||||
</data>
|
||||
<data name="Your login" xml:space="preserve">
|
||||
<value>Il tuo accesso</value>
|
||||
</data>
|
||||
<data name="Repeat the password" xml:space="preserve">
|
||||
<value>Ripeti la password</value>
|
||||
</data>
|
||||
<data name="Your first persona" xml:space="preserve">
|
||||
<value>La tua prima persona</value>
|
||||
</data>
|
||||
<data name="Others see your personas, never your login." xml:space="preserve">
|
||||
<value>Gli altri vedono le tue persone, mai il tuo accesso.</value>
|
||||
</data>
|
||||
<data name="The two passwords don't match." xml:space="preserve">
|
||||
<value>Le due password non coincidono.</value>
|
||||
</data>
|
||||
<data name="PrivaPub is set up: you are its administrator." xml:space="preserve">
|
||||
<value>PrivaPub è configurato: ne sei l'amministratore.</value>
|
||||
</data>
|
||||
<data name="A persona of yours joins a group by its invitation in Groups." xml:space="preserve">
|
||||
<value>Una tua persona si unisce a un gruppo con il suo invito, in Gruppi.</value>
|
||||
</data>
|
||||
<data name="A group's invitation makes your login here, and your first persona joins the group." xml:space="preserve">
|
||||
<value>L'invito di un gruppo crea qui il tuo accesso, e la tua prima persona entra nel gruppo.</value>
|
||||
</data>
|
||||
<data name="I have a login: sign in" xml:space="preserve">
|
||||
<value>Ho già un accesso: entra</value>
|
||||
</data>
|
||||
<data name="Welcome: your persona is in the group." xml:space="preserve">
|
||||
<value>Ti diamo il benvenuto: la tua persona è nel gruppo.</value>
|
||||
</data>
|
||||
<data name="This server has no administrator yet" xml:space="preserve">
|
||||
<value>Questo server non ha ancora un amministratore</value>
|
||||
</data>
|
||||
<data name="Set it up: the first login made becomes its administrator." xml:space="preserve">
|
||||
<value>Configuralo: il primo accesso creato ne diventa l'amministratore.</value>
|
||||
</data>
|
||||
<data name="Have an invitation?" xml:space="preserve">
|
||||
<value>Hai un invito?</value>
|
||||
</data>
|
||||
<data name="This login has no persona to act as yet: make one in Settings." xml:space="preserve">
|
||||
<value>Questo accesso non ha ancora una persona con cui agire: creane una nelle Impostazioni.</value>
|
||||
</data>
|
||||
<data name="Invitation link, for someone without a login here" xml:space="preserve">
|
||||
<value>Link d'invito, per chi non ha un accesso qui</value>
|
||||
</data>
|
||||
</root>
|
||||
Reference in new issue
Block a user