decidim-verifications 0.23.3 → 0.24.1

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 +35 -25
  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: '085414f0a7434a9a7d3f04c181e7cdc3a6bbd534834bb805c21da01e2e46fec1'
4
- data.tar.gz: e1a87b80dbbe653b2936245c8340e0ca28b180d0335a18e63365f0ec7f22f27d
3
+ metadata.gz: d4c5c8cf5fca2a7650f7a0053748e99a4223a9942c7b13b996630d5f783fe1cb
4
+ data.tar.gz: 9d4260be5590ada52438fa524b5d03c9143a83a725db2ca63fcebb175ca0b53f
5
5
  SHA512:
6
- metadata.gz: ce9e0a32a8fd57222105d2c85cb2c9901c3033ab6d630ae4733ce8472f7218230e8112a4dbe3fa775c829147b39189ef780086d0f3ddb62fad5da53ab6592226
7
- data.tar.gz: 0cf9cc26b5c144bbbdedcb8e7aaa29ddfc1493ff12127ac69c189624882ef6da4de63251c1f850f4e39cbf3f0c649a25ec03fdd3ef926fffd0b3f85df13027d4
6
+ metadata.gz: 9cb6d08158dc17e4af8c77b6a9b82fddd9f6fbaa8e870b46be69d0638d90dbe4e548d93d92215bed853f0a2a81594d13358d117b8fde1cf2c35c1572cfcfd046
7
+ data.tar.gz: ce92da65f8e90de154d85cf088e7df2a300c7213c28678d1c68a5464aacdaf1923151642876747955d0fd08840aaa325249b1c446c08a6e2288916e83556cb63
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:
@@ -7,21 +7,21 @@ cs:
7
7
  offline_explanation: Pokyny pro ověření offline
8
8
  online: Online
9
9
  id_document_information:
10
- document_number: Číslo dokladu (jen číslice)
10
+ document_number: Číslo dokladu (s písmeny)
11
11
  document_type: Typ dokumentu
12
12
  id_document_upload:
13
- document_number: Číslo dokladu (jen číslice)
13
+ document_number: Číslo dokladu (s písmeny)
14
14
  document_type: Typ dokumentu
15
15
  user: Uživatel
16
16
  verification_attachment: Naskenovaná kopie dokumentu
17
17
  offline_confirmation:
18
18
  email: Uživatelský e-mail
19
19
  postal_letter_address:
20
- full_address: Celá adresa
20
+ full_address: Celá poštovní adresa
21
21
  postal_letter_confirmation:
22
22
  verification_code: Ověřovací kód
23
23
  postal_letter_postage:
24
- full_address: Celá adresa
24
+ full_address: Celá poštovní adresa
25
25
  verification_code: Ověřovací kód
26
26
  decidim:
27
27
  admin:
@@ -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:
@@ -52,19 +52,19 @@ cs:
52
52
  - Ověřit se mohou pouze účastníci s e-mailem v tomto souboru CSV
53
53
  id_documents:
54
54
  help:
55
- - Uživatelé vyplní informace o své identitě a nahrají kopii dokumentu.
55
+ - Uživatelé vyplňují údaje o své totožnosti a nahrávají kopii svého dokladu.
56
56
  - Vyplníte informace obsažené v nahraném obrázku.
57
- - Informace by měly odpovídat uživateli, který vyplnil.
57
+ - Informace by se měly shodovat s tím, co uživatel vyplní.
58
58
  - Pokud nemůžete informace zřetelně vidět nebo ji nelze ověřit, můžete žádost odmítnout a uživatel ji bude moci opravit.
59
59
  postal_letter:
60
60
  help:
61
- - Uživatelé požadují, aby jejich adresa byla odeslána ověřovacímu kódu.
61
+ - Účastníci požádají o zaslání ověřovacího kódu na jejich poštovní adresu.
62
62
  - Na adresu zasíláte dopis s ověřovacím kódem.
63
- - Označte písmeno jako odesláno.
64
- - Jakmile označíte odeslané písmeno, uživatel bude schopen kód zadat a ověřit.
63
+ - Označte dopis jako odeslaný.
64
+ - Jakmile označíte dopis jako odeslaný, uživatel bude schopen kód zadat a tím se ověřit.
65
65
  csv_census:
66
- explanation: Získejte ověření pomocí členů organizace
67
- name: Členové organizace
66
+ explanation: Získejte ověření pomocí členství v organizaci
67
+ name: Členství organizace
68
68
  direct: Přímo
69
69
  help: Pomoc
70
70
  id_documents:
@@ -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:
@@ -90,7 +94,7 @@ cs:
90
94
  first_login:
91
95
  actions:
92
96
  another_dummy_authorization_handler: Ověřte proti jinému příkladu pověření pro autorizaci
93
- csv_census: Ověřte prostřednictvím členů organizace
97
+ csv_census: Ověřte prostřednictvím členství v organizaci
94
98
  dummy_authorization_handler: Ověřte proti příkladu pověření autorizace
95
99
  dummy_authorization_workflow: Ověřte proti pracovnímu postupu autorizace
96
100
  id_documents: Získejte ověření odesláním dokladu totožnosti
@@ -124,17 +128,17 @@ cs:
124
128
  success: Všechna data členů organizace byly smazány
125
129
  destroy:
126
130
  confirm: Odstranění veškerých kontaktů členů organizace nelze vrátit zpět. Jste si jistý, že chcete pokračovat?
127
- title: Smazat všechna data členů organizace
131
+ title: Smazat všechna data členství organizace
128
132
  index:
129
- data: Celkem bylo načteno celkem %{count} záznamů. Poslední nahraje datum %{due_date}
130
- empty: Neexistují data o členech organizace. Pomocí níže uvedeného formuláře je importujte souborem CSV.
133
+ data: Celkem načteno %{count} záznamů. Poslední datum načtení bylo %{due_date}
134
+ empty: Nejsou data o členech organizace. Pomocí níže uvedeného formuláře je importujte souborem CSV.
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
- info: 'Must být soubor ve formátu CSV s pouze jedním sloupcem s e-mailovou adresou:'
141
+ info: 'Musí být soubor ve formátu CSV obsahující pouze jeden sloupec s e-mailovou adresou:'
138
142
  submit: Nahrát soubor
139
143
  title: Nahrajte nové členy organizace
140
144
  authorizations:
@@ -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:
@@ -206,8 +216,8 @@ cs:
206
216
  update:
207
217
  error: Při načítání dokumentu došlo k problému
208
218
  success: Dokument byl úspěšně obnoven
209
- dni: DNI
210
- nie: Občanský průkaz
219
+ dni: Občanský průkaz
220
+ nie: Daňové identifikační číslo
211
221
  passport: Cestovní pas
212
222
  postal_letter:
213
223
  admin:
@@ -231,7 +241,7 @@ cs:
231
241
  edit:
232
242
  send: Potvrdit
233
243
  title: Zadejte ověřovací kód, který jste obdrželi
234
- waiting_for_letter: Na váš adresu vám brzy zašleme váš ověřovací kód
244
+ waiting_for_letter: Brzy pošleme dopis na Vaši adresu s Vaším ověřovacím kódem
235
245
  new:
236
246
  send: Pošlete mi dopis
237
247
  title: Požádejte o ověřovací kód