masks-server 0.8.0 → 0.10.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/concerns/masks/server/client_authentication.rb +4 -3
- data/app/controllers/concerns/masks/server/resource_token.rb +12 -3
- data/app/controllers/masks/server/addresses_controller.rb +6 -1
- data/app/controllers/masks/server/application_controller.rb +36 -6
- data/app/controllers/masks/server/authorize_controller.rb +24 -19
- data/app/controllers/masks/server/device_verifications_controller.rb +1 -1
- data/app/controllers/masks/server/logins_controller.rb +3 -1
- data/app/controllers/masks/server/notifications_controller.rb +11 -1
- data/app/controllers/masks/server/profiles_controller.rb +5 -0
- data/app/controllers/masks/server/registrations_controller.rb +9 -1
- data/app/controllers/masks/server/saml_controller.rb +1 -7
- data/app/controllers/masks/server/scim/metadata_controller.rb +1 -1
- data/app/controllers/masks/server/tokens_controller.rb +9 -1
- data/app/graphql/masks/server/manage/mutations/add_app.rb +1 -1
- data/app/graphql/masks/server/manage/mutations/create_actor.rb +1 -0
- data/app/graphql/masks/server/manage/mutations/update_actor.rb +1 -0
- data/app/graphql/masks/server/manage/mutations/update_client.rb +4 -0
- data/app/graphql/masks/server/manage/types/client_type.rb +2 -0
- data/app/graphql/masks/server/manage/types/query_type.rb +7 -0
- data/app/helpers/masks/server/account_helper.rb +1 -1
- data/app/jobs/masks/server/cleanup_job.rb +1 -0
- data/app/ldap/masks/server/ldap/listener.rb +16 -3
- data/app/logins/masks/server/login_states/confirmation.rb +9 -3
- data/app/logins/masks/server/login_states/signup.rb +1 -0
- data/app/models/masks/server/actor.rb +28 -5
- data/app/models/masks/server/client.rb +61 -6
- data/app/models/masks/server/client_keys.rb +12 -1
- data/app/models/masks/server/declared.rb +2 -1
- data/app/models/masks/server/event.rb +1 -0
- data/app/models/masks/server/handshake.rb +12 -6
- data/app/models/masks/server/login.rb +3 -6
- data/app/models/masks/server/notifications.rb +8 -0
- data/app/models/masks/server/pending_handshake.rb +2 -1
- data/app/models/masks/server/pending_request.rb +8 -0
- data/app/models/masks/server/refresh_token.rb +8 -0
- data/app/models/masks/server/released_nickname.rb +26 -0
- data/app/models/masks/server/scim/filter.rb +45 -5
- data/app/models/masks/server/scim/user.rb +1 -0
- data/app/models/masks/server/session.rb +6 -5
- data/app/policies/masks/server/exchange_policy.rb +1 -1
- data/app/policies/masks/server/grant_checks.rb +1 -1
- data/app/views/masks/server/account/_info.html.erb +13 -5
- data/app/views/masks/server/account/_organizations.html.erb +4 -4
- data/app/views/masks/server/account/index.html.erb +1 -1
- data/app/views/masks/server/application/_actor.html.erb +27 -0
- data/app/views/masks/server/authorize/error.html.erb +2 -2
- data/app/views/masks/server/handshakes/refused.html.erb +1 -1
- data/app/views/masks/server/handshakes/show.html.erb +1 -1
- data/app/views/masks/server/logins/_choose_organization.html.erb +1 -1
- data/app/views/masks/server/logins/_consent.html.erb +1 -1
- data/app/views/masks/server/sessions/confirm.html.erb +1 -1
- data/config/locales/de/account.yml +6 -2
- data/config/locales/de/actors.yml +2 -0
- data/config/locales/de/application.yml +1 -1
- data/config/locales/de/authorize.yml +2 -0
- data/config/locales/de/events.yml +7 -5
- data/config/locales/de/flashes.yml +1 -0
- data/config/locales/de/logins.yml +1 -0
- data/config/locales/de/manage/client.yml +3 -0
- data/config/locales/de/manage/groups.yml +1 -1
- data/config/locales/de/manage/ldap.yml +1 -0
- data/config/locales/de/manage/organization.yml +1 -1
- data/config/locales/de/notifications.yml +1 -0
- data/config/locales/en/account.yml +6 -2
- data/config/locales/en/actors.yml +2 -0
- data/config/locales/en/application.yml +1 -1
- data/config/locales/en/authorize.yml +2 -0
- data/config/locales/en/events.yml +7 -5
- data/config/locales/en/flashes.yml +1 -0
- data/config/locales/en/logins.yml +1 -0
- data/config/locales/en/manage/client.yml +3 -0
- data/config/locales/en/manage/groups.yml +1 -1
- data/config/locales/en/manage/ldap.yml +1 -0
- data/config/locales/en/manage/organization.yml +1 -1
- data/config/locales/en/notifications.yml +1 -0
- data/config/locales/es/account.yml +6 -2
- data/config/locales/es/actors.yml +2 -0
- data/config/locales/es/application.yml +1 -1
- data/config/locales/es/authorize.yml +2 -0
- data/config/locales/es/events.yml +7 -5
- data/config/locales/es/flashes.yml +1 -0
- data/config/locales/es/logins.yml +1 -0
- data/config/locales/es/manage/client.yml +3 -0
- data/config/locales/es/manage/groups.yml +1 -1
- data/config/locales/es/manage/ldap.yml +1 -0
- data/config/locales/es/manage/organization.yml +1 -1
- data/config/locales/es/notifications.yml +1 -0
- data/config/locales/fr/account.yml +6 -2
- data/config/locales/fr/actors.yml +2 -0
- data/config/locales/fr/application.yml +1 -1
- data/config/locales/fr/authorize.yml +2 -0
- data/config/locales/fr/events.yml +7 -5
- data/config/locales/fr/flashes.yml +1 -0
- data/config/locales/fr/logins.yml +1 -0
- data/config/locales/fr/manage/client.yml +3 -0
- data/config/locales/fr/manage/groups.yml +1 -1
- data/config/locales/fr/manage/ldap.yml +1 -0
- data/config/locales/fr/manage/organization.yml +1 -1
- data/config/locales/fr/notifications.yml +1 -0
- data/config/routes.rb +1 -0
- data/db/migrate/20261013010000_add_handshake_return_to_to_clients.rb +5 -0
- data/db/migrate/20261018100000_create_released_nicknames.rb +22 -0
- data/db/migrate/20261018110000_add_refresh_token_absolute_lifetime_to_clients.rb +5 -0
- data/lib/generators/masks/server/install/install_generator.rb +2 -2
- data/lib/masks/server/browser_access.rb +35 -0
- data/lib/masks/server/configuration.rb +11 -3
- data/lib/masks/server/engine.rb +1 -0
- data/lib/masks/server/schema_reference.rb +17 -4
- data/lib/masks/server/tenancy/middleware.rb +9 -1
- data/lib/masks/server.rb +1 -0
- data/public/masks-assets/.vite/manifest.json +7 -7
- data/public/masks-assets/assets/app-D7W0gAyT.css +2 -0
- data/public/masks-assets/assets/{initial-D99AzFOd.js → initial-C1GpCiEh.js} +2 -2
- data/public/masks-assets/assets/{initial-D99AzFOd.js.map → initial-C1GpCiEh.js.map} +1 -1
- data/public/masks-assets/assets/login-C_6igRZ3.js +4 -0
- data/public/masks-assets/assets/login-C_6igRZ3.js.map +1 -0
- data/public/masks-assets/assets/manage-DR9qQiBU.js +569 -0
- data/public/masks-assets/assets/manage-DR9qQiBU.js.map +1 -0
- data/version.txt +1 -1
- metadata +14 -9
- data/app/views/masks/server/application/_person.html.erb +0 -27
- data/public/masks-assets/assets/app-DoQZrM_J.css +0 -2
- data/public/masks-assets/assets/login-CNs1UpxJ.js +0 -4
- data/public/masks-assets/assets/login-CNs1UpxJ.js.map +0 -1
- data/public/masks-assets/assets/manage-isLCrWiU.js +0 -567
- data/public/masks-assets/assets/manage-isLCrWiU.js.map +0 -1
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
|
|
73
73
|
<% if own.owner? %>
|
|
74
74
|
<p class="item-meta">
|
|
75
|
-
<%= account_text("organizations.
|
|
75
|
+
<%= account_text("organizations.member_count", count: joined) %>
|
|
76
76
|
· <%= account_text("organizations.owners", count: owners) %>
|
|
77
77
|
<% if waiting.positive? %>
|
|
78
78
|
· <%= account_text("organizations.waiting_count", count: waiting) %>
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
|
|
82
82
|
<div class="items">
|
|
83
83
|
<% members.each do |member| %>
|
|
84
|
-
<%
|
|
85
|
-
<% yourself =
|
|
84
|
+
<% actor = member.actor %>
|
|
85
|
+
<% yourself = actor.id == own.actor_id %>
|
|
86
86
|
<% label = Masks::Server::Members.label(member) || account_text("organizations.invited_by_manager") %>
|
|
87
87
|
<div class="item item-member">
|
|
88
88
|
<span class="item-name">
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
class: "control control-sm", id: "role-#{organization.key}-#{member.id}",
|
|
112
112
|
disabled: yourself && alone,
|
|
113
113
|
data: { autosubmit: true },
|
|
114
|
-
aria: { label: account_text("organizations.role_of",
|
|
114
|
+
aria: { label: account_text("organizations.role_of", name: label) } %>
|
|
115
115
|
<button type="submit" class="action action-quiet action-sm" data-autosubmitted <%= "disabled" if yourself && alone %>>
|
|
116
116
|
<%= account_text("organizations.set_role") %>
|
|
117
117
|
</button>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
<%= render "masks/server/account/apps", apps: @apps, connections: @connections, linkable: @linkable %>
|
|
33
33
|
|
|
34
|
-
<%= render "masks/server/account/info", actor: @actor, directed: @directed %>
|
|
34
|
+
<%= render "masks/server/account/info", actor: @actor, directed: @directed, fresh: @fresh %>
|
|
35
35
|
|
|
36
36
|
<%= render "masks/server/account/activity", events: @events %>
|
|
37
37
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<% sign_out = local_assigns.fetch(:sign_out, false) %>
|
|
2
|
+
<% details = actor.display_details %>
|
|
3
|
+
|
|
4
|
+
<div class="actor">
|
|
5
|
+
<%= avatar_tag actor, size: 44, class: "actor-avatar" %>
|
|
6
|
+
|
|
7
|
+
<div class="actor-who">
|
|
8
|
+
<span class="actor-name"><%= actor.display_name %></span>
|
|
9
|
+
|
|
10
|
+
<% if details.any? || actor.email_unconfirmed? %>
|
|
11
|
+
<span class="actor-sub">
|
|
12
|
+
<%= details.join(" · ") %>
|
|
13
|
+
<% if actor.email_unconfirmed? %>
|
|
14
|
+
<span class="actor-note"><%= local_assigns[:unconfirmed] || t("application.actor.unconfirmed") %></span>
|
|
15
|
+
<% end %>
|
|
16
|
+
</span>
|
|
17
|
+
<% end %>
|
|
18
|
+
|
|
19
|
+
<% if actor.manages? %>
|
|
20
|
+
<span class="actor-role"><%= t("application.actor.manager") %></span>
|
|
21
|
+
<% end %>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<% if sign_out %>
|
|
25
|
+
<%= button_to t("application.actor.sign_out"), logout_path, class: "textlink", form_class: "signout" %>
|
|
26
|
+
<% end %>
|
|
27
|
+
</div>
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
<div id="authorize-error" class="flow" data-error="<%= @error_code %>">
|
|
5
5
|
<span class="state state-bad"><%= t(".stopped") %></span>
|
|
6
6
|
|
|
7
|
-
<h1 class="prompt-title"><%= t(".heading") %></h1>
|
|
7
|
+
<h1 class="prompt-title"><%= @refused ? t(".refused") : t(".heading") %></h1>
|
|
8
8
|
|
|
9
9
|
<p class="said"><%= @error_code %> — <%= @error_description %></p>
|
|
10
10
|
|
|
11
|
-
<p class="prompt-lede"><%= t(".contact") %></p>
|
|
11
|
+
<p class="prompt-lede"><%= @refused ? t(".nothing_shared") : t(".contact") %></p>
|
|
12
12
|
</div>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<h1 class="prompt-title"><%= t(".title") %></h1>
|
|
7
7
|
|
|
8
8
|
<% if current_actor %>
|
|
9
|
-
<%= render "masks/server/application/
|
|
9
|
+
<%= render "masks/server/application/actor", actor: current_actor, sign_out: true %>
|
|
10
10
|
<% end %>
|
|
11
11
|
|
|
12
12
|
<p class="said"><%= @description %></p>
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
|
|
44
44
|
<div class="handshake-as">
|
|
45
45
|
<span class="handshake-caption"><%= t(".signed_in_as") %></span>
|
|
46
|
-
<%= render "masks/server/application/
|
|
46
|
+
<%= render "masks/server/application/actor", actor: current_actor, sign_out: true, unconfirmed: t(".unconfirmed") %>
|
|
47
47
|
</div>
|
|
48
48
|
|
|
49
49
|
<div class="slab handshake-plain">
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
title: client ? t(".title_to", client: client) : t(".title"),
|
|
5
5
|
lede: t(".lede") %>
|
|
6
6
|
|
|
7
|
-
<%= render "masks/server/application/
|
|
7
|
+
<%= render "masks/server/application/actor", actor: login.actor, sign_out: true if login.actor %>
|
|
8
8
|
|
|
9
9
|
<div class="providers">
|
|
10
10
|
<% (login.as_json["organizations"] || []).each do |organization| %>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
<%= render "masks/server/logins/head", title: t(".title", client: login.client&.name) %>
|
|
16
16
|
|
|
17
|
-
<%= render "masks/server/application/
|
|
17
|
+
<%= render "masks/server/application/actor", actor: login.actor, sign_out: true if login.actor %>
|
|
18
18
|
|
|
19
19
|
<div class="slab">
|
|
20
20
|
<div class="ledger-row">
|
|
@@ -155,7 +155,7 @@ de:
|
|
|
155
155
|
lede_owner: "Als Eigentümer entscheiden Sie, wer dazugehört und welche Rolle jede Person hat. Apps, die Ihre Organisation anfordern, sehen die Rolle."
|
|
156
156
|
lede_member: "Apps, die Ihre Organisation anfordern, sehen, dass Sie dazugehören, und Ihre Rolle."
|
|
157
157
|
members: "Mitglieder"
|
|
158
|
-
|
|
158
|
+
member_count:
|
|
159
159
|
one: "1 Mitglied"
|
|
160
160
|
other: "%{count} Mitglieder"
|
|
161
161
|
owners:
|
|
@@ -182,7 +182,7 @@ de:
|
|
|
182
182
|
decline: "Ablehnen"
|
|
183
183
|
confirm_decline: "Die Einladung zu %{organization} ablehnen? Ein Eigentümer muss Sie erneut einladen."
|
|
184
184
|
set_role: "Rolle festlegen"
|
|
185
|
-
role_of: "Rolle von %{
|
|
185
|
+
role_of: "Rolle von %{name}"
|
|
186
186
|
remove: "Entfernen"
|
|
187
187
|
withdraw: "Zurückziehen"
|
|
188
188
|
resend: "Erneut senden"
|
|
@@ -251,6 +251,10 @@ de:
|
|
|
251
251
|
lede: "Alles hier ist aktiv, bis Sie es deaktivieren. Diese Nachrichten kommen, sobald etwas passiert, und auf keine kann geantwortet werden."
|
|
252
252
|
silent: "Es wird nichts gesendet, weil diese Nachrichten nur an eine bestätigte E-Mail-Adresse gehen."
|
|
253
253
|
submit: "Speichern"
|
|
254
|
+
kept: "Ein geändertes oder zurückgesetztes Passwort und eine riskante Anmeldung werden immer gemeldet."
|
|
255
|
+
always: "Immer"
|
|
256
|
+
again: "Ihre letzte Anmeldung ist eine Weile her, daher werden Sie zuerst gebeten, sich erneut anzumelden."
|
|
257
|
+
submit_again: "Erneut anmelden"
|
|
254
258
|
|
|
255
259
|
export:
|
|
256
260
|
heading: "Ihr Konto herunterladen"
|
|
@@ -5,3 +5,5 @@ de:
|
|
|
5
5
|
stopped: "Angehalten"
|
|
6
6
|
heading: "Die App hat etwas angefordert, das dieser Server nicht tut."
|
|
7
7
|
contact: "Es wurde nichts geteilt. Die App muss das beheben."
|
|
8
|
+
refused: "Diese Anmeldung wurde abgelehnt."
|
|
9
|
+
nothing_shared: "Mit der App wurde nichts geteilt. Sie können diese Seite schließen."
|
|
@@ -6,6 +6,8 @@ de:
|
|
|
6
6
|
ended: "Abgemeldet"
|
|
7
7
|
revoked: "Sitzung widerrufen"
|
|
8
8
|
expired: "Sitzung abgelaufen"
|
|
9
|
+
notifications:
|
|
10
|
+
changed: "Benachrichtigungen geändert"
|
|
9
11
|
logout:
|
|
10
12
|
undelivered: "Abmeldung nicht an eine App zugestellt"
|
|
11
13
|
login:
|
|
@@ -94,14 +96,14 @@ de:
|
|
|
94
96
|
refused: "Token-Tausch abgelehnt"
|
|
95
97
|
actor:
|
|
96
98
|
approved: "Konto genehmigt"
|
|
97
|
-
created: "
|
|
98
|
-
provisioned: "
|
|
99
|
+
created: "Konto hinzugefügt"
|
|
100
|
+
provisioned: "Konto von einem Anbieter hinzugefügt"
|
|
99
101
|
updated: "Profil geändert"
|
|
100
|
-
deleted: "
|
|
102
|
+
deleted: "Konto gelöscht"
|
|
101
103
|
scopes_changed: "Scopes geändert"
|
|
102
104
|
signed_out: "Überall abgemeldet"
|
|
103
|
-
suspended: "
|
|
104
|
-
restored: "
|
|
105
|
+
suspended: "Konto gesperrt"
|
|
106
|
+
restored: "Konto wiederhergestellt"
|
|
105
107
|
idle_warned: "Inaktives Konto gewarnt"
|
|
106
108
|
client:
|
|
107
109
|
created: "App hinzugefügt"
|
|
@@ -129,6 +129,7 @@ de:
|
|
|
129
129
|
directed: "Das Verzeichnis Ihrer Organisation verwaltet Ihren Namen."
|
|
130
130
|
invalid: "%{errors}"
|
|
131
131
|
updated: "Ihre Angaben wurden gespeichert."
|
|
132
|
+
again: "Melden Sie sich erneut an, um Ihren Spitznamen zu ändern. Ihre letzte Anmeldung ist eine Weile her."
|
|
132
133
|
|
|
133
134
|
verifications:
|
|
134
135
|
too_many_requests: "Zu viele Anfragen. Warten Sie einige Minuten."
|
|
@@ -238,6 +238,7 @@ de:
|
|
|
238
238
|
too-many-attempts: "Zu viele Versuche. Warten Sie einige Minuten."
|
|
239
239
|
too-many-attempts-for-account: "Zu viele Versuche für dieses Konto."
|
|
240
240
|
too-many-codes: "An diese Adresse wurden zu viele Codes gesendet. Warten Sie einige Minuten."
|
|
241
|
+
too-many-texts: "An diese Nummer wurden zu viele Codes gesendet. Warten Sie einige Minuten."
|
|
241
242
|
prove-email-first: "Geben Sie zuerst den an diese Adresse gesendeten Code ein."
|
|
242
243
|
no-account-for-email: "Kein Konto hier verwendet diese Adresse."
|
|
243
244
|
invalid-setup-token: "Dieses Einrichtungstoken ist falsch."
|
|
@@ -115,6 +115,8 @@ de:
|
|
|
115
115
|
sector_placeholder: "nötig, wenn seine Redirect-URIs mehrere Hosts umfassen"
|
|
116
116
|
unattended: "Meldet sich als er selbst an (client_credentials)"
|
|
117
117
|
rotate: "Secret rotieren"
|
|
118
|
+
secret_expires: "Das Secret läuft am %{day} ab."
|
|
119
|
+
secret_expired: "Das Secret ist am %{day} abgelaufen. Rotieren Sie es, sonst kann sich nichts mehr damit anmelden."
|
|
118
120
|
archive: "Archivieren"
|
|
119
121
|
saml:
|
|
120
122
|
title: "SAML"
|
|
@@ -146,6 +148,7 @@ de:
|
|
|
146
148
|
consent: "Akteure um Zustimmung bitten"
|
|
147
149
|
access: "Access-Tokens gelten (Minuten, leer für eine Stunde)"
|
|
148
150
|
refresh: "Refresh-Tokens gelten ungenutzt (Tage, leer für 30)"
|
|
151
|
+
refresh_absolute: "Refresh-Tokens enden nach der Anmeldung (Tage, leer für 90)"
|
|
149
152
|
consent_lifetime: "Zustimmung gilt (Tage, leer bis zum Widerruf)"
|
|
150
153
|
logout: "Back-Channel-Logout-URI"
|
|
151
154
|
logout_session: "Sein Logout-Token benennt die Sitzung (sid)"
|
|
@@ -6,7 +6,7 @@ de:
|
|
|
6
6
|
added: "%{name} ist bereit. Fügen Sie Akteure auf deren eigenen Seiten hinzu."
|
|
7
7
|
delete_confirm: "%{name} löschen? Clients, die darauf beschränkt sind, lehnen ihre Akteure ab."
|
|
8
8
|
deleted: "%{name} ist gelöscht."
|
|
9
|
-
|
|
9
|
+
actors:
|
|
10
10
|
one: "%{count} Akteur"
|
|
11
11
|
other: "%{count} Akteure"
|
|
12
12
|
delete: "%{name} löschen"
|
|
@@ -17,6 +17,7 @@ de:
|
|
|
17
17
|
address: "Adresse"
|
|
18
18
|
port: "Port %{port}"
|
|
19
19
|
ldaps: "Port %{port}, LDAPS"
|
|
20
|
+
local_only: "Ohne Zertifikat antwortet das Verzeichnis nur auf dem eigenen Rechner dieses Servers, damit kein Passwort unverschlüsselt über das Netz geht. Setzen Sie MASKS_LDAP_CERT und MASKS_LDAP_KEY, um LDAPS auf jeder Adresse anzubieten, oder MASKS_LDAP_PLAINTEXT=true in einem privaten Netz, dem Sie vertrauen."
|
|
20
21
|
label: "Bezeichnung"
|
|
21
22
|
issue: "Zugang ausstellen"
|
|
22
23
|
shown_once: "Dieses Geheimnis wird nur einmal angezeigt. Kopieren Sie es jetzt."
|
|
@@ -66,7 +66,7 @@ de:
|
|
|
66
66
|
invite: "Einladen"
|
|
67
67
|
cancel: "Abbrechen"
|
|
68
68
|
hint: "Die Eingeladenen treten bei, sobald sie von der eingeladenen Adresse aus annehmen. Wer noch kein Akteur ist, erhält eine Einladung zur Registrierung."
|
|
69
|
-
|
|
69
|
+
actor: "Akteur"
|
|
70
70
|
empty:
|
|
71
71
|
invited: "Es gibt keine offenen Einladungen."
|
|
72
72
|
owners: "Diese Organisation hat keinen Eigentümer. Machen Sie ein Mitglied zum Eigentümer, damit jemand sie verwalten kann."
|
|
@@ -155,7 +155,7 @@ en:
|
|
|
155
155
|
lede_owner: "As an owner, you decide who belongs here and what role each person holds. Apps that ask for your organization see the role."
|
|
156
156
|
lede_member: "Apps that ask for your organization see that you belong here, and your role."
|
|
157
157
|
members: "Members"
|
|
158
|
-
|
|
158
|
+
member_count:
|
|
159
159
|
one: "1 member"
|
|
160
160
|
other: "%{count} members"
|
|
161
161
|
owners:
|
|
@@ -182,7 +182,7 @@ en:
|
|
|
182
182
|
decline: "Decline"
|
|
183
183
|
confirm_decline: "Decline the invitation to %{organization}? An owner has to invite you again."
|
|
184
184
|
set_role: "Set role"
|
|
185
|
-
role_of: "Role of %{
|
|
185
|
+
role_of: "Role of %{name}"
|
|
186
186
|
remove: "Remove"
|
|
187
187
|
withdraw: "Withdraw"
|
|
188
188
|
resend: "Send again"
|
|
@@ -251,6 +251,10 @@ en:
|
|
|
251
251
|
lede: "Everything here is on until you turn it off. These arrive as they happen, and none of them can be replied to."
|
|
252
252
|
silent: "Nothing is being sent, because these only go to a confirmed email address."
|
|
253
253
|
submit: "Save"
|
|
254
|
+
kept: "A changed or reset password and a risky sign-in are always announced."
|
|
255
|
+
always: "Always"
|
|
256
|
+
again: "You signed in a while ago, so you will be asked to sign in again first."
|
|
257
|
+
submit_again: "Sign in again"
|
|
254
258
|
|
|
255
259
|
export:
|
|
256
260
|
heading: "Download your account"
|
|
@@ -6,6 +6,8 @@ en:
|
|
|
6
6
|
ended: "Signed out"
|
|
7
7
|
revoked: "Session revoked"
|
|
8
8
|
expired: "Session timed out"
|
|
9
|
+
notifications:
|
|
10
|
+
changed: "Notifications changed"
|
|
9
11
|
logout:
|
|
10
12
|
undelivered: "Sign-out not delivered to an app"
|
|
11
13
|
login:
|
|
@@ -94,14 +96,14 @@ en:
|
|
|
94
96
|
refused: "Token exchange refused"
|
|
95
97
|
actor:
|
|
96
98
|
approved: "Account approved"
|
|
97
|
-
created: "
|
|
98
|
-
provisioned: "
|
|
99
|
+
created: "Account added"
|
|
100
|
+
provisioned: "Account added by a provider"
|
|
99
101
|
updated: "Profile changed"
|
|
100
|
-
deleted: "
|
|
102
|
+
deleted: "Account deleted"
|
|
101
103
|
scopes_changed: "Scopes changed"
|
|
102
104
|
signed_out: "Signed out everywhere"
|
|
103
|
-
suspended: "
|
|
104
|
-
restored: "
|
|
105
|
+
suspended: "Account suspended"
|
|
106
|
+
restored: "Account restored"
|
|
105
107
|
idle_warned: "Idle account warned"
|
|
106
108
|
client:
|
|
107
109
|
created: "Client added"
|
|
@@ -129,6 +129,7 @@ en:
|
|
|
129
129
|
directed: "Your organization's directory manages your name."
|
|
130
130
|
invalid: "%{errors}"
|
|
131
131
|
updated: "Your details have been saved."
|
|
132
|
+
again: "Sign in again to change your nickname. It has been a while since you did."
|
|
132
133
|
|
|
133
134
|
verifications:
|
|
134
135
|
too_many_requests: "Too many requests. Wait a few minutes."
|
|
@@ -238,6 +238,7 @@ en:
|
|
|
238
238
|
too-many-attempts: "Too many attempts. Wait a few minutes."
|
|
239
239
|
too-many-attempts-for-account: "Too many attempts for that account."
|
|
240
240
|
too-many-codes: "Too many codes have gone to that address. Wait a few minutes."
|
|
241
|
+
too-many-texts: "Too many codes have gone to that number. Wait a few minutes."
|
|
241
242
|
prove-email-first: "Enter the code sent to that address first."
|
|
242
243
|
no-account-for-email: "No account here uses that address."
|
|
243
244
|
invalid-setup-token: "That setup token is wrong."
|
|
@@ -115,6 +115,8 @@ en:
|
|
|
115
115
|
sector_placeholder: "needed when its redirect URIs span several hosts"
|
|
116
116
|
unattended: "Signs in as itself (client_credentials)"
|
|
117
117
|
rotate: "Rotate secret"
|
|
118
|
+
secret_expires: "The secret expires on %{day}."
|
|
119
|
+
secret_expired: "The secret expired on %{day}. Rotate it, or nothing can sign in with it."
|
|
118
120
|
archive: "Archive"
|
|
119
121
|
saml:
|
|
120
122
|
title: "SAML"
|
|
@@ -146,6 +148,7 @@ en:
|
|
|
146
148
|
consent: "Ask actors to consent"
|
|
147
149
|
access: "Access tokens last (minutes, blank for an hour)"
|
|
148
150
|
refresh: "Refresh tokens last unused (days, blank for 30)"
|
|
151
|
+
refresh_absolute: "Refresh tokens stop after a sign-in (days, blank for 90)"
|
|
149
152
|
consent_lifetime: "Consent lasts (days, blank until revoked)"
|
|
150
153
|
logout: "Back-channel logout URI"
|
|
151
154
|
logout_session: "Its logout token names the session (sid)"
|
|
@@ -6,7 +6,7 @@ en:
|
|
|
6
6
|
added: "%{name} is ready. Add actors from their own pages."
|
|
7
7
|
delete_confirm: "Delete %{name}? Clients limited to it refuse its actors."
|
|
8
8
|
deleted: "%{name} is deleted."
|
|
9
|
-
|
|
9
|
+
actors:
|
|
10
10
|
one: "%{count} actor"
|
|
11
11
|
other: "%{count} actors"
|
|
12
12
|
delete: "Delete %{name}"
|
|
@@ -17,6 +17,7 @@ en:
|
|
|
17
17
|
address: "Address"
|
|
18
18
|
port: "Port %{port}"
|
|
19
19
|
ldaps: "Port %{port}, LDAPS"
|
|
20
|
+
local_only: "Without a certificate, the directory answers only on this server's own machine, so no password crosses the network in the clear. Set MASKS_LDAP_CERT and MASKS_LDAP_KEY to serve LDAPS on every address, or MASKS_LDAP_PLAINTEXT=true on a private network you trust."
|
|
20
21
|
label: "Label"
|
|
21
22
|
issue: "Issue a credential"
|
|
22
23
|
shown_once: "This secret is shown once. Copy it now."
|
|
@@ -66,7 +66,7 @@ en:
|
|
|
66
66
|
invite: "Invite"
|
|
67
67
|
cancel: "Cancel"
|
|
68
68
|
hint: "They join once they accept, from the address you invite. Somebody who is not an actor yet gets an invitation to sign up."
|
|
69
|
-
|
|
69
|
+
actor: "Actor"
|
|
70
70
|
empty:
|
|
71
71
|
invited: "No invitations are open."
|
|
72
72
|
owners: "Nobody owns this organization. Make a member an owner so someone can manage it."
|
|
@@ -155,7 +155,7 @@ es:
|
|
|
155
155
|
lede_owner: "Como propietario, decides quién pertenece aquí y qué rol tiene cada persona. Las aplicaciones que piden tu organización ven el rol."
|
|
156
156
|
lede_member: "Las aplicaciones que piden tu organización ven que perteneces a ella y tu rol."
|
|
157
157
|
members: "Miembros"
|
|
158
|
-
|
|
158
|
+
member_count:
|
|
159
159
|
one: "1 miembro"
|
|
160
160
|
other: "%{count} miembros"
|
|
161
161
|
owners:
|
|
@@ -182,7 +182,7 @@ es:
|
|
|
182
182
|
decline: "Rechazar"
|
|
183
183
|
confirm_decline: "¿Rechazar la invitación a %{organization}? Un propietario tendrá que volver a invitarte."
|
|
184
184
|
set_role: "Establecer rol"
|
|
185
|
-
role_of: "Rol de %{
|
|
185
|
+
role_of: "Rol de %{name}"
|
|
186
186
|
remove: "Eliminar"
|
|
187
187
|
withdraw: "Retirar"
|
|
188
188
|
resend: "Volver a enviar"
|
|
@@ -251,6 +251,10 @@ es:
|
|
|
251
251
|
lede: "Todo lo de aquí está activado hasta que lo desactives. Llegan en el momento en que ocurre y no se puede responder a ninguno."
|
|
252
252
|
silent: "No se envía nada, porque solo van a una dirección de correo confirmada."
|
|
253
253
|
submit: "Guardar"
|
|
254
|
+
kept: "Una contraseña cambiada o restablecida y un inicio de sesión de riesgo se avisan siempre."
|
|
255
|
+
always: "Siempre"
|
|
256
|
+
again: "Hace tiempo que iniciaste sesión, así que primero se te pedirá que vuelvas a iniciarla."
|
|
257
|
+
submit_again: "Volver a iniciar sesión"
|
|
254
258
|
|
|
255
259
|
export:
|
|
256
260
|
heading: "Descargar tu cuenta"
|
|
@@ -5,3 +5,5 @@ es:
|
|
|
5
5
|
stopped: "Detenida"
|
|
6
6
|
heading: "La aplicación pidió algo que este servidor no hará."
|
|
7
7
|
contact: "No se compartió nada. La aplicación tiene que corregirlo."
|
|
8
|
+
refused: "Este inicio de sesión fue rechazado."
|
|
9
|
+
nothing_shared: "No se compartió nada con la aplicación. Puede cerrar esta página."
|
|
@@ -6,6 +6,8 @@ es:
|
|
|
6
6
|
ended: "Cerró sesión"
|
|
7
7
|
revoked: "Sesión revocada"
|
|
8
8
|
expired: "Sesión caducada"
|
|
9
|
+
notifications:
|
|
10
|
+
changed: "Notificaciones cambiadas"
|
|
9
11
|
logout:
|
|
10
12
|
undelivered: "Cierre de sesión no entregado a una aplicación"
|
|
11
13
|
login:
|
|
@@ -94,14 +96,14 @@ es:
|
|
|
94
96
|
refused: "Intercambio de token rechazado"
|
|
95
97
|
actor:
|
|
96
98
|
approved: "Cuenta aprobada"
|
|
97
|
-
created: "
|
|
98
|
-
provisioned: "
|
|
99
|
+
created: "Cuenta añadida"
|
|
100
|
+
provisioned: "Cuenta añadida por un proveedor"
|
|
99
101
|
updated: "Perfil cambiado"
|
|
100
|
-
deleted: "
|
|
102
|
+
deleted: "Cuenta eliminada"
|
|
101
103
|
scopes_changed: "Alcances cambiados"
|
|
102
104
|
signed_out: "Sesión cerrada en todas partes"
|
|
103
|
-
suspended: "
|
|
104
|
-
restored: "
|
|
105
|
+
suspended: "Cuenta suspendida"
|
|
106
|
+
restored: "Cuenta restaurada"
|
|
105
107
|
idle_warned: "Aviso de cuenta inactiva"
|
|
106
108
|
client:
|
|
107
109
|
created: "Aplicación añadida"
|
|
@@ -129,6 +129,7 @@ es:
|
|
|
129
129
|
directed: "El directorio de tu organización gestiona tu nombre."
|
|
130
130
|
invalid: "%{errors}"
|
|
131
131
|
updated: "Se guardaron tus datos."
|
|
132
|
+
again: "Vuelve a iniciar sesión para cambiar tu apodo. Hace tiempo que no lo haces."
|
|
132
133
|
|
|
133
134
|
verifications:
|
|
134
135
|
too_many_requests: "Demasiadas solicitudes. Espera unos minutos."
|
|
@@ -238,6 +238,7 @@ es:
|
|
|
238
238
|
too-many-attempts: "Demasiados intentos. Espera unos minutos."
|
|
239
239
|
too-many-attempts-for-account: "Demasiados intentos para esa cuenta."
|
|
240
240
|
too-many-codes: "Se enviaron demasiados códigos a esa dirección. Espera unos minutos."
|
|
241
|
+
too-many-texts: "Se enviaron demasiados códigos a ese número. Espera unos minutos."
|
|
241
242
|
prove-email-first: "Primero escribe el código enviado a esa dirección."
|
|
242
243
|
no-account-for-email: "Ninguna cuenta de aquí usa esa dirección."
|
|
243
244
|
invalid-setup-token: "Ese token de configuración no es correcto."
|
|
@@ -115,6 +115,8 @@ es:
|
|
|
115
115
|
sector_placeholder: "necesario cuando sus URI de redirección abarcan varios hosts"
|
|
116
116
|
unattended: "Inicia sesión por sí mismo (client_credentials)"
|
|
117
117
|
rotate: "Rotar secreto"
|
|
118
|
+
secret_expires: "El secreto caduca el %{day}."
|
|
119
|
+
secret_expired: "El secreto caducó el %{day}. Rótalo, o nada podrá iniciar sesión con él."
|
|
118
120
|
archive: "Archivar"
|
|
119
121
|
saml:
|
|
120
122
|
title: "SAML"
|
|
@@ -146,6 +148,7 @@ es:
|
|
|
146
148
|
consent: "Pedir el consentimiento de los actores"
|
|
147
149
|
access: "Los tokens de acceso duran (minutos, vacío para una hora)"
|
|
148
150
|
refresh: "Los tokens de actualización duran sin usarse (días, vacío para 30)"
|
|
151
|
+
refresh_absolute: "Los tokens de actualización terminan tras el inicio de sesión (días, vacío para 90)"
|
|
149
152
|
consent_lifetime: "El consentimiento dura (días, vacío hasta que se revoque)"
|
|
150
153
|
logout: "URI de cierre de sesión por back-channel"
|
|
151
154
|
logout_session: "Su token de cierre de sesión nombra la sesión (sid)"
|
|
@@ -6,7 +6,7 @@ es:
|
|
|
6
6
|
added: "%{name} está listo. Añade actores desde sus propias páginas."
|
|
7
7
|
delete_confirm: "¿Eliminar %{name}? Los clientes limitados a él rechazan a sus actores."
|
|
8
8
|
deleted: "%{name} se eliminó."
|
|
9
|
-
|
|
9
|
+
actors:
|
|
10
10
|
one: "%{count} actor"
|
|
11
11
|
other: "%{count} actores"
|
|
12
12
|
delete: "Eliminar %{name}"
|
|
@@ -17,6 +17,7 @@ es:
|
|
|
17
17
|
address: "Dirección"
|
|
18
18
|
port: "Puerto %{port}"
|
|
19
19
|
ldaps: "Puerto %{port}, LDAPS"
|
|
20
|
+
local_only: "Sin certificado, el directorio responde solo en la propia máquina de este servidor, para que ninguna contraseña cruce la red sin cifrar. Defina MASKS_LDAP_CERT y MASKS_LDAP_KEY para servir LDAPS en todas las direcciones, o MASKS_LDAP_PLAINTEXT=true en una red privada de confianza."
|
|
20
21
|
label: "Etiqueta"
|
|
21
22
|
issue: "Emitir una credencial"
|
|
22
23
|
shown_once: "Este secreto se muestra una sola vez. Cópialo ahora."
|
|
@@ -66,7 +66,7 @@ es:
|
|
|
66
66
|
invite: "Invitar"
|
|
67
67
|
cancel: "Cancelar"
|
|
68
68
|
hint: "Se une cuando acepta, desde la dirección a la que invitas. Quien aún no es un actor recibe una invitación para registrarse."
|
|
69
|
-
|
|
69
|
+
actor: "Actor"
|
|
70
70
|
empty:
|
|
71
71
|
invited: "No hay invitaciones abiertas."
|
|
72
72
|
owners: "Nadie es propietario de esta organización. Haz propietario a un miembro para que alguien pueda gestionarla."
|