masks-server 0.7.0 → 0.8.0
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.
- checksums.yaml +4 -4
- data/app/controllers/masks/server/enrollments_controller.rb +66 -0
- data/app/controllers/masks/server/introspections_controller.rb +2 -2
- data/app/controllers/masks/server/registrations_controller.rb +31 -1
- data/app/graphql/masks/server/manage/types/client_type.rb +8 -0
- data/app/graphql/masks/server/manage/types/query_type.rb +6 -1
- data/app/helpers/masks/server/application_helper.rb +0 -1
- data/app/helpers/masks/server/scopes_helper.rb +28 -0
- data/app/jobs/masks/server/cleanup_job.rb +1 -0
- data/app/models/masks/server/client.rb +81 -1
- data/app/models/masks/server/client_keys.rb +6 -1
- data/app/models/masks/server/enrollment_token.rb +54 -0
- data/app/models/masks/server/event.rb +3 -0
- data/app/models/masks/server/issuer.rb +1 -0
- data/app/models/masks/server/namespace.rb +6 -3
- data/app/models/masks/server/replay.rb +22 -4
- data/app/models/masks/server/token.rb +1 -0
- data/app/views/layouts/masks/server/manage.html.erb +2 -2
- data/app/views/masks/server/application/_person.html.erb +1 -1
- data/app/views/masks/server/handshakes/show.html.erb +129 -59
- data/config/locales/de/account.yml +1 -1
- data/config/locales/de/events.yml +5 -2
- data/config/locales/de/flashes.yml +2 -2
- data/config/locales/de/handshakes.yml +33 -14
- data/config/locales/de/mailers.yml +1 -1
- data/config/locales/de/manage/activity.yml +2 -2
- data/config/locales/de/manage/actor.yml +41 -23
- data/config/locales/de/manage/actors.yml +16 -15
- data/config/locales/de/manage/api.yml +1 -1
- data/config/locales/de/manage/app.yml +6 -6
- data/config/locales/de/manage/client.yml +45 -45
- data/config/locales/de/manage/clients.yml +28 -32
- data/config/locales/de/manage/connections.yml +2 -2
- data/config/locales/de/manage/consents.yml +2 -2
- data/config/locales/de/manage/device.yml +7 -7
- data/config/locales/de/manage/devices.yml +18 -18
- data/config/locales/de/manage/directory.yml +1 -1
- data/config/locales/de/manage/domains.yml +6 -6
- data/config/locales/de/manage/emails.yml +4 -4
- data/config/locales/de/manage/events.yml +3 -0
- data/config/locales/de/manage/groups.yml +6 -6
- data/config/locales/de/manage/ldap.yml +8 -8
- data/config/locales/de/manage/namespaces.yml +1 -1
- data/config/locales/de/manage/organization.yml +15 -8
- data/config/locales/de/manage/organizations.yml +3 -3
- data/config/locales/de/manage/policies.yml +6 -6
- data/config/locales/de/manage/policy_rules.yml +1 -1
- data/config/locales/de/manage/presence.yml +6 -6
- data/config/locales/de/manage/providers.yml +70 -48
- data/config/locales/de/manage/provisioning.yml +4 -4
- data/config/locales/de/manage/senders.yml +1 -1
- data/config/locales/de/manage/settings.yml +37 -26
- data/config/locales/de/manage/settings_shell.yml +2 -2
- data/config/locales/de/refusals.yml +5 -5
- data/config/locales/en/account.yml +3 -3
- data/config/locales/en/events.yml +4 -1
- data/config/locales/en/flashes.yml +3 -3
- data/config/locales/en/handshakes.yml +33 -14
- data/config/locales/en/logins.yml +2 -2
- data/config/locales/en/manage/actor.yml +32 -14
- data/config/locales/en/manage/actors.yml +16 -15
- data/config/locales/en/manage/app.yml +5 -5
- data/config/locales/en/manage/client.yml +9 -9
- data/config/locales/en/manage/clients.yml +8 -12
- data/config/locales/en/manage/connections.yml +1 -1
- data/config/locales/en/manage/consents.yml +1 -1
- data/config/locales/en/manage/device.yml +1 -1
- data/config/locales/en/manage/devices.yml +1 -1
- data/config/locales/en/manage/directory.yml +1 -1
- data/config/locales/en/manage/domains.yml +6 -6
- data/config/locales/en/manage/emails.yml +4 -4
- data/config/locales/en/manage/events.yml +3 -0
- data/config/locales/en/manage/groups.yml +6 -6
- data/config/locales/en/manage/ldap.yml +8 -8
- data/config/locales/en/manage/messages.yml +1 -1
- data/config/locales/en/manage/namespaces.yml +1 -1
- data/config/locales/en/manage/organization.yml +16 -9
- data/config/locales/en/manage/organizations.yml +3 -3
- data/config/locales/en/manage/policies.yml +6 -6
- data/config/locales/en/manage/policy_rules.yml +2 -2
- data/config/locales/en/manage/presence.yml +1 -1
- data/config/locales/en/manage/providers.yml +70 -48
- data/config/locales/en/manage/provisioning.yml +4 -4
- data/config/locales/en/manage/senders.yml +2 -2
- data/config/locales/en/manage/settings.yml +34 -23
- data/config/locales/es/account.yml +1 -1
- data/config/locales/es/application.yml +1 -1
- data/config/locales/es/events.yml +4 -1
- data/config/locales/es/flashes.yml +4 -4
- data/config/locales/es/handshakes.yml +33 -14
- data/config/locales/es/logins.yml +12 -12
- data/config/locales/es/mailers.yml +7 -7
- data/config/locales/es/manage/activity.yml +2 -2
- data/config/locales/es/manage/actor.yml +33 -15
- data/config/locales/es/manage/actors.yml +17 -16
- data/config/locales/es/manage/api.yml +1 -1
- data/config/locales/es/manage/app.yml +6 -6
- data/config/locales/es/manage/client.yml +30 -30
- data/config/locales/es/manage/clients.yml +22 -26
- data/config/locales/es/manage/connections.yml +1 -1
- data/config/locales/es/manage/consents.yml +1 -1
- data/config/locales/es/manage/device.yml +1 -1
- data/config/locales/es/manage/directory.yml +1 -1
- data/config/locales/es/manage/domains.yml +5 -5
- data/config/locales/es/manage/emails.yml +7 -7
- data/config/locales/es/manage/events.yml +3 -0
- data/config/locales/es/manage/groups.yml +6 -6
- data/config/locales/es/manage/ldap.yml +8 -8
- data/config/locales/es/manage/namespaces.yml +1 -1
- data/config/locales/es/manage/organization.yml +16 -9
- data/config/locales/es/manage/organizations.yml +3 -3
- data/config/locales/es/manage/policies.yml +8 -8
- data/config/locales/es/manage/policy_rules.yml +2 -2
- data/config/locales/es/manage/providers.yml +70 -48
- data/config/locales/es/manage/provisioning.yml +4 -4
- data/config/locales/es/manage/senders.yml +1 -1
- data/config/locales/es/manage/settings.yml +38 -27
- data/config/locales/es/manage/settings_shell.yml +2 -2
- data/config/locales/es/refusals.yml +3 -3
- data/config/locales/fr/events.yml +3 -0
- data/config/locales/fr/flashes.yml +1 -1
- data/config/locales/fr/handshakes.yml +33 -14
- data/config/locales/fr/manage/activity.yml +4 -4
- data/config/locales/fr/manage/actor.yml +43 -25
- data/config/locales/fr/manage/actors.yml +22 -21
- data/config/locales/fr/manage/api.yml +1 -1
- data/config/locales/fr/manage/app.yml +7 -7
- data/config/locales/fr/manage/client.yml +50 -50
- data/config/locales/fr/manage/clients.yml +28 -32
- data/config/locales/fr/manage/connections.yml +2 -2
- data/config/locales/fr/manage/consents.yml +1 -1
- data/config/locales/fr/manage/device.yml +1 -1
- data/config/locales/fr/manage/directory.yml +1 -1
- data/config/locales/fr/manage/domains.yml +6 -6
- data/config/locales/fr/manage/emails.yml +5 -5
- data/config/locales/fr/manage/events.yml +3 -0
- data/config/locales/fr/manage/groups.yml +6 -6
- data/config/locales/fr/manage/ldap.yml +8 -8
- data/config/locales/fr/manage/namespaces.yml +1 -1
- data/config/locales/fr/manage/organization.yml +15 -8
- data/config/locales/fr/manage/organizations.yml +3 -3
- data/config/locales/fr/manage/policies.yml +6 -6
- data/config/locales/fr/manage/policy_rules.yml +1 -1
- data/config/locales/fr/manage/providers.yml +70 -48
- data/config/locales/fr/manage/provisioning.yml +4 -4
- data/config/locales/fr/manage/senders.yml +1 -1
- data/config/locales/fr/manage/settings.yml +38 -27
- data/config/locales/fr/manage/settings_shell.yml +2 -2
- data/config/routes.rb +2 -0
- data/config/vite.json +1 -0
- data/db/migrate/20261011190000_add_enrolled_by_to_clients.rb +5 -0
- data/db/migrate/20261012100000_create_replays.rb +23 -0
- data/public/masks-assets/.vite/manifest-assets.json +1 -0
- data/public/masks-assets/.vite/manifest.json +62 -0
- data/public/masks-assets/assets/app-DoQZrM_J.css +2 -0
- data/public/masks-assets/assets/console-DoyNbIw3.css +1 -0
- data/public/masks-assets/assets/handshake-DIFZPSAK.js +2 -0
- data/public/masks-assets/assets/handshake-DIFZPSAK.js.map +1 -0
- data/public/masks-assets/assets/manage-isLCrWiU.js +567 -0
- data/public/masks-assets/assets/manage-isLCrWiU.js.map +1 -0
- data/version.txt +1 -1
- metadata +14 -7
- data/public/masks-assets/assets/app-olx-5PkA.css +0 -2
- data/public/masks-assets/assets/console-CiuQ3qj0.css +0 -1
- data/public/masks-assets/assets/handshake-BYhhQ_X3.js +0 -2
- data/public/masks-assets/assets/handshake-BYhhQ_X3.js.map +0 -1
- data/public/masks-assets/assets/manage-Z3GmPDNQ.js +0 -560
- data/public/masks-assets/assets/manage-Z3GmPDNQ.js.map +0 -1
|
@@ -39,7 +39,7 @@ en:
|
|
|
39
39
|
taken: "That %{provider} account is already connected to somebody else here."
|
|
40
40
|
|
|
41
41
|
delegations:
|
|
42
|
-
unknown: "There is no such
|
|
42
|
+
unknown: "There is no such app using that account."
|
|
43
43
|
stopped: "%{client} can no longer use your %{provider} account."
|
|
44
44
|
|
|
45
45
|
passkeys:
|
|
@@ -113,7 +113,7 @@ en:
|
|
|
113
113
|
expired: "That sign-in stopped waiting. Ask for a new code on the other screen."
|
|
114
114
|
too_many_attempts: "Too many attempts. Wait a few minutes and try again."
|
|
115
115
|
approved: "Sign-in approved."
|
|
116
|
-
denied: "Sign-in
|
|
116
|
+
denied: "Sign-in refused."
|
|
117
117
|
|
|
118
118
|
passwords:
|
|
119
119
|
too_many_attempts: "Too many attempts. Wait a few minutes and try again."
|
|
@@ -138,7 +138,7 @@ en:
|
|
|
138
138
|
sent: "A confirmation link is on its way to %{email}."
|
|
139
139
|
|
|
140
140
|
avatars:
|
|
141
|
-
updated: "Your photo has been
|
|
141
|
+
updated: "Your photo has been changed."
|
|
142
142
|
removed: "Your photo has been removed."
|
|
143
143
|
|
|
144
144
|
handshakes:
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
en:
|
|
2
2
|
handshakes:
|
|
3
3
|
show:
|
|
4
|
-
page_title: "
|
|
5
|
-
page_title_again: "
|
|
6
|
-
title: "
|
|
7
|
-
title_again: "
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
page_title: "Connect %{name}"
|
|
5
|
+
page_title_again: "Reconnect %{name}"
|
|
6
|
+
title: "Connect %{name} to %{tenant}?"
|
|
7
|
+
title_again: "Reconnect %{name}?"
|
|
8
|
+
runs_at: "Runs at"
|
|
9
|
+
lede_html: "People will be able to sign in to <strong>%{name}</strong> with their %{tenant} account. For now only you are allowed in, and you choose who else gets in later."
|
|
10
|
+
lede_again_html: "<strong>%{name}</strong> is already connected to %{tenant}. Reconnecting sets it up again. For now only you are allowed in, and you choose who else gets in later."
|
|
11
|
+
stops_working: "The current %{name} connection stops working."
|
|
12
|
+
connected_by_you: "You connected %{name} on %{date}."
|
|
13
|
+
connected_by: "%{who} connected %{name} on %{date}."
|
|
14
|
+
signed_in_as: "You are approving as"
|
|
15
|
+
unconfirmed: "(email not confirmed yet)"
|
|
16
|
+
check: "Look at these first"
|
|
17
|
+
heed:
|
|
18
|
+
offline_access: "%{name} can keep people signed in without asking again, until they sign out."
|
|
19
|
+
delegates_title: "Ask people to connect their other accounts"
|
|
20
|
+
delegates: "Each person chooses for themselves. %{name} can then use those accounts while they are away."
|
|
21
|
+
delegate: "%{name} can use that account while you are away, until you stop it."
|
|
22
|
+
manage: "Anyone who signs in through %{name} can change every setting on this server."
|
|
23
|
+
sees: "%{name} can see"
|
|
24
|
+
area: "%{name}'s own permissions"
|
|
25
|
+
area_says_html: "%{name} gets its own set of permissions, named %{namespaces}. You decide who gets them."
|
|
26
|
+
area_yours: " You get all of them now."
|
|
27
|
+
also: "%{name} can also"
|
|
28
|
+
details: "Technical details"
|
|
29
|
+
scopes: "Scopes"
|
|
10
30
|
client: "Credentials"
|
|
11
31
|
credentials:
|
|
12
32
|
public: "Public. It holds no secret."
|
|
@@ -16,24 +36,23 @@ en:
|
|
|
16
36
|
replaced: "The %{name} client %{who} approved on %{date}. Its current credentials stop working."
|
|
17
37
|
you: "you"
|
|
18
38
|
someone: "somebody"
|
|
19
|
-
may_ask: "May ask for"
|
|
20
39
|
manage_warning: "masks:manage lets anyone who signs in through %{name} change every setting on this server."
|
|
21
40
|
beneath:
|
|
22
|
-
one: "What
|
|
23
|
-
other: "What
|
|
41
|
+
one: "What they cover today (1)"
|
|
42
|
+
other: "What they cover today (%{count})"
|
|
24
43
|
signs_in_at: "Signs in at"
|
|
25
44
|
claims: "Claims"
|
|
26
45
|
claimed: "%{namespaces} becomes %{name}'s, and you are granted it now."
|
|
27
|
-
details: "Additional details"
|
|
28
46
|
origin: "From"
|
|
29
47
|
redirect_uris: "Redirect URIs"
|
|
30
48
|
returns: "Returns to"
|
|
31
49
|
auth_method: "Authenticates with"
|
|
32
50
|
backchannel: "Backchannel logout"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
after_sign_out: "After sign-out, returns to"
|
|
52
|
+
connect: "Connect %{name}"
|
|
53
|
+
connect_in: "Connect %{name} in %{seconds}"
|
|
54
|
+
reconnect: "Reconnect %{name}"
|
|
55
|
+
reconnect_in: "Reconnect %{name} in %{seconds}"
|
|
37
56
|
cancel: "Cancel"
|
|
38
57
|
|
|
39
58
|
refused:
|
|
@@ -226,7 +226,7 @@ en:
|
|
|
226
226
|
invalid-backup-code: "That backup code is not valid."
|
|
227
227
|
invalid-passkey: "That passkey could not be used."
|
|
228
228
|
factor-not-offered: "That way of signing in is not offered here."
|
|
229
|
-
approval-denied: "That sign-in was
|
|
229
|
+
approval-denied: "That sign-in was refused from a trusted device."
|
|
230
230
|
passkey-expired: "That passkey attempt expired. Try again."
|
|
231
231
|
passkey-unverified: "That passkey did not ask who you are. Use one that checks a PIN or fingerprint."
|
|
232
232
|
passkey-unusable: "That passkey could not be added."
|
|
@@ -269,4 +269,4 @@ en:
|
|
|
269
269
|
notices:
|
|
270
270
|
reset-sent: "If that account exists, a reset link is on its way."
|
|
271
271
|
organization-sign-in: "That organization asks you to sign in another way."
|
|
272
|
-
sso-claiming: "An account here already holds that address. Sign in to it once and the two are
|
|
272
|
+
sso-claiming: "An account here already holds that address. Sign in to it once and the two are connected."
|
|
@@ -18,7 +18,7 @@ en:
|
|
|
18
18
|
left_group: "Out of %{group}."
|
|
19
19
|
joined_group: "In %{group}."
|
|
20
20
|
profile_saved: "Profile saved."
|
|
21
|
-
scopes_updated: "Scopes
|
|
21
|
+
scopes_updated: "Scopes changed."
|
|
22
22
|
codes_generated: "Backup codes generated. They are shown once and never again."
|
|
23
23
|
emailed: "Emailed. The link is not shown here, so that using it proves the address."
|
|
24
24
|
no_mailer: "No mailer is configured, so pass this link along yourself. It works once."
|
|
@@ -27,11 +27,11 @@ en:
|
|
|
27
27
|
confirm_question: "Send a confirmation link for this address? Any earlier one stops working."
|
|
28
28
|
remove_passkey_question: "Remove the passkey “%{label}”?"
|
|
29
29
|
passkey_removed: "Passkey removed."
|
|
30
|
-
photo_updated: "Photo
|
|
30
|
+
photo_updated: "Photo changed."
|
|
31
31
|
remove_photo_question: "Remove this actor's photo?"
|
|
32
32
|
photo_removed: "Photo removed."
|
|
33
33
|
disable_question: "Remove this actor's authenticator app and every backup code?"
|
|
34
|
-
authenticator_removed: "Authenticator removed."
|
|
34
|
+
authenticator_removed: "Authenticator app removed."
|
|
35
35
|
factors:
|
|
36
36
|
email:
|
|
37
37
|
name: "Email codes"
|
|
@@ -44,11 +44,11 @@ en:
|
|
|
44
44
|
suspend_question: "Suspend %{identifier}? They are signed out everywhere, every token they hold stops working, and they cannot sign in until they are restored."
|
|
45
45
|
suspended: "Suspended."
|
|
46
46
|
restored: "Restored. They can sign in again."
|
|
47
|
-
delete_question: "Delete %{identifier}? Their sessions, tokens, passkeys, consents and
|
|
47
|
+
delete_question: "Delete %{identifier}? Their sessions, tokens, passkeys, consents, and photo go with them. There is no undo, and nothing is kept."
|
|
48
48
|
missing: "There is no such actor."
|
|
49
49
|
back: "Actors"
|
|
50
|
-
signed_in_lede: "
|
|
51
|
-
invited_lede: "
|
|
50
|
+
signed_in_lede: "signed in %{when}"
|
|
51
|
+
invited_lede: "invited, has not signed in yet"
|
|
52
52
|
never: "never"
|
|
53
53
|
link_once: "This link works once."
|
|
54
54
|
write_down: "Write these down. They are not recoverable."
|
|
@@ -69,11 +69,10 @@ en:
|
|
|
69
69
|
remove_photo: "Remove photo"
|
|
70
70
|
uploading: "Uploading..."
|
|
71
71
|
scopes: "Scopes"
|
|
72
|
-
access: "Access"
|
|
73
72
|
suspended_on: "Suspended %{day}. They cannot sign in."
|
|
74
73
|
restore: "Restore"
|
|
75
74
|
provisioned_as: "Provisioned as"
|
|
76
|
-
provider_may_change: "The
|
|
75
|
+
provider_may_change: "The directory that provisioned them may change or suspend them too."
|
|
77
76
|
directory_provisioned: "%{organization}'s directory provisioned them as"
|
|
78
77
|
directory_may_change: "and may change them too."
|
|
79
78
|
reset_password: "Reset password"
|
|
@@ -106,20 +105,39 @@ en:
|
|
|
106
105
|
groups: "Groups"
|
|
107
106
|
no_groups: "No groups yet."
|
|
108
107
|
add_group: "Add one"
|
|
109
|
-
group_labels: "
|
|
108
|
+
group_labels: "Clients that ask for groups see %{labels}."
|
|
110
109
|
second_factor: "Second factor"
|
|
111
|
-
authenticator_enabled:
|
|
112
|
-
one: "Authenticator enabled. %{count} backup code remaining."
|
|
113
|
-
other: "Authenticator enabled. %{count} backup codes remaining."
|
|
114
110
|
generate: "Generate backup codes"
|
|
115
111
|
remove_authenticator: "Remove authenticator app"
|
|
116
|
-
password_only: "Password only
|
|
112
|
+
password_only: "Password only. Nothing else is set up."
|
|
117
113
|
factor_on: "%{name} on."
|
|
118
114
|
turn_off: "Turn off %{name}"
|
|
119
115
|
activity: "Activity"
|
|
120
116
|
all_activity: "All activity"
|
|
121
117
|
no_activity: "Nothing yet."
|
|
122
118
|
danger: "Suspend or delete"
|
|
123
|
-
yourself: "This is you
|
|
119
|
+
yourself: "This is you. Another manager has to do it."
|
|
124
120
|
suspend: "Suspend %{identifier}"
|
|
125
121
|
delete: "Delete %{identifier}"
|
|
122
|
+
parts:
|
|
123
|
+
label: "Actor"
|
|
124
|
+
profile: "Profile"
|
|
125
|
+
access: "Access"
|
|
126
|
+
sign_in: "Sign-in"
|
|
127
|
+
activity: "Activity"
|
|
128
|
+
scopes_lede: "The most any token for this actor can hold. Losing masks:manage takes effect at once."
|
|
129
|
+
groups_lede: "A client that asks for the groups scope receives these in a groups claim."
|
|
130
|
+
provisioned: "Provisioned"
|
|
131
|
+
consents_lede: "Clients this actor has allowed in, with the scopes each one was given."
|
|
132
|
+
connections_lede: "Accounts elsewhere this actor signs in with, through a provider."
|
|
133
|
+
password: "Password"
|
|
134
|
+
password_lede: "A reset sends a link. Every session and refresh token ends when it is used."
|
|
135
|
+
password_invited: "They have not accepted their invitation yet."
|
|
136
|
+
authenticator: "Authenticator app"
|
|
137
|
+
backup_codes:
|
|
138
|
+
one: "%{count} backup code left"
|
|
139
|
+
other: "%{count} backup codes left"
|
|
140
|
+
tokens_lede: "Access and refresh tokens issued to clients for this actor."
|
|
141
|
+
photo_lede: "Identicons and initials are drawn. An uploaded photo takes their place."
|
|
142
|
+
change_photo: "Change photo"
|
|
143
|
+
danger_lede: "Suspending signs them out everywhere and keeps everything for a restore. Deleting removes them for good."
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
en:
|
|
2
2
|
manage:
|
|
3
3
|
actors:
|
|
4
|
+
marks:
|
|
5
|
+
manager: "Holds a manage scope"
|
|
6
|
+
second_factor:
|
|
7
|
+
one: "Uses an authenticator app, %{count} backup code left"
|
|
8
|
+
other: "Uses an authenticator app, %{count} backup codes left"
|
|
9
|
+
invited: "Invited, has not signed in yet"
|
|
10
|
+
unconfirmed: "Email not confirmed"
|
|
11
|
+
waiting: "Waiting for a manager's approval"
|
|
12
|
+
help: "Asked for help signing in"
|
|
13
|
+
suspended: "Suspended"
|
|
14
|
+
blocked: "A device is blocked"
|
|
4
15
|
invite_many: "Invite many"
|
|
5
16
|
invites:
|
|
6
|
-
title: "Invite many
|
|
17
|
+
title: "Invite many actors"
|
|
7
18
|
lede: "Paste addresses separated by lines, spaces, or commas. Each new address gets an invitation."
|
|
8
19
|
addresses: "Email addresses"
|
|
9
20
|
groups: "Put them in"
|
|
@@ -13,7 +24,7 @@ en:
|
|
|
13
24
|
other: "%{count} invited"
|
|
14
25
|
outcomes:
|
|
15
26
|
invited: "invited"
|
|
16
|
-
exists: "already
|
|
27
|
+
exists: "is already an actor"
|
|
17
28
|
invalid: "is not an address masks can invite"
|
|
18
29
|
title: "Actors"
|
|
19
30
|
lenses:
|
|
@@ -25,8 +36,6 @@ en:
|
|
|
25
36
|
suspended: "Suspended"
|
|
26
37
|
columns:
|
|
27
38
|
actor: "Actor"
|
|
28
|
-
scopes: "Scopes"
|
|
29
|
-
second_factor: "Second factor"
|
|
30
39
|
signed_in_on: "Signed in on"
|
|
31
40
|
last_seen: "Last seen"
|
|
32
41
|
sessions:
|
|
@@ -47,15 +56,15 @@ en:
|
|
|
47
56
|
minimum: "At least %{count} characters, and you will know it."
|
|
48
57
|
scopes: "Scopes"
|
|
49
58
|
adding: "Adding..."
|
|
50
|
-
create: "
|
|
59
|
+
create: "Add actor"
|
|
51
60
|
invite: "Send the invitation"
|
|
52
61
|
cancel: "Cancel"
|
|
53
62
|
created:
|
|
54
|
-
account: "
|
|
63
|
+
account: "Actor added"
|
|
55
64
|
invitation: "Invitation sent"
|
|
56
65
|
can_sign_in: "%{identifier} can sign in now."
|
|
57
66
|
confirm_link: "This link confirms their address:"
|
|
58
|
-
emailed: "Emailed
|
|
67
|
+
emailed: "Emailed. Accepting it proves the address."
|
|
59
68
|
pass_along: "Pass this link along yourself. It works once."
|
|
60
69
|
empty:
|
|
61
70
|
search: "No actor matches \"%{search}\"."
|
|
@@ -66,13 +75,5 @@ en:
|
|
|
66
75
|
suspended: "Nobody is suspended."
|
|
67
76
|
everyone: "Nobody can sign in yet. Add the first actor."
|
|
68
77
|
no_email: "no email"
|
|
69
|
-
unconfirmed: "unconfirmed"
|
|
70
|
-
invited: "invited"
|
|
71
78
|
last_seen: "Last seen %{when}"
|
|
72
79
|
never: "never"
|
|
73
|
-
authenticator: "authenticator"
|
|
74
|
-
blocked: "blocked"
|
|
75
|
-
backup_codes:
|
|
76
|
-
one: "%{count} backup code"
|
|
77
|
-
other: "%{count} backup codes"
|
|
78
|
-
password: "password"
|
|
@@ -2,8 +2,8 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
app:
|
|
4
4
|
waiting:
|
|
5
|
-
one: "%{count}
|
|
6
|
-
other: "%{count}
|
|
5
|
+
one: "%{count} actor is waiting on you"
|
|
6
|
+
other: "%{count} actors are waiting on you"
|
|
7
7
|
missing: "There is no page at this address."
|
|
8
8
|
account: "Account"
|
|
9
9
|
starting: "Starting"
|
|
@@ -19,6 +19,6 @@ en:
|
|
|
19
19
|
clients: "Clients"
|
|
20
20
|
limited:
|
|
21
21
|
read: "You can read everything here and change nothing."
|
|
22
|
-
support: "You can help
|
|
23
|
-
security: "You can change keys,
|
|
24
|
-
both: "You can change settings and help
|
|
22
|
+
support: "You can help actors. Settings, keys, and other managers need an owner."
|
|
23
|
+
security: "You can change keys, clients, providers, and policies. Actors need support or an owner."
|
|
24
|
+
both: "You can change settings and help actors. Other managers and tenant settings need an owner."
|
|
@@ -51,7 +51,7 @@ en:
|
|
|
51
51
|
restored: "Restored."
|
|
52
52
|
archived: "Archived."
|
|
53
53
|
rotated: "A new secret was issued."
|
|
54
|
-
groups: "Who may sign in is
|
|
54
|
+
groups: "Who may sign in is changed."
|
|
55
55
|
unattended_on: "It can ask for a token of its own now, with client_credentials."
|
|
56
56
|
unattended_off: "It can no longer ask for a token of its own."
|
|
57
57
|
subject: "Saved. Everybody has a new identifier at this client."
|
|
@@ -62,7 +62,7 @@ en:
|
|
|
62
62
|
attributes_default: "It is sent the usual attributes."
|
|
63
63
|
signs_assertions: "It signs its own assertions now. Its secret no longer works."
|
|
64
64
|
uses_secret: "It uses a secret now. Rotate one to hand it."
|
|
65
|
-
grants: "Grants
|
|
65
|
+
grants: "Grants changed."
|
|
66
66
|
entity_id: "Entity ID saved."
|
|
67
67
|
certificate_saved: "Certificate saved."
|
|
68
68
|
certificate_removed: "Certificate removed."
|
|
@@ -70,7 +70,7 @@ en:
|
|
|
70
70
|
signed_read: "Unsigned requests are read."
|
|
71
71
|
idp_initiated_on: "Actors can be signed into it from masks, without it asking."
|
|
72
72
|
idp_initiated_off: "It is signed into only when it asks."
|
|
73
|
-
policy: "Policy
|
|
73
|
+
policy: "Policy changed."
|
|
74
74
|
par_on: "PAR required. Plain /authorize links are refused."
|
|
75
75
|
par_off: "PAR optional."
|
|
76
76
|
dpop_on: "Its access tokens are bound to its key. A token without a proof is refused."
|
|
@@ -81,11 +81,11 @@ en:
|
|
|
81
81
|
access_default: "Access tokens last an hour."
|
|
82
82
|
refresh_days: "Refresh tokens last %{days} days unused."
|
|
83
83
|
refresh_default: "Refresh tokens last 30 days unused."
|
|
84
|
-
consent_days: "Each consent lasts %{days} days, then the
|
|
84
|
+
consent_days: "Each consent lasts %{days} days, then the actor is asked again."
|
|
85
85
|
consent_default: "Consent lasts until revoked."
|
|
86
86
|
jar_on: "Signed requests required. An unsigned /authorize or pushed request is refused."
|
|
87
87
|
jar_off: "Signed requests optional."
|
|
88
|
-
scopes: "Scopes
|
|
88
|
+
scopes: "Scopes changed."
|
|
89
89
|
redirects: "Redirect URIs saved."
|
|
90
90
|
post_logout: "Post-logout URIs saved."
|
|
91
91
|
resources: "Resources saved."
|
|
@@ -95,7 +95,7 @@ en:
|
|
|
95
95
|
declared: "Those declarations are not JSON."
|
|
96
96
|
attributes: "Write one attribute = claim on each line."
|
|
97
97
|
confirm:
|
|
98
|
-
subject: "Everybody gets a different identifier at this client. It will not
|
|
98
|
+
subject: "Everybody gets a different identifier at this client. It will not recognize anybody it already knows. Change it?"
|
|
99
99
|
restore: "Restore this client? It can sign actors in again immediately."
|
|
100
100
|
rotate: "Issue a new secret? The one in use stops working immediately."
|
|
101
101
|
archive: "Archive this client? Nothing will be able to sign in with it."
|
|
@@ -106,7 +106,7 @@ en:
|
|
|
106
106
|
registration:
|
|
107
107
|
title: "Registration"
|
|
108
108
|
name: "Name"
|
|
109
|
-
saml: "A SAML
|
|
109
|
+
saml: "A SAML client. It is signed into with an assertion, not a token."
|
|
110
110
|
public: "A public client. It authenticates with nothing, and proves itself with PKCE."
|
|
111
111
|
authenticates: "Authenticates with"
|
|
112
112
|
needs_keys: "Give it keys under Keys, and it switches to signing its own assertions."
|
|
@@ -128,7 +128,7 @@ en:
|
|
|
128
128
|
requests_signed: "Refuse requests it did not sign"
|
|
129
129
|
idp_initiated: "Let actors start from masks"
|
|
130
130
|
slo_url: "Single logout URL"
|
|
131
|
-
slo_url_hint: "When an actor who signed in to it signs out of masks, masks posts a signed LogoutRequest here. The
|
|
131
|
+
slo_url_hint: "When an actor who signed in to it signs out of masks, masks posts a signed LogoutRequest here. The client's own LogoutRequests are answered here too, and must be signed with its certificate."
|
|
132
132
|
shown:
|
|
133
133
|
title: "Shown to actors"
|
|
134
134
|
unapproved: "Nobody sees its logo until it is approved: a client that registered itself could borrow anybody's."
|
|
@@ -157,7 +157,7 @@ en:
|
|
|
157
157
|
jar: "Require signed request objects (JAR)"
|
|
158
158
|
groups:
|
|
159
159
|
title: "Who may sign in"
|
|
160
|
-
lede: "Everyone, or only
|
|
160
|
+
lede: "Everyone, or only actors in the groups ticked here. An organization role written as key:role counts as a group."
|
|
161
161
|
none: "No groups yet."
|
|
162
162
|
add: "Add one"
|
|
163
163
|
limit: "to limit who may sign in."
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
en:
|
|
2
2
|
manage:
|
|
3
3
|
clients:
|
|
4
|
+
marks:
|
|
5
|
+
archived: "Archived"
|
|
6
|
+
dynamic: "Registered itself, not approved"
|
|
7
|
+
dynamic_approved: "Registered itself, then approved"
|
|
4
8
|
title: "Clients"
|
|
5
9
|
archived: "Archived"
|
|
6
10
|
search: "Search clients"
|
|
@@ -12,14 +16,14 @@ en:
|
|
|
12
16
|
kinds:
|
|
13
17
|
service: "Signs in as itself"
|
|
14
18
|
app: "Signs actors in"
|
|
15
|
-
saml: "SAML
|
|
16
|
-
preset: "A known
|
|
17
|
-
app: "
|
|
19
|
+
saml: "Signs actors in over SAML"
|
|
20
|
+
preset: "A known product"
|
|
21
|
+
app: "Product"
|
|
18
22
|
choose: "Choose one"
|
|
19
23
|
address: "Its address"
|
|
20
24
|
slug: "Name it uses for masks"
|
|
21
25
|
hints:
|
|
22
|
-
preset: "masks fills in its redirect URIs and scopes, and shows what to enter in
|
|
26
|
+
preset: "masks fills in its redirect URIs and scopes, and shows what to enter in its settings. Name is optional here."
|
|
23
27
|
service: "It asks the token endpoint for its own token with client_credentials. No actor is behind it, so it never holds openid, profile, email or masks:manage."
|
|
24
28
|
saml: "It sends actors here with a SAML AuthnRequest, and masks posts a signed assertion back. Paste its metadata to fill the rest in."
|
|
25
29
|
app: "It sends actors to sign in and is handed a token on their behalf."
|
|
@@ -46,15 +50,7 @@ en:
|
|
|
46
50
|
columns:
|
|
47
51
|
name: "Name"
|
|
48
52
|
resources: "Resources"
|
|
49
|
-
source: "Source"
|
|
50
|
-
namespaces: "Namespaces"
|
|
51
|
-
scopes: "Scopes"
|
|
52
|
-
approved_by: "Approved by"
|
|
53
53
|
registered: "Registered"
|
|
54
|
-
self_registered: "self-registered"
|
|
55
|
-
approved: "approved"
|
|
56
|
-
always: "always"
|
|
57
|
-
on_request: "on request"
|
|
58
54
|
empty:
|
|
59
55
|
matches: "No client matches “%{query}”."
|
|
60
56
|
archived_matches: "No archived client matches “%{query}”."
|
|
@@ -3,7 +3,7 @@ en:
|
|
|
3
3
|
connections:
|
|
4
4
|
stop_confirm: "Stop %{client} using this %{provider} account? It has to ask again."
|
|
5
5
|
stopped: "%{client} can no longer use it."
|
|
6
|
-
disconnect_confirm: "Disconnect %{held}? It stops signing anybody in until it is
|
|
6
|
+
disconnect_confirm: "Disconnect %{held}? It stops signing anybody in until it is connected again, and every client using it stops."
|
|
7
7
|
disconnected: "Disconnected."
|
|
8
8
|
empty: "Nothing connected."
|
|
9
9
|
badges:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
en:
|
|
2
2
|
manage:
|
|
3
3
|
consents:
|
|
4
|
-
revoke_confirm: "
|
|
4
|
+
revoke_confirm: "Revoke access for %{held}? Every refresh token it holds is revoked, and it has to ask again the next time somebody signs in."
|
|
5
5
|
revoked: "Access revoked. It will have to ask again."
|
|
6
6
|
empty: "None."
|
|
7
7
|
revoke: "Revoke access"
|
|
@@ -9,7 +9,7 @@ en:
|
|
|
9
9
|
block_question: "Block %{label}? It is refused before any password is checked."
|
|
10
10
|
unblocked: "%{label} is unblocked."
|
|
11
11
|
signed_out: "Signed %{label} out everywhere."
|
|
12
|
-
sign_out_question: "Sign every
|
|
12
|
+
sign_out_question: "Sign every actor out of %{label}?"
|
|
13
13
|
facts:
|
|
14
14
|
kind: "Kind"
|
|
15
15
|
ip_address: "IP address"
|
|
@@ -2,4 +2,4 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
directory:
|
|
4
4
|
title: "Directory"
|
|
5
|
-
lede: "Other systems that keep this tenant's
|
|
5
|
+
lede: "Other systems that keep this tenant's actors: a directory that provisions them over SCIM, and older services that read them over LDAP."
|
|
@@ -2,22 +2,22 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
domains:
|
|
4
4
|
title: "Domains"
|
|
5
|
-
help: "Claim a domain by publishing a TXT record. masks checks it every hour. Once it is proven,
|
|
5
|
+
help: "Claim a domain by publishing a TXT record. masks checks it every hour. Once it is proven, actors who type an address there can go straight to a provider without a password, and sign-in can be served from a host inside it, such as login.example.com, once that host's DNS points here and it has a certificate. Each address is its own issuer, and a passkey works only on the address it was made on."
|
|
6
6
|
claimed: "Publish the TXT record below, then check %{domain}."
|
|
7
7
|
proven: "%{domain} is proven."
|
|
8
8
|
unanswered: "No matching TXT record at %{name} yet. DNS can take a while to spread."
|
|
9
|
-
routed_away: "
|
|
10
|
-
routed_here: "
|
|
9
|
+
routed_away: "Actors at %{domain} go to their provider now."
|
|
10
|
+
routed_here: "Actors at %{domain} sign in here now."
|
|
11
11
|
served: "Sign-in is served from %{host} too."
|
|
12
12
|
unserved: "Sign-in is no longer served from a custom domain."
|
|
13
|
-
stop_confirm: "Stop serving %{host}?
|
|
14
|
-
release_confirm: "Release %{domain}?
|
|
13
|
+
stop_confirm: "Stop serving %{host}? Clients that use it as their issuer stop working."
|
|
14
|
+
release_confirm: "Release %{domain}? Actors with an address there sign in the usual way again."
|
|
15
15
|
released: "%{domain} is released."
|
|
16
16
|
here: "Sign in here"
|
|
17
17
|
to: "Send to %{name}"
|
|
18
18
|
missing: "Stopped answering %{since}"
|
|
19
19
|
unproven: "Not proven"
|
|
20
|
-
send: "Where
|
|
20
|
+
send: "Where actors at %{domain} sign in"
|
|
21
21
|
check: "Check"
|
|
22
22
|
release: "Release %{domain}"
|
|
23
23
|
record: "Publish this TXT record:"
|
|
@@ -2,8 +2,8 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
emails:
|
|
4
4
|
list: "Emails"
|
|
5
|
-
app: "The
|
|
6
|
-
no_app: "No
|
|
5
|
+
app: "The client being signed in to"
|
|
6
|
+
no_app: "No client"
|
|
7
7
|
not_approved: "%{name} (not approved)"
|
|
8
8
|
headed: "Headed by %{heading}, from %{from} to %{to}"
|
|
9
9
|
no_sender: "no sender configured"
|
|
@@ -14,7 +14,7 @@ en:
|
|
|
14
14
|
groups:
|
|
15
15
|
sign_in:
|
|
16
16
|
title: "While signing in"
|
|
17
|
-
help: "Sent during a sign-in. When
|
|
17
|
+
help: "Sent during a sign-in. When a client sent the actor there, an approved client heads the email with its logo and name. A sign-in straight to the account page has no client, and the tenant heads it."
|
|
18
18
|
about: "About emails sent while signing in"
|
|
19
19
|
manage:
|
|
20
20
|
title: "From a manager"
|
|
@@ -22,7 +22,7 @@ en:
|
|
|
22
22
|
about: "About emails sent from a manager"
|
|
23
23
|
account:
|
|
24
24
|
title: "From the account page"
|
|
25
|
-
help: "Sent when
|
|
25
|
+
help: "Sent when an actor changes something on their account page. The tenant heads these."
|
|
26
26
|
about: "About emails sent from the account page"
|
|
27
27
|
system:
|
|
28
28
|
title: "On its own"
|
|
@@ -2,14 +2,14 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
groups:
|
|
4
4
|
title: "Groups"
|
|
5
|
-
lede: "Named sets of
|
|
6
|
-
added: "%{name} is ready. Add
|
|
7
|
-
delete_confirm: "Delete %{name}?
|
|
5
|
+
lede: "Named sets of actors, such as admins or family. Clients that ask for the groups scope see each group an actor is in, and a client can be limited to some groups. A group's key is what clients see, and it cannot change later. Actors join a group from their own page."
|
|
6
|
+
added: "%{name} is ready. Add actors from their own pages."
|
|
7
|
+
delete_confirm: "Delete %{name}? Clients limited to it refuse its actors."
|
|
8
8
|
deleted: "%{name} is deleted."
|
|
9
9
|
people:
|
|
10
|
-
one: "%{count}
|
|
11
|
-
other: "%{count}
|
|
10
|
+
one: "%{count} actor"
|
|
11
|
+
other: "%{count} actors"
|
|
12
12
|
delete: "Delete %{name}"
|
|
13
13
|
new: "New group name"
|
|
14
14
|
add: "Add"
|
|
15
|
-
key: "
|
|
15
|
+
key: "Clients see it as %{key}."
|
|
@@ -2,17 +2,17 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
ldap:
|
|
4
4
|
title: "LDAP"
|
|
5
|
-
lede: "Older
|
|
6
|
-
revoke_confirm: "Revoke %{label}?
|
|
5
|
+
lede: "Older services such as NAS boxes, media servers, and hypervisors check passwords and read groups over LDAP. masks serves this tenant's actors and groups to them read-only."
|
|
6
|
+
revoke_confirm: "Revoke %{label}? Anything binding with it is refused from now on."
|
|
7
7
|
revoked: "%{label} is revoked."
|
|
8
8
|
serve:
|
|
9
9
|
title: "Directory"
|
|
10
|
-
help: "While this is off,
|
|
10
|
+
help: "While this is off, nothing can bind to or search this tenant's directory."
|
|
11
11
|
"on": "Serve this tenant over LDAP"
|
|
12
|
-
updated: "
|
|
12
|
+
updated: "Directory changed."
|
|
13
13
|
connect:
|
|
14
|
-
title: "Connect
|
|
15
|
-
help: "Give the
|
|
14
|
+
title: "Connect a service"
|
|
15
|
+
help: "Give the service this base DN, a bind DN, and its secret. The service searches ou=people and ou=groups, then binds as an actor to check their password."
|
|
16
16
|
base_dn: "Base DN"
|
|
17
17
|
address: "Address"
|
|
18
18
|
port: "Port %{port}"
|
|
@@ -30,6 +30,6 @@ en:
|
|
|
30
30
|
revoke: "Revoke"
|
|
31
31
|
binds:
|
|
32
32
|
title: "Password binds"
|
|
33
|
-
help: "LDAP cannot ask for a second factor. An
|
|
33
|
+
help: "LDAP cannot ask for a second factor. An actor who has one, or whose sign-in policy requires one, is refused unless a password alone is allowed here."
|
|
34
34
|
password_only: "Allow a password alone over LDAP"
|
|
35
|
-
updated: "Password binds
|
|
35
|
+
updated: "Password binds changed."
|
|
@@ -8,4 +8,4 @@ en:
|
|
|
8
8
|
lede: "The services that deliver this tenant's email and SMS. Each kind sends through its primary service."
|
|
9
9
|
templates:
|
|
10
10
|
title: "Templates"
|
|
11
|
-
lede: "What each email masks sends says, previewed as
|
|
11
|
+
lede: "What each email masks sends says, previewed as it arrives."
|
|
@@ -2,7 +2,7 @@ en:
|
|
|
2
2
|
manage:
|
|
3
3
|
namespaces:
|
|
4
4
|
title: "Namespaces"
|
|
5
|
-
release_confirm: "Release %{name}? The next
|
|
5
|
+
release_confirm: "Release %{name}? The next client to ask for it gets it, and the scopes beneath it stop meaning what they mean now."
|
|
6
6
|
released: "%{name} is free to be claimed again."
|
|
7
7
|
columns:
|
|
8
8
|
name: "Name"
|