decidim-verifications 0.23.2 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.
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 +17 -7
  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 +0 -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: 47ecb2036a3990ea0b9f13f8e204b547449e06ba32599834e7acdf9b9619a8b4
4
- data.tar.gz: e0df731505606786aff8f99ffe2011f00a20f60aaf3769b1d4d24be1dd856fc4
3
+ metadata.gz: bf2943285e3044456477d137b8d127269c78647fdf7cdbe6c736f3734a4aba9e
4
+ data.tar.gz: 10604b5f54fe1518a9e5e6014e458a426d9122d38abdd0e357b611e39d205bd2
5
5
  SHA512:
6
- metadata.gz: cf847c2f79237cbc773fa3a177ab32cf837b0d2b17741f45ed7b61730ea57e47656db0a19336ea284ac8351694830e168a99b560e40c212cc5ce6dcdd0405506
7
- data.tar.gz: eb05aa2d32867b24c115b8b8495a649dbeb935f7eda36dd250cc885736209a906080352f5e88506355af6d9e5c74d1e7827f5e9946b3afcf8d26f5d99e129b18
6
+ metadata.gz: a98e8a049cb143e3d75bd6b452b4b4496fc30449520134fd288083b1368412b26f76859204efcc49cf3457ff2d3a86791a4cc93c120a3f9f5e3df650826ee017
7
+ data.tar.gz: bb69d7bfacfda53fbbbeea3608a1ae360862a541ba9627b6eac33ff14b99acca11d159b7760cda5827e5bb7c4973b25a39aaa2130b947470f618ba66be6aa48b
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: 'Must být soubor ve formátu CSV s pouze jedním sloupcem 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: