decidim-verifications 0.8.4 → 0.9.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.
Files changed (33) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +52 -1
  3. data/app/controllers/decidim/verifications/authorizations_controller.rb +6 -0
  4. data/app/controllers/decidim/verifications/id_documents/authorizations_controller.rb +1 -1
  5. data/app/services/decidim/dummy_authorization_handler.rb +36 -1
  6. data/app/views/decidim/verifications/authorizations/_granted_authorization.html.erb +27 -0
  7. data/app/views/decidim/verifications/authorizations/index.html.erb +8 -13
  8. data/app/views/decidim/verifications/authorizations/new.html.erb +1 -1
  9. data/app/views/dummy_authorization/_form.html.erb +8 -0
  10. data/config/locales/ca.yml +12 -9
  11. data/config/locales/en.yml +4 -0
  12. data/config/locales/es.yml +13 -10
  13. data/config/locales/eu.yml +4 -0
  14. data/config/locales/fi.yml +58 -54
  15. data/config/locales/fr.yml +12 -8
  16. data/config/locales/gl.yml +129 -0
  17. data/config/locales/it.yml +9 -5
  18. data/config/locales/nl.yml +16 -12
  19. data/config/locales/pl.yml +5 -0
  20. data/config/locales/pt-BR.yml +129 -0
  21. data/config/locales/pt.yml +4 -0
  22. data/config/locales/ru.yml +120 -0
  23. data/config/locales/sv.yml +129 -0
  24. data/config/locales/uk.yml +88 -4
  25. data/lib/decidim/verifications.rb +1 -0
  26. data/lib/decidim/verifications/adapter.rb +25 -10
  27. data/lib/decidim/verifications/default_action_authorizer.rb +87 -0
  28. data/lib/decidim/verifications/dummy.rb +2 -0
  29. data/lib/decidim/verifications/registry.rb +4 -0
  30. data/lib/decidim/verifications/version.rb +1 -1
  31. data/lib/decidim/verifications/workflow_manifest.rb +13 -1
  32. data/lib/decidim/verifications/workflows.rb +9 -0
  33. metadata +16 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 792a14a38b140ba529745a0113e92727883b8838
4
- data.tar.gz: 962407c94a2ec48050578caad510e7494e12f50b
2
+ SHA256:
3
+ metadata.gz: 4912ebe8574d80d647d1a7efbbd7c16866e4e7c72ea4372d9fd3a6dd39ce406f
4
+ data.tar.gz: 214e20ff2944b697d1e2baad47f8ba79b0c96e0f9b3d6ac0e18fbca99c85f0cf
5
5
  SHA512:
6
- metadata.gz: 3128074deaa182609bd4c055fc7b0307a69c53b5b9bcb1b3fa28732551b393446201ae821a5f1920abe5a25e0cfc968692a56b15a7c7faad6d01e27a544b9a74
7
- data.tar.gz: 07ee1b7402122561b728c28610ae1d859d3f17c5078a321d1f04de655b705b87d2c3e791b643c70338281424219bcf3bf2d83246fa0aa618f42bfb3da010bf7c
6
+ metadata.gz: b2a4e22f9758b7f14527c7f3042450772658b8c82d4852fa608a2e1daf8ee4e87f539929c47180ca51cff457c2382c69743cfb15b67033bc645c37f7f44c0dcd
7
+ data.tar.gz: 9a8366deeaf8626d5253ce7fa2cc26ae84f613f7c92fd46e454c97d26a3b67d9afc86028ff3cb3f139222ac1f7a70cfc079c86484f558faf7c561434453a9ae8
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Decidim::Verifications
2
2
 
3
3
  Decidim offers several methods for allowing participants to get authorization to
4
- perform certain privileged actions. This gem implements several of those methods
4
+ perform certain privileged actions. This module implements several of those methods
5
5
  and also offers a way for installation to implement their custom verification
