decidim-verifications 0.23.5 → 0.24.2

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/app/commands/decidim/verifications/authorize_user.rb +30 -1
  4. data/app/commands/decidim/verifications/csv_census/admin/create_census_data.rb +2 -0
  5. data/app/commands/decidim/verifications/id_documents/admin/confirm_user_offline_authorization.rb +2 -2
  6. data/app/controllers/decidim/verifications/id_documents/admin/pending_authorizations_controller.rb +1 -1
  7. data/app/events/decidim/verifications/managed_user_error_event.rb +39 -0
  8. data/app/forms/decidim/verifications/sms/mobile_phone_form.rb +1 -1
  9. data/app/models/decidim/verifications/conflict.rb +8 -0
  10. data/app/models/decidim/verifications/csv_census/data.rb +1 -0
  11. data/app/queries/decidim/verifications/authorizations.rb +3 -2
  12. data/app/queries/decidim/verifications/authorizations_before_date.rb +5 -7
  13. data/app/services/decidim/authorization_handler.rb +1 -1
  14. data/app/views/decidim/verifications/authorizations/index.html.erb +3 -3
  15. data/app/views/dummy_authorization/_form.html.erb +2 -2
  16. data/config/locales/ar.yml +0 -9
  17. data/config/locales/ca.yml +13 -5
  18. data/config/locales/cs.yml +16 -6
  19. data/config/locales/de.yml +14 -6
  20. data/config/locales/el.yml +0 -9
  21. data/config/locales/en.yml +14 -6
  22. data/config/locales/es-MX.yml +14 -6
  23. data/config/locales/es-PY.yml +14 -6
  24. data/config/locales/es.yml +14 -6
  25. data/config/locales/eu.yml +0 -9
  26. data/config/locales/fi-plain.yml +13 -5
  27. data/config/locales/fi.yml +13 -5
  28. data/config/locales/fr-CA.yml +13 -5
  29. data/config/locales/fr.yml +13 -5
  30. data/config/locales/gl.yml +14 -6
  31. data/config/locales/hu.yml +0 -8
  32. data/config/locales/id-ID.yml +0 -9
  33. data/config/locales/is-IS.yml +0 -3
  34. data/config/locales/it.yml +0 -9
  35. data/config/locales/ja.yml +0 -9
  36. data/config/locales/lv.yml +0 -9
  37. data/config/locales/nl.yml +10 -6
  38. data/config/locales/no.yml +0 -9
  39. data/config/locales/pl.yml +16 -6
  40. data/config/locales/pt-BR.yml +0 -9
  41. data/config/locales/pt.yml +0 -9
  42. data/config/locales/ro-RO.yml +15 -6
  43. data/config/locales/ru.yml +0 -3
  44. data/config/locales/sk.yml +0 -9
  45. data/config/locales/sv.yml +1 -9
  46. data/config/locales/tr-TR.yml +5 -9
  47. data/config/locales/uk.yml +0 -3
  48. data/config/locales/zh-CN.yml +0 -9
  49. data/db/migrate/20201028161118_create_decidim_verifications_conflicts.rb +15 -0
  50. data/lib/decidim/verifications/default_action_authorizer.rb +5 -5
  51. data/lib/decidim/verifications/test/factories.rb +7 -0
  52. data/lib/decidim/verifications/version.rb +1 -1
  53. metadata +13 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6cffe4adbe47b13c436048e1fe438d2200d561afed2ea0a878a76e14b247f1fd
4
- data.tar.gz: 542803866cc2913af9e57dbee026117022e39b8f398bab818b2a7db4e9d380d2
3
+ metadata.gz: ab76e0a935f13290defda59b2a777e2e31791e84611e0f9e905bce4fcf923d53
4
+ data.tar.gz: 223c1e69a067b60a4332c6a7485c4830facd27bf9df5743d4d7c30ac626e5a30
5
5
  SHA512:
