@plone-collective/volto-identity 1.0.0-alpha.6 → 1.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.changelog.draft +27 -2
- package/CHANGELOG.md +32 -0
- package/README.md +4 -2
- package/locales/de/LC_MESSAGES/volto.po +220 -12
- package/locales/en/LC_MESSAGES/volto.po +220 -12
- package/locales/es/LC_MESSAGES/volto.po +220 -12
- package/locales/pt_BR/LC_MESSAGES/volto.po +220 -12
- package/locales/volto.pot +221 -13
- package/package.json +2 -2
- package/src/actions/account.test.ts +26 -0
- package/src/actions/account.ts +6 -3
- package/src/actions/index.ts +8 -1
- package/src/actions/profile.test.ts +18 -1
- package/src/actions/profile.ts +23 -0
- package/src/actions/providers.test.ts +35 -0
- package/src/actions/providers.ts +45 -0
- package/src/components/Blocks/SignIn/Edit.stories.tsx +36 -0
- package/src/components/Blocks/SignIn/Edit.test.tsx +97 -0
- package/src/components/Blocks/SignIn/Edit.tsx +51 -0
- package/src/components/Blocks/SignIn/View.stories.tsx +45 -0
- package/src/components/Blocks/SignIn/View.test.tsx +186 -0
- package/src/components/Blocks/SignIn/View.tsx +94 -0
- package/src/components/Blocks/SignIn/index.ts +28 -0
- package/src/components/Blocks/SignIn/schema.ts +137 -0
- package/src/components/Callback/Callback.scss +8 -0
- package/src/components/Callback/Callback.test.tsx +32 -1
- package/src/components/Callback/Callback.tsx +23 -4
- package/src/components/ConfirmEmail/ConfirmEmail.scss +52 -0
- package/src/components/ConfirmEmail/ConfirmEmail.stories.tsx +111 -0
- package/src/components/ConfirmEmail/ConfirmEmail.test.tsx +173 -0
- package/src/components/ConfirmEmail/ConfirmEmail.tsx +194 -0
- package/src/components/ControlPanel/ProviderForm.stories.tsx +4 -6
- package/src/components/ControlPanel/ProvidersControlPanel.scss +20 -1
- package/src/components/ControlPanel/ProvidersControlPanel.stories.tsx +104 -2
- package/src/components/ControlPanel/ProvidersControlPanel.test.tsx +469 -0
- package/src/components/ControlPanel/ProvidersControlPanel.tsx +243 -118
- package/src/components/ControlPanel/ProvidersTable.stories.tsx +72 -0
- package/src/components/ControlPanel/ProvidersTable.test.tsx +237 -0
- package/src/components/ControlPanel/ProvidersTable.tsx +329 -0
- package/src/components/Login/Login.test.tsx +113 -5
- package/src/components/Login/Login.tsx +24 -144
- package/src/components/Login/{LoginPanel.scss → LoginCard.scss} +12 -8
- package/src/components/Login/LoginCard.stories.tsx +39 -0
- package/src/components/Login/LoginCard.test.tsx +69 -0
- package/src/components/Login/LoginCard.tsx +55 -0
- package/src/components/Login/LoginForm.stories.tsx +13 -0
- package/src/components/Login/LoginForm.test.tsx +19 -0
- package/src/components/Login/LoginForm.tsx +20 -7
- package/src/components/Login/LoginPanel.tsx +10 -37
- package/src/components/Login/ProviderButton.scss +8 -2
- package/src/components/Login/ProviderButton.stories.tsx +10 -0
- package/src/components/Login/useLogin.ts +198 -0
- package/src/components/ProfileGate/ProfileGate.test.tsx +78 -0
- package/src/components/ProfileGate/ProfileGate.tsx +39 -10
- package/src/components/Toolbar/PersonalTools.stories.tsx +1 -1
- package/src/components/UserMenu/ApplicationsMenuItem.stories.tsx +1 -1
- package/src/components/UserMenu/IdentitiesMenuItem.stories.tsx +1 -1
- package/src/components/UserMenu/MenuItem.stories.tsx +1 -1
- package/src/components/UserMenu/ProfileMenuItem.stories.tsx +1 -1
- package/src/components/UserMenu/UserAvatar.stories.tsx +1 -1
- package/src/components/UserMenu/UserAvatar.test.tsx +16 -7
- package/src/components/UserMenu/UserMenuPlugs.stories.tsx +1 -1
- package/src/components/Views/GroupView.stories.tsx +14 -2
- package/src/components/Views/GroupView.test.tsx +49 -2
- package/src/components/Views/GroupView.tsx +10 -1
- package/src/components/Welcome/Welcome.stories.tsx +66 -0
- package/src/components/Welcome/Welcome.test.tsx +152 -0
- package/src/components/Welcome/Welcome.tsx +113 -0
- package/src/components/Welcome/WelcomeCard.scss +28 -0
- package/src/components/Welcome/WelcomeCard.stories.tsx +44 -0
- package/src/components/Welcome/WelcomeCard.test.tsx +96 -0
- package/src/components/Welcome/WelcomeCard.tsx +106 -0
- package/src/components/Widgets/ProviderIconWidget.scss +6 -0
- package/src/components/Widgets/ProviderIconWidget.stories.tsx +6 -0
- package/src/components/Widgets/ProviderIconWidget.test.tsx +49 -0
- package/src/components/Widgets/ProviderIconWidget.tsx +22 -1
- package/src/config/blocks.test.ts +132 -0
- package/src/config/blocks.ts +40 -0
- package/src/config/routes.test.ts +71 -0
- package/src/config/routes.ts +50 -0
- package/src/config/settings.test.ts +40 -0
- package/src/config/settings.ts +23 -9
- package/src/constants/ActionTypes.ts +3 -0
- package/src/helpers/avatar.test.ts +85 -6
- package/src/helpers/avatar.ts +30 -6
- package/src/helpers/download.test.ts +50 -0
- package/src/helpers/download.ts +32 -0
- package/src/helpers/firstLogin.test.ts +21 -0
- package/src/helpers/firstLogin.ts +5 -2
- package/src/helpers/profileGate.test.ts +38 -0
- package/src/helpers/profileGate.ts +71 -2
- package/src/helpers/providerOrder.test.ts +87 -0
- package/src/helpers/providerOrder.ts +56 -0
- package/src/helpers/providerSchema.test.ts +22 -0
- package/src/helpers/providerSchema.ts +7 -0
- package/src/helpers/redirectToSoleProvider.test.ts +111 -0
- package/src/helpers/redirectToSoleProvider.ts +65 -0
- package/src/helpers/showPloneLogin.test.ts +37 -6
- package/src/helpers/showPloneLogin.ts +4 -3
- package/src/helpers/welcome.test.ts +117 -0
- package/src/helpers/welcome.ts +91 -0
- package/src/index.ts +2 -0
- package/src/reducers/index.ts +19 -2
- package/src/reducers/profile.test.ts +67 -2
- package/src/reducers/profile.ts +14 -0
- package/src/reducers/providers.test.ts +36 -0
- package/src/reducers/providers.ts +17 -0
- package/src/stories/fixtures.tsx +97 -2
- package/src/{storybook → stories}/withPage.test.tsx +1 -1
- package/src/{storybook → stories}/withPage.tsx +1 -1
- package/src/{storybook → stories}/withUserMenu.tsx +1 -1
- package/src/types/api.ts +35 -0
- package/src/types/blocks.ts +26 -0
- package/src/types/index.ts +11 -2
- package/src/types/settings.ts +42 -0
- /package/src/{storybook → stories}/withUserMenu.test.tsx +0 -0
package/.changelog.draft
CHANGED
|
@@ -1,8 +1,33 @@
|
|
|
1
|
-
## 1.0.0-alpha.
|
|
1
|
+
## 1.0.0-alpha.7 (2026-09-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Breaking
|
|
5
|
+
|
|
6
|
+
- Moved the add-on's frontend settings under `config.settings.identity`. `config.settings.identityShowPloneLogin` is now `config.settings.identity.showPloneLogin`, and the old key is no longer read; `RAZZLE_IDENTITY_SHOW_PLONE_LOGIN` still overrides it. The avatar palette is configurable as `config.settings.identity.avatarColors`, and defaults to the shipped palette. A palette a project supplies is not checked for contrast. @ericof [#89](https://github.com/collective/pas-plugins-identity/issues/89)
|
|
2
7
|
|
|
3
8
|
|
|
4
9
|
### Feature
|
|
5
10
|
|
|
6
|
-
-
|
|
11
|
+
- Added the `/confirm-email` route, where a person whose profile is waiting on an address confirmation chooses which of their verified addresses this site uses for them. `ProfileGate` and the first-login route send them there instead of to the edit form, which cannot answer the question; a profile missing fields as well still goes to the form first. @ericof [#80](https://github.com/collective/pas-plugins-identity/issues/80)
|
|
12
|
+
- Gave the providers control panel's settings, add and edit forms their own routes, so each can be linked to and reloaded, and the browser's Back button returns to the provider list. @ericof [#81](https://github.com/collective/pas-plugins-identity/issues/81)
|
|
13
|
+
- Added export actions to the providers control panel, one per provider and one for every provider, each downloading the registry document under the filename it belongs under in a profile. The panel says beside them that the file carries client secrets in the clear, and offers them only to someone allowed to export. @ericof [#83](https://github.com/collective/pas-plugins-identity/issues/83)
|
|
14
|
+
- Gave the providers control panel's list a Login screen column, and let its rows be dragged into the order the login page offers them. A dropped row moves at once, and goes back if the new order cannot be saved. @ericof [#84](https://github.com/collective/pas-plugins-identity/issues/84)
|
|
15
|
+
- The provider form's Icon field shows the driver's default icon until one is uploaded. @ericof [#86](https://github.com/collective/pas-plugins-identity/issues/86)
|
|
16
|
+
- Drew the login button of a provider on the new `keycloak` driver in the OpenID Connect colours. @ericof [#87](https://github.com/collective/pas-plugins-identity/issues/87)
|
|
17
|
+
- Added a Sign-in block, offered inside a grid, and kept out of a page's block chooser until a project lifts its restriction. It shows a visitor the login card `/login` shows, and greets somebody signed in with a welcome message and a summary: a link to their Profile, their preferred address, what they signed in with and when they last did, each line switchable in the sidebar. The login page's store and routing moved into a `useLogin` hook the two share, and its card into `LoginCard`, which `LoginPanel` puts on a page of its own. @ericof [#99](https://github.com/collective/pas-plugins-identity/issues/99)
|
|
18
|
+
- Made the login page's redirect to a site's only provider something a site can turn off, with `config.settings.identity.redirectToSoleProvider` or, at run time, `RAZZLE_IDENTITY_REDIRECT_TO_SOLE_PROVIDER`. It stays on by default. Even when on, it no longer fires for a visitor who arrived already signed in, which looped against a provider that still had a session, or for `/login?choose=1`, which the callback page now links to when a sign-in fails. @ericof [#100](https://github.com/collective/pas-plugins-identity/issues/100)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bugfix
|
|
22
|
+
|
|
23
|
+
- Gave the Plone site driver's login button the Plone colours. Its class is `identity-provider--plone-identity`, and the stylesheet knew only `identity-provider--plone`, which the password button keeps. @ericof [#86](https://github.com/collective/pas-plugins-identity/issues/86)
|
|
24
|
+
- Darkened the first colour of the avatar palette from `#0083be` to `#007db6`. At 4.21:1 against the white initials it was the one shipped colour below WCAG AA; `#007db6` is the lightest colour of its hue that clears 4.5:1. @ericof [#89](https://github.com/collective/pas-plugins-identity/issues/89)
|
|
25
|
+
- Linked the groups listed under "Groups in this group" and "Part of" on a group's page to their own pages, the way members are linked to their Profiles. A group the site has no page for is shown as text. @ericof [#90](https://github.com/collective/pas-plugins-identity/issues/90)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Internal
|
|
29
|
+
|
|
30
|
+
- Moved the Storybook decorators `withPage` and `withUserMenu` from `src/storybook` to `src/stories`, beside the fixtures, so Storybook's support code lives in one directory. @ericof [#88](https://github.com/collective/pas-plugins-identity/issues/88)
|
|
31
|
+
- Moved the `IdentitySettings` type, and the augmentation that adds `identity` to Volto's settings, from `config/settings` to `types/settings`, beside the package's other types. It is exported from `types` like them. @ericof [#98](https://github.com/collective/pas-plugins-identity/issues/98)
|
|
7
32
|
|
|
8
33
|
|
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,38 @@
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## 1.0.0-alpha.7 (2026-09-12)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Breaking
|
|
15
|
+
|
|
16
|
+
- Moved the add-on's frontend settings under `config.settings.identity`. `config.settings.identityShowPloneLogin` is now `config.settings.identity.showPloneLogin`, and the old key is no longer read; `RAZZLE_IDENTITY_SHOW_PLONE_LOGIN` still overrides it. The avatar palette is configurable as `config.settings.identity.avatarColors`, and defaults to the shipped palette. A palette a project supplies is not checked for contrast. @ericof [#89](https://github.com/collective/pas-plugins-identity/issues/89)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Feature
|
|
20
|
+
|
|
21
|
+
- Added the `/confirm-email` route, where a person whose profile is waiting on an address confirmation chooses which of their verified addresses this site uses for them. `ProfileGate` and the first-login route send them there instead of to the edit form, which cannot answer the question; a profile missing fields as well still goes to the form first. @ericof [#80](https://github.com/collective/pas-plugins-identity/issues/80)
|
|
22
|
+
- Gave the providers control panel's settings, add and edit forms their own routes, so each can be linked to and reloaded, and the browser's Back button returns to the provider list. @ericof [#81](https://github.com/collective/pas-plugins-identity/issues/81)
|
|
23
|
+
- Added export actions to the providers control panel, one per provider and one for every provider, each downloading the registry document under the filename it belongs under in a profile. The panel says beside them that the file carries client secrets in the clear, and offers them only to someone allowed to export. @ericof [#83](https://github.com/collective/pas-plugins-identity/issues/83)
|
|
24
|
+
- Gave the providers control panel's list a Login screen column, and let its rows be dragged into the order the login page offers them. A dropped row moves at once, and goes back if the new order cannot be saved. @ericof [#84](https://github.com/collective/pas-plugins-identity/issues/84)
|
|
25
|
+
- The provider form's Icon field shows the driver's default icon until one is uploaded. @ericof [#86](https://github.com/collective/pas-plugins-identity/issues/86)
|
|
26
|
+
- Drew the login button of a provider on the new `keycloak` driver in the OpenID Connect colours. @ericof [#87](https://github.com/collective/pas-plugins-identity/issues/87)
|
|
27
|
+
- Added a Sign-in block, offered inside a grid, and kept out of a page's block chooser until a project lifts its restriction. It shows a visitor the login card `/login` shows, and greets somebody signed in with a welcome message and a summary: a link to their Profile, their preferred address, what they signed in with and when they last did, each line switchable in the sidebar. The login page's store and routing moved into a `useLogin` hook the two share, and its card into `LoginCard`, which `LoginPanel` puts on a page of its own. @ericof [#99](https://github.com/collective/pas-plugins-identity/issues/99)
|
|
28
|
+
- Made the login page's redirect to a site's only provider something a site can turn off, with `config.settings.identity.redirectToSoleProvider` or, at run time, `RAZZLE_IDENTITY_REDIRECT_TO_SOLE_PROVIDER`. It stays on by default. Even when on, it no longer fires for a visitor who arrived already signed in, which looped against a provider that still had a session, or for `/login?choose=1`, which the callback page now links to when a sign-in fails. @ericof [#100](https://github.com/collective/pas-plugins-identity/issues/100)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Bugfix
|
|
32
|
+
|
|
33
|
+
- Gave the Plone site driver's login button the Plone colours. Its class is `identity-provider--plone-identity`, and the stylesheet knew only `identity-provider--plone`, which the password button keeps. @ericof [#86](https://github.com/collective/pas-plugins-identity/issues/86)
|
|
34
|
+
- Darkened the first colour of the avatar palette from `#0083be` to `#007db6`. At 4.21:1 against the white initials it was the one shipped colour below WCAG AA; `#007db6` is the lightest colour of its hue that clears 4.5:1. @ericof [#89](https://github.com/collective/pas-plugins-identity/issues/89)
|
|
35
|
+
- Linked the groups listed under "Groups in this group" and "Part of" on a group's page to their own pages, the way members are linked to their Profiles. A group the site has no page for is shown as text. @ericof [#90](https://github.com/collective/pas-plugins-identity/issues/90)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Internal
|
|
39
|
+
|
|
40
|
+
- Moved the Storybook decorators `withPage` and `withUserMenu` from `src/storybook` to `src/stories`, beside the fixtures, so Storybook's support code lives in one directory. @ericof [#88](https://github.com/collective/pas-plugins-identity/issues/88)
|
|
41
|
+
- Moved the `IdentitySettings` type, and the augmentation that adds `identity` to Volto's settings, from `config/settings` to `types/settings`, beside the package's other types. It is exported from `types` like them. @ericof [#98](https://github.com/collective/pas-plugins-identity/issues/98)
|
|
42
|
+
|
|
11
43
|
## 1.0.0-alpha.6 (2026-09-10)
|
|
12
44
|
|
|
13
45
|
|
package/README.md
CHANGED
|
@@ -40,7 +40,9 @@ Everything here renders from what the backend serves. The add-on describes no sc
|
|
|
40
40
|
The check is deliberately not `Boolean(value)`, which reads the string `"false"` as true and would leave the password form up for an operator who had just switched it off.
|
|
41
41
|
|
|
42
42
|
The form is **off** by default: a site installing this add-on has external providers, and offering a password form beside them invites people to make a second way into the same account.
|
|
43
|
-
A site that is itself an identity provider is the case that wants it on, and sets `config.settings.
|
|
43
|
+
A site that is itself an identity provider is the case that wants it on, and sets `config.settings.identity.showPloneLogin` in its own configuration. The environment variable still wins over that.
|
|
44
|
+
|
|
45
|
+
Every setting the add-on reads is under `config.settings.identity`: `showPloneLogin`, and `avatarColors`, the palette a user's initials are drawn on when they have no portrait. The shipped palette was chosen for contrast against the white initials; a palette you configure is not checked.
|
|
44
46
|
|
|
45
47
|
**This variable is read at run time, not baked into the bundle.** That is why the Login component reads it through `runtimeConfig` rather than writing `process.env.RAZZLE_IDENTITY_SHOW_PLONE_LOGIN` literally: webpack substitutes the literal form while `pnpm build` runs, which would make the answer a property of the image and force two images on two sites wanting two answers.
|
|
46
48
|
|
|
@@ -199,7 +201,7 @@ Every component this add-on ships has stories, and a `.stories.tsx` beside a com
|
|
|
199
201
|
Stories use Component Story Format 3, and payloads come from `src/stories/fixtures.tsx`, which holds provider lists, identities and audit entries shaped exactly like the backend serves them.
|
|
200
202
|
Reuse those rather than inventing a payload, so a story that renders is evidence the component handles the real contract.
|
|
201
203
|
|
|
202
|
-
Two decorators in `src/
|
|
204
|
+
Two decorators in `src/stories/`, beside the fixtures, cover what these components need from their surroundings.
|
|
203
205
|
|
|
204
206
|
- `withPage` supplies the router and store a page-level component reads.
|
|
205
207
|
- `withUserMenu` puts a component in the chrome it actually appears in, which is the only way to see a menu entry rendered where a user meets it.
|
|
@@ -25,7 +25,7 @@ msgstr ""
|
|
|
25
25
|
#. Default: "Actions"
|
|
26
26
|
#: components/Applications/ApplicationsPanel
|
|
27
27
|
#: components/ControlPanel/ClientsPanel
|
|
28
|
-
#: components/ControlPanel/
|
|
28
|
+
#: components/ControlPanel/ProvidersTable
|
|
29
29
|
msgid "Actions"
|
|
30
30
|
msgstr ""
|
|
31
31
|
|
|
@@ -54,6 +54,11 @@ msgstr ""
|
|
|
54
54
|
msgid "Allow {client} to use your account?"
|
|
55
55
|
msgstr ""
|
|
56
56
|
|
|
57
|
+
#. Default: "An export carries every client secret in the clear. Handle the file the way you would handle the secrets inside it."
|
|
58
|
+
#: components/ControlPanel/ProvidersControlPanel
|
|
59
|
+
msgid "An export carries every client secret in the clear."
|
|
60
|
+
msgstr ""
|
|
61
|
+
|
|
57
62
|
#. Default: "Application"
|
|
58
63
|
#: components/Applications/ApplicationsPanel
|
|
59
64
|
msgid "Application"
|
|
@@ -65,6 +70,11 @@ msgstr ""
|
|
|
65
70
|
msgid "Applications"
|
|
66
71
|
msgstr ""
|
|
67
72
|
|
|
73
|
+
#. Default: "Authenticated with"
|
|
74
|
+
#: components/Welcome/WelcomeCard
|
|
75
|
+
msgid "Authenticated with"
|
|
76
|
+
msgstr ""
|
|
77
|
+
|
|
68
78
|
#. Default: "Authorize"
|
|
69
79
|
#: components/Consent/Consent
|
|
70
80
|
msgid "Authorize"
|
|
@@ -87,6 +97,7 @@ msgid "Back"
|
|
|
87
97
|
msgstr ""
|
|
88
98
|
|
|
89
99
|
#. Default: "Back to sign-in options"
|
|
100
|
+
#: components/Callback/Callback
|
|
90
101
|
#: components/Login/LoginForm
|
|
91
102
|
msgid "Back to sign-in options"
|
|
92
103
|
msgstr ""
|
|
@@ -96,6 +107,11 @@ msgstr ""
|
|
|
96
107
|
msgid "Back to the list"
|
|
97
108
|
msgstr ""
|
|
98
109
|
|
|
110
|
+
#. Default: "Back to the providers"
|
|
111
|
+
#: components/ControlPanel/ProvidersControlPanel
|
|
112
|
+
msgid "Back to the providers"
|
|
113
|
+
msgstr ""
|
|
114
|
+
|
|
99
115
|
#. Default: "Cancel"
|
|
100
116
|
#: components/ControlPanel/ClientsControlPanel
|
|
101
117
|
#: components/ControlPanel/ConfirmModal
|
|
@@ -115,7 +131,7 @@ msgid "Choose a file"
|
|
|
115
131
|
msgstr ""
|
|
116
132
|
|
|
117
133
|
#. Default: "Choose how you would like to sign in."
|
|
118
|
-
#: components/Login/
|
|
134
|
+
#: components/Login/useLogin
|
|
119
135
|
msgid "Choose how you would like to sign in."
|
|
120
136
|
msgstr ""
|
|
121
137
|
|
|
@@ -170,6 +186,12 @@ msgstr ""
|
|
|
170
186
|
msgid "Confidential"
|
|
171
187
|
msgstr ""
|
|
172
188
|
|
|
189
|
+
#. Default: "Confirm your email address"
|
|
190
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
191
|
+
#: components/ProfileGate/ProfileGate
|
|
192
|
+
msgid "Confirm your email address"
|
|
193
|
+
msgstr ""
|
|
194
|
+
|
|
173
195
|
#. Default: "Confirming your address…"
|
|
174
196
|
#: components/Callback/Callback
|
|
175
197
|
msgid "Confirming your address"
|
|
@@ -190,9 +212,14 @@ msgstr ""
|
|
|
190
212
|
msgid "Copy"
|
|
191
213
|
msgstr ""
|
|
192
214
|
|
|
215
|
+
#. Default: "Default"
|
|
216
|
+
#: components/Blocks/SignIn/schema
|
|
217
|
+
msgid "Default"
|
|
218
|
+
msgstr ""
|
|
219
|
+
|
|
193
220
|
#. Default: "Delete"
|
|
194
221
|
#: components/ControlPanel/ConfirmModal
|
|
195
|
-
#: components/ControlPanel/
|
|
222
|
+
#: components/ControlPanel/ProvidersTable
|
|
196
223
|
#: components/ControlPanel/RenderUsers
|
|
197
224
|
msgid "Delete"
|
|
198
225
|
msgstr ""
|
|
@@ -223,14 +250,14 @@ msgid "Disabled. Its existing access tokens are refused as well."
|
|
|
223
250
|
msgstr ""
|
|
224
251
|
|
|
225
252
|
#. Default: "Driver"
|
|
226
|
-
#: components/ControlPanel/
|
|
253
|
+
#: components/ControlPanel/ProvidersTable
|
|
227
254
|
#: helpers/providerSchema
|
|
228
255
|
msgid "Driver"
|
|
229
256
|
msgstr ""
|
|
230
257
|
|
|
231
258
|
#. Default: "Edit"
|
|
232
259
|
#: components/ControlPanel/ClientsPanel
|
|
233
|
-
#: components/ControlPanel/
|
|
260
|
+
#: components/ControlPanel/ProvidersTable
|
|
234
261
|
#: components/ControlPanel/RenderUsers
|
|
235
262
|
#: components/Toolbar/Toolbar
|
|
236
263
|
msgid "Edit"
|
|
@@ -241,6 +268,11 @@ msgstr ""
|
|
|
241
268
|
msgid "Edit your profile"
|
|
242
269
|
msgstr ""
|
|
243
270
|
|
|
271
|
+
#. Default: "Editing"
|
|
272
|
+
#: components/Blocks/SignIn/schema
|
|
273
|
+
msgid "Editing"
|
|
274
|
+
msgstr ""
|
|
275
|
+
|
|
244
276
|
#. Default: "Email address"
|
|
245
277
|
#: components/Login/MagicLinkForm
|
|
246
278
|
msgid "Email address"
|
|
@@ -259,7 +291,7 @@ msgstr ""
|
|
|
259
291
|
|
|
260
292
|
#. Default: "Enabled"
|
|
261
293
|
#: components/ControlPanel/ClientsPanel
|
|
262
|
-
#: components/ControlPanel/
|
|
294
|
+
#: components/ControlPanel/ProvidersTable
|
|
263
295
|
msgid "Enabled"
|
|
264
296
|
msgstr ""
|
|
265
297
|
|
|
@@ -275,6 +307,16 @@ msgstr ""
|
|
|
275
307
|
msgid "Expand toolbar"
|
|
276
308
|
msgstr ""
|
|
277
309
|
|
|
310
|
+
#. Default: "Export"
|
|
311
|
+
#: components/ControlPanel/ProvidersTable
|
|
312
|
+
msgid "Export"
|
|
313
|
+
msgstr ""
|
|
314
|
+
|
|
315
|
+
#. Default: "Export every provider"
|
|
316
|
+
#: components/ControlPanel/ProvidersControlPanel
|
|
317
|
+
msgid "Export every provider"
|
|
318
|
+
msgstr ""
|
|
319
|
+
|
|
278
320
|
#. Default: "File"
|
|
279
321
|
#: components/Toolbar/Toolbar
|
|
280
322
|
msgid "File"
|
|
@@ -305,13 +347,18 @@ msgstr ""
|
|
|
305
347
|
msgid "Groups in this group"
|
|
306
348
|
msgstr ""
|
|
307
349
|
|
|
350
|
+
#. Default: "Hello {fullname}!"
|
|
351
|
+
#: components/Blocks/SignIn/schema
|
|
352
|
+
msgid "Hello {fullname}!"
|
|
353
|
+
msgstr ""
|
|
354
|
+
|
|
308
355
|
#. Default: "I have saved it"
|
|
309
356
|
#: components/ControlPanel/SecretReveal
|
|
310
357
|
msgid "I have saved it"
|
|
311
358
|
msgstr ""
|
|
312
359
|
|
|
313
360
|
#. Default: "Id"
|
|
314
|
-
#: components/ControlPanel/
|
|
361
|
+
#: components/ControlPanel/ProvidersTable
|
|
315
362
|
msgid "Id"
|
|
316
363
|
msgstr ""
|
|
317
364
|
|
|
@@ -340,6 +387,11 @@ msgstr ""
|
|
|
340
387
|
msgid "It will be able to read:"
|
|
341
388
|
msgstr ""
|
|
342
389
|
|
|
390
|
+
#. Default: "Last login"
|
|
391
|
+
#: components/Welcome/WelcomeCard
|
|
392
|
+
msgid "Last login"
|
|
393
|
+
msgstr ""
|
|
394
|
+
|
|
343
395
|
#. Default: "Last signed in"
|
|
344
396
|
#: components/ControlPanel/UserAccountPanel
|
|
345
397
|
msgid "Last signed in"
|
|
@@ -350,6 +402,16 @@ msgstr ""
|
|
|
350
402
|
msgid "Link"
|
|
351
403
|
msgstr ""
|
|
352
404
|
|
|
405
|
+
#. Default: "Link to their profile"
|
|
406
|
+
#: components/Blocks/SignIn/schema
|
|
407
|
+
msgid "Link to their profile"
|
|
408
|
+
msgstr ""
|
|
409
|
+
|
|
410
|
+
#. Default: "Loading"
|
|
411
|
+
#: components/ControlPanel/ProvidersControlPanel
|
|
412
|
+
msgid "Loading"
|
|
413
|
+
msgstr ""
|
|
414
|
+
|
|
353
415
|
#. Default: "Loading clients…"
|
|
354
416
|
#: components/ControlPanel/ClientsPanel
|
|
355
417
|
msgid "Loading clients"
|
|
@@ -388,7 +450,7 @@ msgstr ""
|
|
|
388
450
|
#. Default: "Log in"
|
|
389
451
|
#: components/Callback/Callback
|
|
390
452
|
#: components/FirstLogin/FirstLogin
|
|
391
|
-
#: components/Login/
|
|
453
|
+
#: components/Login/useLogin
|
|
392
454
|
msgid "Log in"
|
|
393
455
|
msgstr ""
|
|
394
456
|
|
|
@@ -397,6 +459,11 @@ msgstr ""
|
|
|
397
459
|
msgid "Login name"
|
|
398
460
|
msgstr ""
|
|
399
461
|
|
|
462
|
+
#. Default: "Login screen"
|
|
463
|
+
#: components/ControlPanel/ProvidersTable
|
|
464
|
+
msgid "Login screen"
|
|
465
|
+
msgstr ""
|
|
466
|
+
|
|
400
467
|
#. Default: "Logout"
|
|
401
468
|
#: components/Toolbar/PersonalTools
|
|
402
469
|
msgid "Logout"
|
|
@@ -432,6 +499,11 @@ msgstr ""
|
|
|
432
499
|
msgid "More"
|
|
433
500
|
msgstr ""
|
|
434
501
|
|
|
502
|
+
#. Default: "Move {title}"
|
|
503
|
+
#: components/ControlPanel/ProvidersTable
|
|
504
|
+
msgid "Move {title}"
|
|
505
|
+
msgstr ""
|
|
506
|
+
|
|
435
507
|
#. Default: "News Item"
|
|
436
508
|
#: components/Toolbar/Toolbar
|
|
437
509
|
msgid "News Item"
|
|
@@ -439,7 +511,7 @@ msgstr ""
|
|
|
439
511
|
|
|
440
512
|
#. Default: "No"
|
|
441
513
|
#: components/ControlPanel/ClientsPanel
|
|
442
|
-
#: components/ControlPanel/
|
|
514
|
+
#: components/ControlPanel/ProvidersTable
|
|
443
515
|
msgid "No"
|
|
444
516
|
msgstr ""
|
|
445
517
|
|
|
@@ -458,6 +530,11 @@ msgstr ""
|
|
|
458
530
|
msgid "No login callback URL is configured"
|
|
459
531
|
msgstr ""
|
|
460
532
|
|
|
533
|
+
#. Default: "No provider has the id {id}."
|
|
534
|
+
#: components/ControlPanel/ProvidersControlPanel
|
|
535
|
+
msgid "No provider has the id {id}."
|
|
536
|
+
msgstr ""
|
|
537
|
+
|
|
461
538
|
#. Default: "No providers are configured yet."
|
|
462
539
|
#: components/ControlPanel/ProvidersControlPanel
|
|
463
540
|
msgid "No providers are configured yet."
|
|
@@ -488,6 +565,11 @@ msgstr ""
|
|
|
488
565
|
msgid "Older keys stay in the ring so tokens already issued keep verifying."
|
|
489
566
|
msgstr ""
|
|
490
567
|
|
|
568
|
+
#. Default: "Order"
|
|
569
|
+
#: components/ControlPanel/ProvidersTable
|
|
570
|
+
msgid "Order"
|
|
571
|
+
msgstr ""
|
|
572
|
+
|
|
491
573
|
#. Default: "Page"
|
|
492
574
|
#: components/Toolbar/Toolbar
|
|
493
575
|
msgid "Page"
|
|
@@ -518,6 +600,11 @@ msgstr ""
|
|
|
518
600
|
msgid "Personal tools"
|
|
519
601
|
msgstr ""
|
|
520
602
|
|
|
603
|
+
#. Default: "Plain text. {username} is the name the user signs in with, and {fullname} their full name."
|
|
604
|
+
#: components/Blocks/SignIn/schema
|
|
605
|
+
msgid "Plain text. {username} is the name the user signs in with, and {fullname} their full name."
|
|
606
|
+
msgstr ""
|
|
607
|
+
|
|
521
608
|
#. Default: "Please fill in {fields} before you can continue."
|
|
522
609
|
#: components/ProfileGate/ProfileGate
|
|
523
610
|
msgid "Please fill in {fields} before you can continue."
|
|
@@ -533,6 +620,16 @@ msgstr ""
|
|
|
533
620
|
msgid "Preferred"
|
|
534
621
|
msgstr ""
|
|
535
622
|
|
|
623
|
+
#. Default: "Preferred email"
|
|
624
|
+
#: components/Welcome/WelcomeCard
|
|
625
|
+
msgid "Preferred email"
|
|
626
|
+
msgstr ""
|
|
627
|
+
|
|
628
|
+
#. Default: "Preview the sign-in options"
|
|
629
|
+
#: components/Blocks/SignIn/schema
|
|
630
|
+
msgid "Preview the sign-in options"
|
|
631
|
+
msgstr ""
|
|
632
|
+
|
|
536
633
|
#. Default: "Profile"
|
|
537
634
|
#: components/UserMenu/ProfileMenuItem
|
|
538
635
|
#: components/UserMenu/UserMenuPlugs
|
|
@@ -679,10 +776,15 @@ msgid "Sign in with a password"
|
|
|
679
776
|
msgstr ""
|
|
680
777
|
|
|
681
778
|
#. Default: "Sign in with your account on this site."
|
|
682
|
-
#: components/Login/
|
|
779
|
+
#: components/Login/useLogin
|
|
683
780
|
msgid "Sign in with your account on this site."
|
|
684
781
|
msgstr ""
|
|
685
782
|
|
|
783
|
+
#. Default: "Sign-in"
|
|
784
|
+
#: components/Blocks/SignIn/schema
|
|
785
|
+
msgid "Sign-in"
|
|
786
|
+
msgstr ""
|
|
787
|
+
|
|
686
788
|
#. Default: "Sign-in methods"
|
|
687
789
|
#: components/ControlPanel/UserAccountPanel
|
|
688
790
|
#: components/Identities/Identities
|
|
@@ -725,6 +827,7 @@ msgstr ""
|
|
|
725
827
|
|
|
726
828
|
#. Default: "Test connection"
|
|
727
829
|
#: components/ControlPanel/ProvidersControlPanel
|
|
830
|
+
#: components/ControlPanel/ProvidersTable
|
|
728
831
|
msgid "Test connection"
|
|
729
832
|
msgstr ""
|
|
730
833
|
|
|
@@ -758,16 +861,31 @@ msgstr ""
|
|
|
758
861
|
msgid "That sign-in option is not available right now."
|
|
759
862
|
msgstr ""
|
|
760
863
|
|
|
864
|
+
#. Default: "The new order could not be saved"
|
|
865
|
+
#: components/ControlPanel/ProvidersControlPanel
|
|
866
|
+
msgid "The new order could not be saved"
|
|
867
|
+
msgstr ""
|
|
868
|
+
|
|
761
869
|
#. Default: "The provider refused the sign-in."
|
|
762
870
|
#: components/Callback/Callback
|
|
763
871
|
msgid "The provider refused the sign-in."
|
|
764
872
|
msgstr ""
|
|
765
873
|
|
|
874
|
+
#. Default: "The providers could not be read, so this form cannot open."
|
|
875
|
+
#: components/ControlPanel/ProvidersControlPanel
|
|
876
|
+
msgid "The providers could not be read"
|
|
877
|
+
msgstr ""
|
|
878
|
+
|
|
766
879
|
#. Default: "The site settings could not be read, so they cannot be edited here. The most likely cause is a settings field with no registry record, which happens when the add-on gained one and its profile has not been reapplied since."
|
|
767
880
|
#: components/ControlPanel/ProvidersControlPanel
|
|
768
881
|
msgid "The site settings could not be read"
|
|
769
882
|
msgstr ""
|
|
770
883
|
|
|
884
|
+
#. Default: "Their preferred email"
|
|
885
|
+
#: components/Blocks/SignIn/schema
|
|
886
|
+
msgid "Their preferred email"
|
|
887
|
+
msgstr ""
|
|
888
|
+
|
|
771
889
|
#. Default: "This application is disabled and is being refused already."
|
|
772
890
|
#: components/Applications/ApplicationsPanel
|
|
773
891
|
msgid "This application is disabled and is being refused already."
|
|
@@ -800,7 +918,7 @@ msgstr ""
|
|
|
800
918
|
|
|
801
919
|
#. Default: "Title"
|
|
802
920
|
#: components/ControlPanel/ClientsPanel
|
|
803
|
-
#: components/ControlPanel/
|
|
921
|
+
#: components/ControlPanel/ProvidersTable
|
|
804
922
|
msgid "Title"
|
|
805
923
|
msgstr ""
|
|
806
924
|
|
|
@@ -835,6 +953,31 @@ msgstr ""
|
|
|
835
953
|
msgid "Verify"
|
|
836
954
|
msgstr ""
|
|
837
955
|
|
|
956
|
+
#. Default: "Welcome"
|
|
957
|
+
#: components/Welcome/WelcomeCard
|
|
958
|
+
msgid "Welcome"
|
|
959
|
+
msgstr ""
|
|
960
|
+
|
|
961
|
+
#. Default: "Welcome message"
|
|
962
|
+
#: components/Blocks/SignIn/schema
|
|
963
|
+
msgid "Welcome message"
|
|
964
|
+
msgstr ""
|
|
965
|
+
|
|
966
|
+
#. Default: "What they signed in with"
|
|
967
|
+
#: components/Blocks/SignIn/schema
|
|
968
|
+
msgid "What they signed in with"
|
|
969
|
+
msgstr ""
|
|
970
|
+
|
|
971
|
+
#. Default: "When they last signed in"
|
|
972
|
+
#: components/Blocks/SignIn/schema
|
|
973
|
+
msgid "When they last signed in"
|
|
974
|
+
msgstr ""
|
|
975
|
+
|
|
976
|
+
#. Default: "While editing only: show what a visitor who is not signed in sees."
|
|
977
|
+
#: components/Blocks/SignIn/schema
|
|
978
|
+
msgid "While editing only: show what a visitor who is not signed in sees."
|
|
979
|
+
msgstr ""
|
|
980
|
+
|
|
838
981
|
#. Default: "Withdraw access"
|
|
839
982
|
#: components/Applications/Applications
|
|
840
983
|
#: components/Applications/ApplicationsPanel
|
|
@@ -853,7 +996,7 @@ msgstr ""
|
|
|
853
996
|
|
|
854
997
|
#. Default: "Yes"
|
|
855
998
|
#: components/ControlPanel/ClientsPanel
|
|
856
|
-
#: components/ControlPanel/
|
|
999
|
+
#: components/ControlPanel/ProvidersTable
|
|
857
1000
|
msgid "Yes"
|
|
858
1001
|
msgstr ""
|
|
859
1002
|
|
|
@@ -882,11 +1025,21 @@ msgstr ""
|
|
|
882
1025
|
msgid "Your email addresses"
|
|
883
1026
|
msgstr ""
|
|
884
1027
|
|
|
1028
|
+
#. Default: "Your profile"
|
|
1029
|
+
#: components/Welcome/WelcomeCard
|
|
1030
|
+
msgid "Your profile"
|
|
1031
|
+
msgstr ""
|
|
1032
|
+
|
|
885
1033
|
#. Default: "Your profile needs a few more details before you can continue."
|
|
886
1034
|
#: components/ProfileGate/ProfileGate
|
|
887
1035
|
msgid "Your profile needs a few more details before you can continue."
|
|
888
1036
|
msgstr ""
|
|
889
1037
|
|
|
1038
|
+
#. Default: "Your verified addresses"
|
|
1039
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1040
|
+
msgid "Your verified addresses"
|
|
1041
|
+
msgstr ""
|
|
1042
|
+
|
|
890
1043
|
#. Default: "Forgot your password?"
|
|
891
1044
|
#: components/Login/PasswordForm
|
|
892
1045
|
msgid "box_forgot_password_option"
|
|
@@ -902,6 +1055,41 @@ msgstr ""
|
|
|
902
1055
|
msgid "client-public-help"
|
|
903
1056
|
msgstr ""
|
|
904
1057
|
|
|
1058
|
+
#. Default: "Continue"
|
|
1059
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1060
|
+
msgid "confirm-email-continue"
|
|
1061
|
+
msgstr ""
|
|
1062
|
+
|
|
1063
|
+
#. Default: "You have more than one verified email address. Choose the one this site should use for you."
|
|
1064
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1065
|
+
msgid "confirm-email-description"
|
|
1066
|
+
msgstr ""
|
|
1067
|
+
|
|
1068
|
+
#. Default: "This site will use {address} for you."
|
|
1069
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1070
|
+
msgid "confirm-email-done"
|
|
1071
|
+
msgstr ""
|
|
1072
|
+
|
|
1073
|
+
#. Default: "That address could not be confirmed. Reload the page and try again."
|
|
1074
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1075
|
+
msgid "confirm-email-failed"
|
|
1076
|
+
msgstr ""
|
|
1077
|
+
|
|
1078
|
+
#. Default: "Loading…"
|
|
1079
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1080
|
+
msgid "confirm-email-loading"
|
|
1081
|
+
msgstr ""
|
|
1082
|
+
|
|
1083
|
+
#. Default: "There is no email address waiting to be confirmed."
|
|
1084
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1085
|
+
msgid "confirm-email-nothing"
|
|
1086
|
+
msgstr ""
|
|
1087
|
+
|
|
1088
|
+
#. Default: "Confirm"
|
|
1089
|
+
#: components/ConfirmEmail/ConfirmEmail
|
|
1090
|
+
msgid "confirm-email-submit"
|
|
1091
|
+
msgstr ""
|
|
1092
|
+
|
|
905
1093
|
#. Default: "Loading members…"
|
|
906
1094
|
#: components/Views/GroupView
|
|
907
1095
|
msgid "group-view-loading"
|
|
@@ -932,6 +1120,11 @@ msgstr ""
|
|
|
932
1120
|
msgid "identities-sections"
|
|
933
1121
|
msgstr ""
|
|
934
1122
|
|
|
1123
|
+
#. Default: "not verified"
|
|
1124
|
+
#: components/Welcome/WelcomeCard
|
|
1125
|
+
msgid "not verified"
|
|
1126
|
+
msgstr ""
|
|
1127
|
+
|
|
935
1128
|
#. Default: "nothing beyond the fact that you signed in"
|
|
936
1129
|
#: components/Consent/ConsentPanel
|
|
937
1130
|
msgid "nothing beyond the fact that you signed in"
|
|
@@ -967,6 +1160,11 @@ msgstr ""
|
|
|
967
1160
|
msgid "profile-emails-sent"
|
|
968
1161
|
msgstr ""
|
|
969
1162
|
|
|
1163
|
+
#. Default: "You have more than one verified email address. Choose the one this site should use for you before you continue."
|
|
1164
|
+
#: components/ProfileGate/ProfileGate
|
|
1165
|
+
msgid "profile-gate-confirm-email"
|
|
1166
|
+
msgstr ""
|
|
1167
|
+
|
|
970
1168
|
#. Default: "Unnamed user"
|
|
971
1169
|
#: components/Views/ProfileView
|
|
972
1170
|
msgid "profile-view-unnamed"
|
|
@@ -977,6 +1175,11 @@ msgstr ""
|
|
|
977
1175
|
msgid "provider-driver-help"
|
|
978
1176
|
msgstr ""
|
|
979
1177
|
|
|
1178
|
+
#. Default: "The driver's icon, used until one is uploaded."
|
|
1179
|
+
#: components/Widgets/ProviderIconWidget
|
|
1180
|
+
msgid "provider-icon-default"
|
|
1181
|
+
msgstr ""
|
|
1182
|
+
|
|
980
1183
|
#. Default: "An SVG file. It is drawn in the button, so it takes the button colours; anything else is refused."
|
|
981
1184
|
#: components/Widgets/ProviderIconWidget
|
|
982
1185
|
msgid "provider-icon-hint"
|
|
@@ -1062,6 +1265,11 @@ msgstr ""
|
|
|
1062
1265
|
msgid "user-account-sections"
|
|
1063
1266
|
msgstr ""
|
|
1064
1267
|
|
|
1268
|
+
#. Default: "verified"
|
|
1269
|
+
#: components/Welcome/WelcomeCard
|
|
1270
|
+
msgid "verified"
|
|
1271
|
+
msgstr ""
|
|
1272
|
+
|
|
1065
1273
|
#. Default: "verifying only"
|
|
1066
1274
|
#: components/ControlPanel/ClientsPanel
|
|
1067
1275
|
msgid "verifying only"
|