6
6
  methods.
7
7
 
@@ -75,6 +75,57 @@ Decidim implements two type of authorization methods:
75
75
  * `edit_authorization_path`: This is the entry point to resume an existing
76
76
  authorization process.
77
77
 
78
+ ## Custom action authorizers
79
+
80
+ Custom action authorizers are an advanced feature that can be used in both types of
81
+ authorization methods to customize some parts of the authorization process.
82
+ These are particulary useful when used within verification options, which are
83
+ set in the admin zone related to a feature action. As a result, a verification
84
+ method will be allowed to change the authorization logic and the appearance based
85
+ on the context where the authorization is being performed.
86
+
87
+ For example, you can require authorization for supporting proposals in a participatory
88
+ process, and also restrict it to users with postal codes 12345 and 12346. The
89
+ [example authorization handler](https://github.com/decidim/decidim/blob/master/decidim-verifications/app/services/decidim/dummy_authorization_handler.rb)
90
+ included in this module allows to do that. As an admin user, you should visit
91
+ the proposals componenent permissions screen, choose the `Example authorization`
92
+ as the authorization handler name for the `vote` action and type something like
93
+ `{ allowed_postal_codes: ["12345", "12346"] }` in the `Options` field placed below.
94
+
95
+ You can override default behavior implementing a class that inherits form
96
+ `Decidim::Verifications::DefaultActionAuthorizer` and override some methods or that
97
+ implement its public methods:
98
+
99
+ * The `initialize` method receives the current authorization process context and
100
+ saves it in local variables. This include the current authorization user state (an
101
+ `Authorization` record) and permission `options` related to the action is trying to
102
+ perform.
103
+
104
+ * The `authorize` method is responsible of evaluating the authorization process
105
+ context and determine if the user authorization is `:ok` or in any other status.
106
+
107
+ * The `redirect_params` method allows to add additional query string parameters
108
+ when redirecting to the authorization form. This is useful to send to the
109
+ authorization form the permission `options` information that could be useful to
110
+ adapt its behavior or appearance.
111
+
112
+ To be used by the verification method, this class should be referenced by name in
113
+ its workflow manifest:
114
+
115
+ ```ruby
116
+ # config/initializers/decidim.rb
117
+
118
+ Decidim::Verifications.register_workflow(:sms_verification) do |workflow|
119
+ workflow.engine = Decidim::Verifications::SmsVerification::Engine
120
+ workflow.admin_engine = Decidim::Verifications::SmsVerification::AdminEngine
121
+ workflow.action_authorizer = "Decidim::Verifications::SmsVerification::ActionAuthorizer"
122
+ end
123
+ ```
124
+
125
+ Check the [example authorization handler](https://github.com/decidim/decidim/blob/master/decidim-verifications/app/services/decidim/dummy_authorization_handler.rb)
126
+ and the [DefaultActionAuthorizer class](https://github.com/decidim/decidim/blob/master/decidim-verifications/lib/decidim/verifications/default_action_authorizer.rb)
127
+ for additional technical details.
128
+
78
129
  ## Installation
79
130
 
80
131
  Add this line to your application's Gemfile:
@@ -86,6 +86,12 @@ module Decidim
86
86
  def pending_authorizations
87
87
  Authorizations.new(user: current_user, granted: false)
88
88
  end
89
+
90
+ def store_current_location
91
+ return if params[:redirect_url].blank? || !request.format.html?
92
+
93
+ store_location_for(:user, params[:redirect_url])
94
+ end
89
95
  end
90
96
  end
91
97
  end
@@ -47,7 +47,7 @@ module Decidim
47
47
  @form = UploadForm.from_params(
48
48
  params.merge(
49
49
  user: current_user,
50
- verification_attachment: @authorization.verification_attachment
50
+ verification_attachment: params[:id_document_upload][:verification_attachment] || @authorization.verification_attachment
51
51
  )
52
52
  )
53
53
 
@@ -11,7 +11,7 @@ module Decidim
11
11
  validate :valid_document_number
12
12
 
13
13
  def metadata
14
- super.merge(document_number: document_number)
14
+ super.merge(document_number: document_number, postal_code: postal_code)
15
15
  end
16
16
 
17
17
  def unique_id
@@ -23,5 +23,40 @@ module Decidim
23
23
  def valid_document_number
24
24
  errors.add(:document_number, :invalid) unless document_number.to_s.end_with?("X")
25
25
  end
26
+
27
+ # An example implementation of a DefaultActionAuthorizer inherited class to override authorization status
28
+ # checking process. In this case, it allows to set a list of valid postal codes for an authorization.
29
+ class ActionAuthorizer < Decidim::Verifications::DefaultActionAuthorizer
30
+ attr_reader :allowed_postal_codes
31
+
32
+ # Overrides the parent class method, but it still uses it to keep the base behavior
33
+ def authorize
34
+ # Remove the additional setting from the options hash to avoid to be considered missing.
35
+ @allowed_postal_codes ||= options.delete("allowed_postal_codes")
36
+
37
+ status_code, data = *super
38
+
39
+ if allowed_postal_codes.present?
40
+ # Does not authorize users with different postal codes
41
+ if status_code == :ok && !allowed_postal_codes.member?(authorization.metadata["postal_code"])
42
+ status_code = :unauthorized
43
+ data[:fields] = { "postal_code" => authorization.metadata["postal_code"] }
44
+ end
45
+
46
+ # Adds an extra message for inform the user the additional restriction for this authorization
47
+ data[:extra_explanation] = { key: "extra_explanation",
48
+ params: { scope: "decidim.verifications.dummy_authorization",
49
+ count: allowed_postal_codes.count,
50
+ postal_codes: allowed_postal_codes.join(", ") } }
51
+ end
52
+
53
+ [status_code, data]
54
+ end
55
+
56
+ # Adds the list of allowed postal codes to the redirect URL, to allow forms to inform about it
57
+ def redirect_params
58
+ { "postal_codes" => allowed_postal_codes&.join("-") }
59
+ end
60
+ end
26
61
  end
27
62
  end
@@ -0,0 +1,27 @@
1
+ <div class="card--list__item">
2
+ <div class="card--list__text">
3
+ <%= icon "lock-unlocked", class: "card--list__icon" %>
4
+ <div>
5
+ <h5 class="card--list__heading">
6
+ <%= t("#{authorization.name}.name", scope: "decidim.authorization_handlers") %>
7
+ </h5>
8
+ <span class="text-small">
9
+ <% if authorization.expired? %>
10
+ <%= t("expired_at", scope: "decidim.authorization_handlers", timestamp: l(authorization.expires_at, format: :long)) %>
11
+ <% else %>
12
+ <%= t("granted_at", scope: "decidim.authorization_handlers", timestamp: l(authorization.granted_at, format: :long)) %>
13
+ <% if authorization.expires_at.present? %>
14
+ <%= t("expires_at", scope: "decidim.authorization_handlers", timestamp: l(authorization.expires_at, format: :long)) %>
15
+ <% end %>
16
+ <% end %>
17
+ </span>
18
+ </div>
19
+ </div>
20
+ <% if authorization.expired? %>
21
+ <div class="card--list__data">
22
+ <span class="card--list__data__icon">
23
+ <%= icon "reload" %>
24
+ </span>
25
+ </div>
26
+ <% end %>
27
+ </div>
@@ -3,19 +3,14 @@
3
3
  <% if @granted_authorizations.any? %>
4
4
  <div class="card card--list">
5
5
  <% @granted_authorizations.each do |authorization| %>
6
- <div class="card--list__item">
7
- <div class="card--list__text">
8
- <%= icon "lock-unlocked", class: "card--list__icon" %>
9
- <div>
10
- <h5 class="card--list__heading">
11
- <%= t("#{authorization.name}.name", scope: "decidim.authorization_handlers") %>
12
- </h5>
13
- <span class="text-small">
14
- <%= t("granted_at", scope: "decidim.authorization_handlers", timestamp: l(authorization.granted_at, format: :long)) %>
15
- </span>
16
- </div>
17
- </div>
18
- </div>
6
+ <% if authorization.expired? %>
7
+ <% authorization_method = Decidim::Verifications::Adapter.from_element(authorization.name) %>
8
+ <%= link_to authorization_method.root_path do %>
9
+ <% render partial: "granted_authorization", locals: { authorization: authorization } %>
10
+ <% end %>
11
+ <% else %>
12
+ <%= render partial: "granted_authorization", locals: { authorization: authorization } %>
13
+ <% end %>
19
14
  <% end %>
20
15
  </div>
21
16
  <% end %>
@@ -2,7 +2,7 @@
2
2
  <div class="row collapse">
3
3
  <div class="row collapse">
4
4
  <div class="columns large-8 large-centered text-center page-title">
5
- <h1><%= t(".authorize_with", authorizer: t("#{params[:handler]}.name", scope: "decidim.authorization_handlers")) %></h1>
5
+ <h1><%= t(".authorize_with", authorizer: t("#{handler.handler_name}.name", scope: "decidim.authorization_handlers")) %></h1>
6
6
  </div>
7
7
  </div>
8
8
 
@@ -0,0 +1,8 @@
1
+ <% if request["postal_codes"]
2
+ postal_codes = request["postal_codes"].split("-")%>
3
+ <p><%= t("extra_explanation", scope: "decidim.verifications.dummy_authorization", postal_codes: postal_codes.join(", "), count: postal_codes.count) %></p>
4
+ <% end %>
5
+ <%= form.all_fields %>
6
+ <div class="actions partial-demo">
7
+ <%= form.submit t("decidim.verifications.authorizations.new.authorize"), class: "button expanded" %>
8
+ </div>
@@ -1,4 +1,3 @@
1
- ---
2
1
  ca:
3
2
  activemodel:
4
3
  attributes:
@@ -18,16 +17,16 @@ ca:
18
17
  admin:
19
18
  id_documents:
20
19
  help:
21
- - Els usuaris omplen la informació de la seva identitat i carreguen una còpia del seu document.
22
- - Emplenes la informació que es mostra a la imatge penjada.
23
- - La informació ha de coincidir amb el que hagi omplert l'usuari.
24
- - Si no pots veure la informació amb claredat o no la pots verificar, pots rebutjar la sol·licitud i l'usuari la podrà solucionar.
20
+ - Els usuaris omplen la informació de la seva identitat i carreguen una còpia del seu document.
21
+ - Emplenes la informació que es mostra a la imatge penjada.
22
+ - La informació ha de coincidir amb el que hagi omplert l'usuari.
23
+ - Si no pots veure la informació amb claredat o no la pots verificar, pots rebutjar la sol·licitud i l'usuari la podrà solucionar.
25
24
  postal_letter:
26
25
  help:
27
- - Els usuaris sol·liciten un codi de verificació que s'enviarà a la seva adreça.
28
- - Envies la carta a la seva adreça amb el codi de verificació.
29
- - Marques la carta com a enviada.
30
- - Una vegada la carta està marcada com a enviada, l'usuari podrà introduir el codi i verificar-se.
26
+ - Els usuaris sol·liciten un codi de verificació que s'enviarà a la seva adreça.
27
+ - Envies la carta a la seva adreça amb el codi de verificació.
28
+ - Marques la carta com a enviada.
29
+ - Una vegada la carta està marcada com a enviada, l'usuari podrà introduir el codi i verificar-se.
31
30
  direct: Directe
32
31
  help: Ajuda
33
32
  id_documents:
@@ -56,6 +55,10 @@ ca:
56
55
  authorize_with: Verifica amb %{authorizer}
57
56
  skip_verification: Pots ometre-ho per ara i %{link}
58
57
  start_exploring: comença a explorar
58
+ dummy_authorization:
59
+ extra_explanation:
60
+ one: La participació està restringida als usuaris amb el codi postal %{postal_codes}.
61
+ other: 'La participació està restringida als usuaris amb algun dels següents codis postals: %{postal_codes}.'
59
62
  id_documents:
60
63
  admin:
61
64
  confirmations:
@@ -56,6 +56,10 @@ en:
56
56
  authorize_with: Verify with %{authorizer}
57
57
  skip_verification: You can skip this for now and %{link}
58
58
  start_exploring: start exploring
59
+ dummy_authorization:
60
+ extra_explanation:
61
+ one: Participation is restricted to users with the postal code %{postal_codes}.
62
+ other: 'Participation is restricted to users with any of the following postal codes: %{postal_codes}.'
59
63
  id_documents:
60
64
  admin:
61
65
  confirmations:
@@ -1,4 +1,3 @@
1
- ---
2
1
  es:
3
2
  activemodel:
4
3
  attributes:
@@ -18,16 +17,16 @@ es:
18
17
  admin:
19
18
  id_documents:
20
19
  help:
21
- - Los usuarios rellenan la información de su identidad y suben una copia de su documento.
22
- - Rellenas la información presente en la imagen subida.
23
- - La información debe coincidir con lo que el usuario envió.
24
- - Si no puedes ver claramente la información o no puedes verificarla, puedes rechazar la solicitud y el usuario podrá corregirla.
20
+ - Los usuarios rellenan la información de su identidad y suben una copia de su documento.
21
+ - Rellenas la información presente en la imagen subida.
22
+ - La información debe coincidir con lo que el usuario envió.
23
+ - Si no puedes ver claramente la información o no puedes verificarla, puedes rechazar la solicitud y el usuario podrá corregirla.
25
24
  postal_letter:
26
25
  help:
27
- - Los usuarios solicitan que se envíe un código de verificación a su dirección.
28
- - Envías la carta a su dirección con el código de verificación.
29
- - Marcas la carta como enviada.
30
- - Una vez hayas marcado la carta como enviada, el usuario podrá introducir el código y ser verificado.
26
+ - Los usuarios solicitan que se envíe un código de verificación a su dirección.
27
+ - Envías la carta a su dirección con el código de verificación.
28
+ - Marcas la carta como enviada.
29
+ - Una vez hayas marcado la carta como enviada, el usuario podrá introducir el código y ser verificado.
31
30
  direct: Directo
32
31
  help: Ayuda
33
32
  id_documents:
@@ -56,6 +55,10 @@ es:
56
55
  authorize_with: Verificar con %{authorizer}
57
56
  skip_verification: Puedes saltarte este paso por ahora y %{link}
58
57
  start_exploring: empezar a explorar
58
+ dummy_authorization:
59
+ extra_explanation:
60
+ one: La participación está restringida a usuarios con el código postal %{postal_codes}.
61
+ other: 'La participación está restringida a usuarios con cualquiera de los siguientes códigos postales: %{postal_codes}.'
59
62
  id_documents:
60
63
  admin:
61
64
  confirmations:
@@ -110,7 +113,7 @@ es:
110
113
  authorizations:
111
114
  create:
112
115
  error: Hubo un problema con su petición
113
- success: "¡Gracias! Te enviaremos un código de verificación a tu dirección"
116
+ success: '¡Gracias! Te enviaremos un código de verificación a tu dirección'
114
117
  edit:
115
118
  send: Confirmar
116
119
  title: Introduce el código de verificación que recibiste
@@ -55,6 +55,10 @@ eu:
55
55
  authorize_with: Egiaztatu %{authorizer} rekin
56
56
  skip_verification: Hau saltatu dezakezu oraingoz eta %{link}
57
57
  start_exploring: Hasi esploratzen
58
+ dummy_authorization:
59
+ extra_explanation:
60
+ one: Partehartzea mugatua da %{postal_codes} kode postalarekin duten erabiltzaileentzat.
61
+ other: 'Parte-hartzea honako posta-kode hauetakoren bat duten erabiltzaileentzat mugatuta dago: %{postal_codes}.'
58
62
  id_documents:
59
63
  admin:
60
64
  confirmations:
@@ -2,12 +2,12 @@ fi:
2
2
  activemodel:
3
3
  attributes:
4
4
  id_document_information:
5
- document_number: Asiakirjan numero (kirjaimella)
5
+ document_number: Asiakirjan numero (kirjeellä toimitettava)
6
6
  document_type: Asiakirjan tyyppi
7
7
  id_document_upload:
8
- document_number: Asiakirjan numero (kirjaimella)
8
+ document_number: Asiakirjan numero (kirjeellä toimitettava)
9
9
  document_type: Asiakirjan tyyppi
10
- user: käyttäjä
10
+ user: Käyttäjä
11
11
  verification_attachment: Asiakirjan skannattu kopio
12
12
  decidim:
13
13
  admin:
@@ -18,108 +18,112 @@ fi:
18
18
  id_documents:
19
19
  help:
20
20
  - Käyttäjät täyttävät henkilötietonsa ja lähettävät kopion asiakirjastaan.
21
- - Täytä ladatun kuvan läsnä olevat tiedot.
22
- - Tietojen tulisi vastata mitä tahansa käyttäjän täyttämää.
23
- - Jos et voi nähdä tietoja selvästi tai et voi saada sitä vahvistettua, voit hylätä pyynnön ja käyttäjä voi korjata sen.
21
+ - Sinä täytät ladatussa kuvassa näkyvät tiedot.
22
+ - Tietojen tulisi vastata niitä tietoja, jotka käyttäjä on syöttänyt.
23
+ - Jos et voi nähdä tietoja selvästi tai et voi saada niitä vahvistettua, voit hylätä pyynnön, jolloin käyttäjä voi korjata sen.
24
24
  postal_letter:
25
25
  help:
26
- - Käyttäjät vaativat vahvistuskoodin lähettämistä osoitteeseen.
27
- - Lähetät kirjeen osoitteeseen vahvistuskoodilla.
28
- - Merkitään kirje lähetetyksi.
29
- - Kun olet merkinnyt lähetetyn kirjeen, käyttäjä voi ottaa koodin käyttöön ja saada vahvistuksen.
26
+ - Käyttäjät pyytävät vahvistuskoodin lähettämistä heidän osoitteeseensa.
27
+ - Lähetät kirjeen heidän osoitteeseensa, mikä sisältää vahvistuskoodin.
28
+ - Sinä merkitset kirjeen lähetetyksi.
29
+ - Kun olet merkinnyt kirjeen lähetetyksi, käyttäjä voi ottaa syöttää koodin ja vahvistaa tilinsä.
30
30
  direct: Suoraan
31
- help: auta
31
+ help: Ohjeet
32
32
  id_documents:
33
- explanation: Lähetä henkilötodistuksesi, jotta voimme tarkistaa henkilöllisyytesi
34
- name: Henkilötodistukset
33
+ explanation: Lataa henkilöllisyystodistuksesi, jotta voimme tarkistaa henkilöllisyytesi
34
+ name: Henkilöllisyystodistukset
35
35
  multistep: Monivaiheinen
36
36
  name: Nimi
37
37
  postal_letter:
38
- explanation: Lähetämme sinulle postinumeron, jonka koodi on kirjoitettava, jotta voimme vahvistaa osoitteen
39
- name: Koodi postikirjeellä
38
+ explanation: Lähetämme sinulle postissa kirjeen, joka sisältää koodin, jotta voimme vahvistaa osoitteesi
39
+ name: Koodi postissa lähetettävällä kirjeellä
40
40
  verifications:
41
41
  authorizations:
42
42
  create:
43
- error: Luvalla luotiin virhe.
44
- success: Sinulle on myönnetty lupa.
43
+ error: Vahvistuksen luonnissa tapahtui virhe.
44
+ success: Tilisi on onnistuneesti vahvistettu.
45
45
  first_login:
46
46
  actions:
47
- dummy_authorization_handler: Varmista esimerkki valtuutuksen käsittelijältä
48
- dummy_authorization_workflow: Varmista esimerkkitodennuksen työnkulku
49
- id_documents: Tarkista, että lähetät henkilöllisyystodistuksesi
50
- postal_letter: Tarkista, että saat vahvistuskoodin postipostin kautta
47
+ dummy_authorization_handler: Vahvista tili esimerkkivaltuuttajan avulla
48
+ dummy_authorization_workflow: Vahvista esimerkkivaltuutuksen työnkulkuprosessin kautta
49
+ id_documents: Vahvista tilisi lataamalla henkilöllisyystodistuksesi
50
+ postal_letter: Vahvista tilisi paperipostissa lähetettävän vahvistuskoodin avulla
51
51
  title: Vahvista henkilöllisyytesi
52
- verify_with_these_options: 'Nämä ovat käytettävissä olevia vaihtoehtoja henkilöllisyytesi vahvistamiseksi:'
52
+ verify_with_these_options: 'Käytettävissä olevat tavat vahvistaa identiteettisi:'
53
53
  new:
54
- authorize: Lähettää
55
- authorize_with: Vahvista %{authorizer}
54
+ authorize: Lähetä
55
+ authorize_with: Vahvista palvelulla %{authorizer}
56
56
  skip_verification: Voit ohittaa tämän nyt ja %{link}
57
- start_exploring: alkaa tutkia
57
+ start_exploring: aloittaa palveluun tutustumisen
58
+ dummy_authorization:
59
+ extra_explanation:
60
+ one: Osallistuminen on rajoitettu niille käyttäjille, joilla on postinumero %{postal_codes}.
61
+ other: 'Osallistuminen on rajoitettu niille käyttäjille, joilla on jokin postinumeroista: %{postal_codes}.'
58
62
  id_documents:
59
63
  admin:
60
64
  confirmations:
61
65
  create:
62
66
  error: Vahvistus ei täsmää. Yritä uudelleen tai hylkää vahvistus, jotta käyttäjä voi muuttaa sitä
63
- success: Käyttäjä onnistui
67
+ success: Käyttäjä vahvistettu onnistuneesti
64
68
  new:
65
- introduce_user_data: Esitä tiedot kuvassa
66
- reject: Hylätä
67
- verify: tarkistaa
69
+ introduce_user_data: Syötä kuvassa näkyvät tiedot
70
+ reject: Hylkää
71
+ verify: Vahvista
68
72
  pending_authorizations:
69
73
  index:
70
- title: Odottaa tarkistuksia
71
- verification_number: 'Vahvistus # %{n}'
74
+ title: Odottavat vahvistukset
75
+ verification_number: 'Vahvistus #%{n}'
72
76
  rejections:
73
77
  create:
74
78
  success: Vahvistus hylätty. Käyttäjää pyydetään muuttamaan asiakirjojaan
75
79
  authorizations:
76
80
  create:
77
- error: Dokumentin lataaminen tapahtui
78
- success: Asiakirja on ladattu onnistuneesti
81
+ error: Asiakirjan lataamisessa tapahtui virhe
82
+ success: Asiakirja ladattu onnistuneesti
79
83
  edit:
80
- being_reviewed: Tarkistamme asiakirjoja. Sinut tarkistetaan pian
81
- rejection_clarity: Varmista, että tiedot näkyvät selvästi ladatussa kuvassa
84
+ being_reviewed: Tarkistamme asiakirjojasi. Tilisi vahvistetaan pian
85
+ rejection_clarity: Varmista, että kaikki tiedot näkyvät selvästi ladatussa kuvassa
82
86
  rejection_correctness: Varmista, että syötetyt tiedot ovat oikein
83
- rejection_notice: Vahvistuksessa tapahtui ongelma. Yritä uudelleen
84
- send: Pyydä vahvistus uudelleen
87
+ rejection_notice: Tilisi vahvistuksessa tapahtui ongelma. Yritä uudelleen
88
+ send: Pyydä vahvistusta uudelleen
85
89
  new:
86
- send: Pyydä vahvistus
87
- title: Lähetä henkilötodistusasi
90
+ send: Pyydä vahvistusta
91
+ title: Lähetä henkilöllisyystodistuksesi
88
92
  update:
89
- error: Dokumentin uudelleen lataaminen tapahtui
93
+ error: Asiakirjan uudelleen lataaminen epäonnistui
90
94
  success: Asiakirjan uudelleen lataaminen onnistui
91
- dni: DNI
92
- nie: NIE
95
+ dni: Henkilökortti
96
+ nie: HETU
93
97
  passport: Passi
94
98
  postal_letter:
95
99
  admin:
96
100
  pending_authorizations:
97
101
  index:
98
102
  address: Osoite
99
- letter_sent_at: Kirje lähetetty osoitteessa
100
- mark_as_sent: Merkitse lähetetty
103
+ letter_sent_at: Kirje lähetetty osoitteeseen
104
+ mark_as_sent: Merkitse lähetetyksi
101
105
  not_yet_sent: Ei vielä lähetetty
102
- title: Käynnissä olevat tarkistukset
106
+ title: Käynnissä olevat vahvistukset
103
107
  username: Käyttäjätunnus
104
108
  verification_code: Vahvistuskoodi
105
109
  postages:
106
110
  create:
107
- error: Virhe merkittynä kirjeeksi lähetettynä
111
+ error: Virhe merkatessa kirjettä lähetetyksi
108
112
  success: Kirje onnistuneesti merkitty lähetetyksi
109
113
  authorizations:
110
114
  create:
111
115
  error: Pyynnössäsi oli ongelma
112
- success: Kiitos! Lähetämme vahvistuskoodimme osoitteeseen
116
+ success: Kiitos! Lähetämme vahvistuskoodin osoiteeseesi
113
117
  edit:
114
- send: Vahvistaa
115
- title: Esittele vastaanottamasi vahvistuskoodi
116
- waiting_for_letter: Lähetämme kirjeesi osoitteeseen vahvistuskoodisi pian
118
+ send: Vahvista
119
+ title: Syötä vastaanottamasi vahvistuskoodi
120
+ waiting_for_letter: Lähetämme vahvistuskoodin sisältävän kirjeen osoitteeseesi pian
117
121
  new:
118
- send: Lähetä minulle kirje
122
+ send: Lähetä kirje minulle
119
123
  title: Pyydä vahvistuskoodia
120
124
  update:
121
- error: Vahvistuskoodi ei vastaa meidän. Tarkista ensin lähettämäsi kirje
122
- success: Onnea. Olet varmistunut
125
+ error: Vahvistuskoodi ei vastaa meidän koodiamme. Tarkista uudestaan kirje, jonka olemme lähettäneet sinulle
126
+ success: Onnittelut. Olet vahvistanut tilisi
123
127
  errors:
124
128
  messages:
125
- uppercase_only_letters_numbers: on oltava isoja ja sisältävät vain kirjaimia ja / tai numeroita
129
+ uppercase_only_letters_numbers: sisällössä on sallttu ainoastaan isot kirjaimet ja numerot