6
- metadata.gz: 96d1e9454737809d9f8962f371e1704214a77469ae486cd44deab77f4e81c97fc177c98362558232d38a60f77647d70594e95028c404c25a7044d14bc71d8ef8
7
- data.tar.gz: 5d0adb5297f2ca74a44959e2f53b7647502871dd82346b16840dbe9d6dfcbe3cafe6c84e5918aee69b5fe04e52f553ca878a4aea716a10866daef90a81956f3e
6
+ metadata.gz: 965663a85071c4898b874a77008d6590beb6d4cbf1289a83cf055cf17550cfd48a6d6ba17eecd44b22515e2826cd50beaad3694e2975d3b29cec34c432e1bf65
7
+ data.tar.gz: 6c79a24675e2770396353f18b4237b51a04abce3ccaf59b4e2f97d78133594084ad75679f54627e3b83c29d0b445a5aff0029cdc6f03a9292ad7cca4b6dc38b2
data/README.md CHANGED
@@ -166,7 +166,7 @@ on the context where the authorization is being performed.
166
166
 
167
167
  For example, you can require authorization for supporting proposals in a participatory
168
168
  process, and also restrict it to users with postal codes 12345 and 12346. The
169
- [example authorization handler](https://github.com/decidim/decidim/blob/master/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
169
+ [example authorization handler](https://github.com/decidim/decidim/blob/develop/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
170
170
  included in this module allows to do that. As an admin user, you should visit
171
171
  the proposals componenent permissions screen, choose the `Example authorization`
172
172
  as the authorization handler name for the `vote` action and enter "12345, 12346"
@@ -204,8 +204,8 @@ Decidim::Verifications.register_workflow(:my_verification) do |workflow|
204
204
  end
205
205
  ```
206
206
 
207
- Check the [example authorization handler](https://github.com/decidim/decidim/blob/master/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
208
- and the [DefaultActionAuthorizer class](https://github.com/decidim/decidim/blob/master/decidim-verifications/lib/decidim/verifications/default_action_authorizer.rb)
207
+ Check the [example authorization handler](https://github.com/decidim/decidim/blob/develop/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
208
+ and the [DefaultActionAuthorizer class](https://github.com/decidim/decidim/blob/develop/decidim-verifications/lib/decidim/verifications/default_action_authorizer.rb)
209
209
  for additional technical details.
210
210
 
211
211
  ## How Handlers work
@@ -241,8 +241,8 @@ See [Decidim](https://github.com/decidim/decidim).
241
241
 
242
242
  See [Decidim](https://github.com/decidim/decidim).
243
243
 
244
- [authorization handler base class]: https://github.com/decidim/decidim/blob/master/decidim-verifications/app/services/decidim/authorization_handler.rb
245
- [example SMS gateway]: https://github.com/decidim/decidim/blob/master/decidim-verifications/lib/decidim/verifications/sms/example_gateway.rb
244
+ [authorization handler base class]: https://github.com/decidim/decidim/blob/develop/decidim-verifications/app/services/decidim/authorization_handler.rb
245
+ [example SMS gateway]: https://github.com/decidim/decidim/blob/develop/decidim-verifications/lib/decidim/verifications/sms/example_gateway.rb
246
246
 
247
247
  [Decidim Barcelona]: https://github.com/AjuntamentdeBarcelona/decidim-barcelona/blob/master/app/services/census_authorization_handler.rb
248
248
  [Decidim Terrassa]: https://github.com/AjuntamentDeTerrassa/decidim-terrassa/blob/master/app/services/census_authorization_handler.rb
@@ -18,7 +18,12 @@ module Decidim
18
18
  #
19
19
  # Returns nothing.
20
20
  def call
21
- return broadcast(:invalid) unless handler.valid?
21
+ if handler.invalid?
22
+ conflict = create_verification_conflict
23
+ notify_admins(conflict) if conflict.present?
24
+
25
+ return broadcast(:invalid)
26
+ end
22
27
 
23
28
  Authorization.create_or_update_from(handler)
24
29
 
@@ -28,6 +33,30 @@ module Decidim
28
33
  private
29
34
 
30
35
  attr_reader :handler
36
+
37
+ def notify_admins(conflict)
38
+ Decidim::EventsManager.publish(
39
+ event: "decidim.events.verifications.managed_user_error_event",
40
+ event_class: Decidim::Verifications::ManagedUserErrorEvent,
41
+ resource: conflict,
42
+ affected_users: Decidim::User.where(admin: true)
43
+ )
44
+ end
45
+
46
+ def create_verification_conflict
47
+ authorization = Decidim::Authorization.find_by(unique_id: handler.unique_id)
48
+ return if authorization.blank?
49
+
50
+ conflict = Decidim::Verifications::Conflict.find_or_initialize_by(
51
+ current_user: handler.user,
52
+ managed_user: authorization.user,
53
+ unique_id: handler.unique_id
54
+ )
55
+
56
+ conflict.update(times: conflict.times + 1)
57
+
58
+ conflict
59
+ end
31
60
  end
32
61
  end
33
62
  end
@@ -20,7 +20,9 @@ module Decidim
20
20
  def call
21
21
  return broadcast(:invalid) unless @form.file
22
22
 
23
+ # rubocop:disable Rails/SkipsModelValidations
23
24
  CsvDatum.insert_all(@organization, @form.data.values)
25
+ # rubocop:enable Rails/SkipsModelValidations
24
26
  RemoveDuplicatesJob.perform_later(@organization)
25
27
 
26
28
  broadcast(:ok)
@@ -58,8 +58,8 @@ module Decidim
58
58
  .new(organization: form.current_organization, name: "id_documents", granted: false)
59
59
  .query
60
60
  .where("verification_metadata->'rejected' IS NULL")
61
- .where("verification_metadata->>'verification_type' = 'offline'")
62
- .find_by(user: authorization_user)
61
+ .where(user: authorization_user)
62
+ .find { |auth| auth.verification_metadata["verification_type"] == "offline" }
63
63
  end
64
64
 
65
65
  def authorization_user
@@ -22,7 +22,7 @@ module Decidim
22
22
  .new(organization: current_organization, name: "id_documents", granted: false)
23
23
  .query
24
24
  .where("verification_metadata->'rejected' IS NULL")
25
- .where("verification_metadata->>'verification_type' = 'online'")
25
+ .select { |auth| auth.verification_metadata["verification_type"] == "online" }
26
26
  end
27
27
 
28
28
  def has_offline_method?
@@ -0,0 +1,39 @@
1
+ # frozen-string_literal: true
2
+
3
+ module Decidim
4
+ module Verifications
5
+ class ManagedUserErrorEvent < Decidim::Events::SimpleEvent
6
+ delegate :profile_path, :profile_url, :name, to: :updated_user
7
+
8
+ def i18n_scope
9
+ "decidim.events.verifications.verify_with_managed_user"
10
+ end
11
+
12
+ def resource_path
13
+ profile_path
14
+ end
15
+
16
+ def resource_url
17
+ profile_url
18
+ end
19
+
20
+ def resource_title
21
+ updated_user.name
22
+ end
23
+
24
+ def default_i18n_options
25
+ super.merge({ managed_user_path: managed_user.profile_path, managed_user_name: managed_user.name })
26
+ end
27
+
28
+ private
29
+
30
+ def updated_user
31
+ @updated_user ||= Decidim::UserPresenter.new(resource.current_user)
32
+ end
33
+
34
+ def managed_user
35
+ @managed_user ||= Decidim::UserPresenter.new(resource.managed_user)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -26,7 +26,7 @@ module Decidim
26
26
  def mobile_phone_number
27
27
  return unless super
28
28
 
29
- super.gsub(/[^\+0-9]/, "")
29
+ super.gsub(/[^+0-9]/, "")
30
30
  end
31
31
 
32
32
  # The verification metadata to validate in the next step.
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim::Verifications
4
+ class Conflict < ApplicationRecord
5
+ belongs_to :current_user, class_name: "User"
6
+ belongs_to :managed_user, class_name: "User"
7
+ end
8
+ end
@@ -15,6 +15,7 @@ module Decidim
15
15
  # Returns nothing
16
16
  class Data
17
17
  attr_reader :errors, :values
18
+
18
19
  def initialize(file)
19
20
  @file = file
20
21
  @values = []
@@ -26,9 +26,10 @@ module Decidim
26
26
  scope = scope.where(name: name) unless name.nil?
27
27
  scope = scope.where(user: user) unless user.nil?
28
28
 
29
- if granted == true
29
+ case granted
30
+ when true
30
31
  scope = scope.where.not(granted_at: nil)
31
- elsif granted == false
32
+ when false
32
33
  scope = scope.where(granted_at: nil)
33
34
  end
34
35
 
@@ -34,13 +34,11 @@ module Decidim
34
34
 
35
35
  query = query.where("#{Decidim::Authorization.table_name}.created_at < ?", date) unless date.nil?
36
36
 
37
- query = if granted
38
- query.where.not(granted_at: nil)
39
- else
40
- query.where(granted_at: nil)
41
- end
42
-
43
- query
37
+ if granted
38
+ query.where.not(granted_at: nil)
39
+ else
40
+ query.where(granted_at: nil)
41
+ end
44
42
  end
45
43
 
46
44
  private
@@ -48,7 +48,7 @@ module Decidim
48
48
  #
49
49
  # Returns a String.
50
50
  def to_partial_path
51
- handler_name.sub!(/_handler$/, "") + "/form"
51
+ "#{handler_name.sub!(/_handler$/, "")}/form"
52
52
  end
53
53
 
54
54
  # Any data that the developer would like to inject to the `metadata` field
@@ -8,7 +8,7 @@
8
8
  <div class="card card--list">
9
9
  <% @granted_authorizations.each do |authorization| %>
10
10
  <% if authorization.expired? %>
11
- <%= link_to authorization_method(authorization).root_path(url_params), title: t(".expired_verification"), class: "card--list__item" do %>
11
+ <%= link_to authorization_method(authorization).root_path(**url_params), title: t(".expired_verification"), class: "card--list__item" do %>
12
12
  <% render partial: "granted_authorization", locals: { authorization: authorization } %>
13
13
  <% end %>
14
14
  <% elsif authorization.renewable? %>
@@ -29,7 +29,7 @@
29
29
  <% if @pending_authorizations.any? %>
30
30
  <div class="card card--list">
31
31
  <% @pending_authorizations.each do |authorization| %>
32
- <%= link_to authorization_method(authorization).resume_authorization_path(url_params) do %>
32
+ <%= link_to authorization_method(authorization).resume_authorization_path(**url_params) do %>
33
33
  <div class="card--list__item">
34
34
  <div class="card--list__text">
35
35
  <%= icon "reload", class: "card--list__icon", aria_label: t(".pending_verification"), role: "img" %>
@@ -56,7 +56,7 @@
56
56
  <% if unauthorized_methods.any? %>
57
57
  <div class="card card--list">
58
58
  <% unauthorized_methods.each do |unauthorized_method| %>
59
- <%= link_to unauthorized_method.root_path(url_params) do %>
59
+ <%= link_to unauthorized_method.root_path(**url_params) do %>
60
60
  <div class="card--list__item">
61
61
  <div class="card--list__text">
62
62
  <%= icon "lock-unlocked", class: "card--list__icon", aria_label: t(".unauthorized_verification"), role: "img" %>
@@ -1,10 +1,10 @@
1
1
  <% if request["postal_codes"].present?
2
2
  postal_codes = request["postal_codes"].split(",") %>
3
- <p><%= t("extra_explanation.postal_codes", scope: "decidim.verifications.dummy_authorization", postal_codes: postal_codes.join(", "), count: postal_codes.count) %></p>
3
+ <p><%= t("extra_explanation.postal_codes", scope: "decidim.verifications.dummy_authorization", postal_codes: postal_codes.join(", "), count: postal_codes.count, user_postal_code: request["user_postal_code"]) %></p>
4
4
  <% end %>
5
5
 
6
6
  <% if request["scope"] && (scope = Decidim::Scope.find(request["scope"]&.to_i)) %>
7
- <p><%= t("extra_explanation.scope", scope: "decidim.verifications.dummy_authorization", scope_name: translated_attribute(scope.name)) %></p>
7
+ <p><%= t("extra_explanation.scope", scope: "decidim.verifications.dummy_authorization", scope_name: translated_attribute(scope.name), user_scope_name: request["user_scope_name"]) %></p>
8
8
  <% end %>
9
9
 
10
10
  <div class="partial-demo">
@@ -24,14 +24,6 @@ ar:
24
24
  full_address: العنوان الكامل
25
25
  verification_code: شيفرة التأكيد
26
26
  decidim:
27
- admin:
28
- menu:
29
- authorization_workflows: التحقق
30
- admin_log:
31
- organization:
32
- update_id_documents_config: "%{user_name} بتحديث تكوين التحقق من وثائق الهوية"
33
- user:
34
- grant_id_documents_offline_verification: "%{user_name} التحقق من %{resource_name} باستخدام التحقق من مستندات الهوية دون اتصال"
35
27
  authorization_handlers:
36
28
  admin:
37
29
  csv_census:
@@ -103,7 +95,6 @@ ar:
103
95
  title: بيانات التعداد الحالية
104
96
  instructions:
105
97
  body: للقيام بذلك ، يجب عليك إدخال إدارة النظام وإضافة تصاريح csv_census إلى المؤسسة
106
- title: تحتاج إلى تنشيط التعداد CSV لهذه المنظمة
107
98
  new:
108
99
  file: ".csv ملف مع بيانات رسائل البريد الإلكتروني"
109
100
  submit: رفع ملف
@@ -34,16 +34,16 @@ ca:
34
34
  confirm: La revocació d'autoritzacions anteriors a aquesta data no es pot desfer. Segur que vols continuar?
35
35
  confirm_all: La revocació de totes les autoritzacions no es pot desfer. Segur que vols continuar?
36
36
  destroy_nok: S'ha produït un error al revocar les autoritzacions.
37
- destroy_ok: Totes les autoritzacions coincidents s'han revocat correctament!
37
+ destroy_ok: Totes les autoritzacions coincidents s'han revocat correctament.
38
38
  info: Hi ha un total de %{count} participants verificades.
39
39
  no_data: No hi ha participants verificades
40
- title: Revocació de les autoritzacions
41
- authorization_workflows: Verificacions
40
+ title: Revocació d'autoritzacions
41
+ authorization_workflows: Autoritzacions
42
42
  admin_log:
43
43
  organization:
44
- update_id_documents_config: "%{user_name} ha actualitzat la configuració de verificació mitjançant documents d'identitat"
44
+ update_id_documents_config: "%{user_name} ha actualitzat la configuració de Documents d'Identitat"
45
45
  user:
46
- grant_id_documents_offline_verification: "%{user_name} ha verificat %{resource_name} utilitzant la verificació presencial mitjançant documents d'identitat"
46
+ grant_id_documents_offline_verification: "%{user_name} ha verificat %{resource_name} utilitzant una autorització offline de Documents d'identitat"
47
47
  authorization_handlers:
48
48
  admin:
49
49
  csv_census:
@@ -75,6 +75,10 @@ ca:
75
75
  postal_letter:
76
76
  explanation: T'enviarem una carta postal amb un codi que hauràs d'introduir perquè puguem verificar la teva adreça
77
77
  name: Codi per carta postal
78
+ events:
79
+ verifications:
80
+ verify_with_managed_user:
81
+ notification_title: La participant <a href="%{resource_path}">%{resource_title}</a> ha intentat verificar-se amb les dades de la participant gestionada <a href="%{managed_user_path}">%{managed_user_name}</a>
78
82
  verifications:
79
83
  authorizations:
80
84
  authorization_metadata:
@@ -147,6 +151,10 @@ ca:
147
151
  one: La participació està restringida a les persones adscrites al codi postal %{postal_codes}.
148
152
  other: 'La participació està restringida a les persones adscrites a algun dels següents codis postals: %{postal_codes}.'
149
153
  scope: La participació està restringida a les persones verificades en l'àmbit de %{scope_name}.
154
+ user_postal_codes:
155
+ one: La participació està restringida a participants amb el codi postal %{postal_codes}, i el teu codi postal és %{user_postal_code}.
156
+ other: 'La participació està restringida a participants amb qualsevol dels codis postals següents: %{postal_codes}. El teu codi postal és %{user_postal_code}.'
157
+ user_scope: La participació està restringida a participants de l'àmbit %{scope_name}, i el teu àmbit és %{user_scope_name}.
150
158
  id_documents:
151
159
  admin:
152
160
  config:
@@ -34,16 +34,16 @@ cs:
34
34
  confirm: Zrušení před datem autorizace nelze vrátit zpět. Jste si jisti, že chcete pokračovat?
35
35
  confirm_all: Zrušení všech autorizací nelze vrátit zpět. Jste si jisti, že chcete pokračovat?
36
36
  destroy_nok: Při rušení autorizace došlo k chybě.
37
- destroy_ok: Všechny odpovídající autorizace byly úspěšně zrušeny!
37
+ destroy_ok: Všechny odpovídající autorizace byly úspěšně zrušeny.
38
38
  info: Celkem je %{count} ověřených účastníků.
39
39
  no_data: Žádní ověření účastníci
40
- title: Zrušení ověření
41
- authorization_workflows: Ověření
40
+ title: Zrušení autorizace
41
+ authorization_workflows: Autorizace
42
42
  admin_log:
43
43
  organization:
44
- update_id_documents_config: "%{user_name} aktualizovala konfiguraci ověření dokumentů identit"
44
+ update_id_documents_config: "%{user_name} aktualizoval konfiguraci autorizace dokladů totožnosti"
45
45
  user:
46
- grant_id_documents_offline_verification: "%{user_name} ověřeno %{resource_name} pomocí ověření dokumentů offline"
46
+ grant_id_documents_offline_verification: "%{user_name} ověřil %{resource_name} pomocí offline autorizace dokladů totožnosti"
47
47
  authorization_handlers:
48
48
  admin:
49
49
  csv_census:
@@ -75,6 +75,10 @@ cs:
75
75
  postal_letter:
76
76
  explanation: Pošleme vám poštovní dopis s kódem, který budete muset zadat, abychom mohli ověřit vaši adresu
77
77
  name: Kód v listovní zásilce
78
+ events:
79
+ verifications:
80
+ verify_with_managed_user:
81
+ notification_title: Účastník <a href="%{resource_path}">%{resource_title}</a> se pokusil ověřit údaji spravovaného účastníka <a href="%{managed_user_path}">%{managed_user_name}</a>
78
82
  verifications:
79
83
  authorizations:
80
84
  authorization_metadata:
@@ -131,7 +135,7 @@ cs:
131
135
  title: Aktuální údaje o členech organizace
132
136
  instructions:
133
137
  body: Chcete-li to provést, musíte vstoupit do správy systému a přidat oprávnění prostřednictvím souboru csv s e-maily členů organizace
134
- title: Pro tuto organizaci musíte aktivovat csv s emaily členů
138
+ title: Musíte aktivovat CSV s kontakty členů organizace
135
139
  new:
136
140
  file: ".csv soubor s daty e-mailů"
137
141
  info: 'Musí být soubor ve formátu CSV obsahující pouze jeden sloupec s e-mailovou adresou:'
@@ -149,6 +153,12 @@ cs:
149
153
  many: 'Účast je omezena na uživatele s některým z následujících poštovních směrovacích čísel: %{postal_codes}.'
150
154
  other: 'Účast je omezena na uživatele s některým z následujících poštovních směrovacích čísel: %{postal_codes}.'
151
155
  scope: Účast je omezena na účastníky s rozsahem %{scope_name}.
156
+ user_postal_codes:
157
+ one: Účast je omezena na účastníky s poštovním kódem %{postal_codes} a vaše poštovní směrovací číslo je %{user_postal_code}.
158
+ few: 'Účast je omezena na účastníky s poštovním kódem %{postal_codes} a vaše poštovní směrovací číslo je %{user_postal_code}.'
159
+ many: 'Účast je omezena na účastníky s poštovními kódy %{postal_codes} a vaše poštovní směrovací číslo je %{user_postal_code}.'
160
+ other: 'Účast je omezena na účastníky s kterýmkoli z následujících poštovních kódů: %{postal_codes}. Vaše poštovní směrovací číslo je %{user_postal_code}.'
161
+ user_scope: Účast je omezena na účastníky s rozsahem %{scope_name} a váš rozsah je %{user_scope_name}.
152
162
  id_documents:
153
163
  admin:
154
164
  config:
@@ -34,16 +34,16 @@ de:
34
34
  confirm: Das Entziehen aller Berechtigungen vor einem Datum kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?
35
35
  confirm_all: Das Entziehen aller Berechtigungen nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?
36
36
  destroy_nok: Beim Entziehen von Berechtigungen ist ein Fehler aufgetreten.
37
- destroy_ok: Alle passenden Berechtigungen wurden erfolgreich entzogen!
37
+ destroy_ok: Alle übereinstimmenden Berechtigungen wurden erfolgreich entzogen.
38
38
  info: Es gibt insgesamt %{count} verifizierte Teilnehmer.
39
39
  no_data: Keine verifizierten Teilnehmer
40
- title: Entziehen von Verifizierungen
41
- authorization_workflows: Überprüfungen
40
+ title: Berechtigungen widerrufen
41
+ authorization_workflows: Berechtigungen
42
42
  admin_log:
43
43
  organization:
44
- update_id_documents_config: "%{user_name} hat die Überprüfungskonfiguration für Identitätsdokumente aktualisiert"
44
+ update_id_documents_config: "%{user_name} hat die Konfiguration für die Überprüfung von Identitätsdokumenten aktualisiert"
45
45
  user:
46
- grant_id_documents_offline_verification: "%{user_name} verifiziert %{resource_name} über eine Offline-Verifizierung von Identitätsdokumenten"
46
+ grant_id_documents_offline_verification: "%{user_name} hat die Identitätsdokumente von %{resource_name} offline überprüft"
47
47
  authorization_handlers:
48
48
  admin:
49
49
  csv_census:
@@ -75,6 +75,10 @@ de:
75
75
  postal_letter:
76
76
  explanation: Wir senden Ihnen einen Brief mit einem Code, den Sie eingeben müssen, damit wir Ihre Adresse bestätigen können
77
77
  name: Code per Post
78
+ events:
79
+ verifications:
80
+ verify_with_managed_user:
81
+ notification_title: Der Teilnehmer <a href="%{resource_path}">%{resource_title}</a> hat versucht, sich mit den Daten des verwalteten Teilnehmers <a href="%{managed_user_path}">%{managed_user_name}</a> zu verifizieren.
78
82
  verifications:
79
83
  authorizations:
80
84
  authorization_metadata:
@@ -131,7 +135,7 @@ de:
131
135
  title: Aktuelle Volkszählungsdaten
132
136
  instructions:
133
137
  body: Dazu müssen Sie die Systemverwaltung eingeben und der Organisation die csv_census-Berechtigungen hinzufügen
134
- title: Sie müssen die csv-Zählung für diese Organisation aktivieren
138
+ title: Sie müssen die CSV Zensus für diese Organisation aktivieren
135
139
  new:
136
140
  file: "CSV-Datei mit E-Mail-Daten"
137
141
  info: 'Muss eine Datei im CSV-Format sein, mit nur einer Spalte der E-Mail-Adresse:'
@@ -147,6 +151,10 @@ de:
147
151
  one: Die Teilnahme ist auf Benutzer mit der Postleitzahl %{postal_codes}.
148
152
  other: 'Die Teilnahme ist auf Benutzer mit einer der folgenden Postleitzahlen beschränkt: %{postal_codes}.'
149
153
  scope: Die Teilnahme ist auf Benutzer mit dem Umgang %{scope_name} begrenzt.
154
+ user_postal_codes:
155
+ one: Die Teilnahme ist auf Teilnehmer mit der Postleitzahl %{postal_codes} beschränkt, und Ihre Postleitzahl ist %{user_postal_code}.
156
+ other: 'Die Teilnahme ist auf Teilnehmer mit einer der folgenden Postleitzahlen beschränkt: %{postal_codes}. Ihre Postleitzahl ist %{user_postal_code}.'
157
+ user_scope: Die Teilnahme ist auf Teilnehmer aus dem Bereich %{scope_name} beschränkt, und Ihr Bereich ist %{user_scope_name}.
150
158
  id_documents:
151
159
  admin:
152
160
  config: