decidim-verifications 0.11.2 → 0.12.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +52 -3
- data/app/controllers/decidim/verifications/id_documents/admin/confirmations_controller.rb +2 -2
- data/app/controllers/decidim/verifications/id_documents/admin/pending_authorizations_controller.rb +1 -1
- data/app/controllers/decidim/verifications/id_documents/admin/rejections_controller.rb +1 -1
- data/app/controllers/decidim/verifications/id_documents/authorizations_controller.rb +4 -4
- data/app/controllers/decidim/verifications/postal_letter/admin/pending_authorizations_controller.rb +1 -1
- data/app/controllers/decidim/verifications/postal_letter/admin/postages_controller.rb +1 -1
- data/app/controllers/decidim/verifications/postal_letter/authorizations_controller.rb +4 -4
- data/config/locales/ca.yml +1 -0
- data/config/locales/en.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/eu.yml +1 -0
- data/config/locales/fi.yml +1 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/gl.yml +1 -0
- data/config/locales/it.yml +1 -0
- data/config/locales/nl.yml +1 -0
- data/config/locales/pl.yml +1 -0
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/pt.yml +1 -0
- data/config/locales/ru.yml +14 -0
- data/config/locales/sv.yml +1 -0
- data/config/locales/uk.yml +1 -0
- data/lib/decidim/verifications.rb +0 -1
- data/lib/decidim/verifications/version.rb +1 -1
- data/lib/decidim/verifications/workflow_manifest.rb +22 -0
- metadata +10 -12
- data/app/services/decidim/dummy_authorization_handler.rb +0 -62
- data/lib/decidim/verifications/dummy.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 697e2cfabb509f91d19fa63bfb1ed743ca656db92435c0350f84193d55bc4b00
|
4
|
+
data.tar.gz: fa06aa8dfb5423b4fb44f24037e1ffe129bab58b3c24bed93083f49b429e5e42
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c035b21d66752276f869f15bb4b799d26ab311e12e5d4dcb9e62b22c88852bb5b376f36c10e54447dad6bcf54320c164e008a224a79f70fc8f516d8975d0196
|
7
|
+
data.tar.gz: ab12caf3cda046c88458b66399f8218d7d98e71e11ecb42f57f942c5458819e3623e68d9d970c15220228f00296258f151e65fb4e622dff496d245f39b58271e
|
data/README.md
CHANGED
@@ -5,6 +5,24 @@ perform certain privileged actions. This module implements several of those meth
|
|
5
5
|
and also offers a way for installation to implement their custom verification
|
6
6
|
methods.
|
7
7
|
|
8
|
+
There are several use cases for this, such as
|
9
|
+
|
10
|
+
* Sending a SMS code to users to verify that their have a valid cellphone
|
11
|
+
|
12
|
+
* Allowing users to upload a photo or scanned image of their identity document
|
13
|
+
|
14
|
+
* Sending users a code through postal code
|
15
|
+
|
16
|
+
* Allowing users to go to to a physical office and check their documentation
|
17
|
+
|
18
|
+
* Checking some information through other systems (as a Municipal Census on the
|
19
|
+
case of Municipalities, Cities or Towns)
|
20
|
+
|
21
|
+
* Having a list of valid users emails
|
22
|
+
|
23
|
+
Right now Decidim supports only a few of these cases, but we have an internal
|
24
|
+
API where you can program your own kind of authorizations.
|
25
|
+
|
8
26
|
## Introduction
|
9
27
|
|
10
28
|
Each decidim instance is in full control of its authorizations, and can customize:
|
@@ -31,8 +49,12 @@ Decidim implements two type of authorization methods:
|
|
31
49
|
a census API you will need a form with some fields that your users will use to
|
32
50
|
authenticate against a census (for example, an ID and a Postal Code). You'll
|
33
51
|
implement this with a form class. See the documentation for the [parent
|
34
|
-
class][authorization handler base class] or have a look at
|
35
|
-
|
52
|
+
class][authorization handler base class] or have a look at some live examples,
|
53
|
+
such as:
|
54
|
+
|
55
|
+
* [Decidim Barcelona].
|
56
|
+
* [Decidim Terrassa].
|
57
|
+
* [Decidim Sant Cugat].
|
36
58
|
|
37
59
|
To register your handler, use
|
38
60
|
|
@@ -75,6 +97,30 @@ Decidim implements two type of authorization methods:
|
|
75
97
|
* `edit_authorization_path`: This is the entry point to resume an existing
|
76
98
|
authorization process.
|
77
99
|
|
100
|
+
## Authorization options
|
101
|
+
|
102
|
+
Sometimes you want to scope authorizations only to users that meet certain
|
103
|
+
requirements. For example, you might only allow users registered at a certain
|
104
|
+
postal code to be verified and thus perform certain actions.
|
105
|
+
|
106
|
+
You can do this with authorization options. For example, in the case just
|
107
|
+
presented, you should define something like this in your authorization workflow:
|
108
|
+
|
109
|
+
```ruby
|
110
|
+
Decidim::Verifications.register_workflow(:my_workflow) do |workflow|
|
111
|
+
workflow.form = "MyAuthorizationHandler"
|
112
|
+
|
113
|
+
workflow.options do |options|
|
114
|
+
options.attribute :postal_code, type: :string, required: false
|
115
|
+
end
|
116
|
+
end
|
117
|
+
```
|
118
|
+
|
119
|
+
The format of the options you can define is the standard for a virtus attribute,
|
120
|
+
plus an additional `required` (true by default) option were you can choose
|
121
|
+
whether the option is compulsory when configuring the workflow as a permission
|
122
|
+
for an action or not.
|
123
|
+
|
78
124
|
## Custom action authorizers
|
79
125
|
|
80
126
|
Custom action authorizers are an advanced component that can be used in both types of
|
@@ -150,4 +196,7 @@ See [Decidim](https://github.com/decidim/decidim).
|
|
150
196
|
See [Decidim](https://github.com/decidim/decidim).
|
151
197
|
|
152
198
|
[authorization handler base class]: https://github.com/decidim/decidim/blob/master/decidim-core/app/services/decidim/authorization_handler.rb
|
153
|
-
|
199
|
+
|
200
|
+
[Decidim Barcelona]: https://github.com/AjuntamentdeBarcelona/decidim-barcelona/blob/master/app/services/census_authorization_handler.rb
|
201
|
+
[Decidim Terrassa]: https://github.com/AjuntamentDeTerrassa/decidim-terrassa/blob/master/app/services/census_authorization_handler.rb
|
202
|
+
[Decidim Sant Cugat]: https://github.com/AjuntamentdeSantCugat/decidim-sant_cugat/blob/master/app/services/census_authorization_handler.rb
|
@@ -13,13 +13,13 @@ module Decidim
|
|
13
13
|
before_action :load_pending_authorization
|
14
14
|
|
15
15
|
def new
|
16
|
-
|
16
|
+
enforce_permission_to :update, :authorization, authorization: @pending_authorization
|
17
17
|
|
18
18
|
@form = InformationForm.new
|
19
19
|
end
|
20
20
|
|
21
21
|
def create
|
22
|
-
|
22
|
+
enforce_permission_to :update, :authorization, authorization: @pending_authorization
|
23
23
|
|
24
24
|
@form = InformationForm.from_params(params)
|
25
25
|
|
@@ -13,7 +13,7 @@ module Decidim
|
|
13
13
|
before_action :load_pending_authorization
|
14
14
|
|
15
15
|
def create
|
16
|
-
|
16
|
+
enforce_permission_to :update, :authorization, authorization: @pending_authorization
|
17
17
|
|
18
18
|
@form = InformationRejectionForm.from_model(@pending_authorization)
|
19
19
|
|
@@ -12,13 +12,13 @@ module Decidim
|
|
12
12
|
before_action :load_authorization
|
13
13
|
|
14
14
|
def new
|
15
|
-
|
15
|
+
enforce_permission_to :create, :authorization, authorization: @authorization
|
16
16
|
|
17
17
|
@form = UploadForm.new
|
18
18
|
end
|
19
19
|
|
20
20
|
def create
|
21
|
-
|
21
|
+
enforce_permission_to :create, :authorization, authorization: @authorization
|
22
22
|
|
23
23
|
@form = UploadForm.from_params(params.merge(user: current_user))
|
24
24
|
|
@@ -36,13 +36,13 @@ module Decidim
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def edit
|
39
|
-
|
39
|
+
enforce_permission_to :update, :authorization, authorization: @authorization
|
40
40
|
|
41
41
|
@form = UploadForm.from_model(@authorization)
|
42
42
|
end
|
43
43
|
|
44
44
|
def update
|
45
|
-
|
45
|
+
enforce_permission_to :update, :authorization, authorization: @authorization
|
46
46
|
|
47
47
|
@form = UploadForm.from_params(
|
48
48
|
params.merge(
|
@@ -13,7 +13,7 @@ module Decidim
|
|
13
13
|
before_action :load_pending_authorization
|
14
14
|
|
15
15
|
def create
|
16
|
-
|
16
|
+
enforce_permission_to :update, :authorization, authorization: @pending_authorization
|
17
17
|
|
18
18
|
@form = PostageForm.from_model(@pending_authorization)
|
19
19
|
|
@@ -9,13 +9,13 @@ module Decidim
|
|
9
9
|
before_action :load_authorization
|
10
10
|
|
11
11
|
def new
|
12
|
-
|
12
|
+
enforce_permission_to :create, :authorization, authorization: @authorization
|
13
13
|
|
14
14
|
@form = AddressForm.new
|
15
15
|
end
|
16
16
|
|
17
17
|
def create
|
18
|
-
|
18
|
+
enforce_permission_to :create, :authorization, authorization: @authorization
|
19
19
|
|
20
20
|
@form = AddressForm.from_params(params.merge(user: current_user))
|
21
21
|
|
@@ -33,13 +33,13 @@ module Decidim
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def edit
|
36
|
-
|
36
|
+
enforce_permission_to :update, :authorization, authorization: @authorization
|
37
37
|
|
38
38
|
@form = ConfirmationForm.from_params(params)
|
39
39
|
end
|
40
40
|
|
41
41
|
def update
|
42
|
-
|
42
|
+
enforce_permission_to :update, :authorization, authorization: @authorization
|
43
43
|
|
44
44
|
@form = ConfirmationForm.from_params(params)
|
45
45
|
|
data/config/locales/ca.yml
CHANGED
@@ -51,6 +51,7 @@ ca:
|
|
51
51
|
success: Has estat autoritzat amb èxit.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Verifiqueu contra un altre exemple de controlador d'autorització
|
54
55
|
dummy_authorization_handler: Verificar contra l'autorització d'exemple
|
55
56
|
dummy_authorization_workflow: Verificar contra l'exemple de flux d'autorització
|
56
57
|
id_documents: Verifica't carregant el teu document d'identitat
|
data/config/locales/en.yml
CHANGED
@@ -52,6 +52,7 @@ en:
|
|
52
52
|
success: You've been successfully authorized.
|
53
53
|
first_login:
|
54
54
|
actions:
|
55
|
+
another_dummy_authorization_handler: Verify against another example of authorization handler
|
55
56
|
dummy_authorization_handler: Verify against the example authorization handler
|
56
57
|
dummy_authorization_workflow: Verify against the example authorization workflow
|
57
58
|
id_documents: Get verified by uploading your identity document
|
data/config/locales/es.yml
CHANGED
@@ -51,6 +51,7 @@ es:
|
|
51
51
|
success: Has sido autorizado/a correctamente.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Verificar contra otro ejemplo de controlador de autorización
|
54
55
|
dummy_authorization_handler: Verificar contra el gestor de autorización de ejemplo
|
55
56
|
dummy_authorization_workflow: Verificar contra el flujo de autorización de ejemplo
|
56
57
|
id_documents: Verifícate subiendo tu documento de identidad
|
data/config/locales/eu.yml
CHANGED
@@ -51,6 +51,7 @@ eu:
|
|
51
51
|
success: Ongi baimendu duzu.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Egiaztatu baimenen kudeatzailearen beste adibide baten aurka
|
54
55
|
dummy_authorization_handler: Egiaztatu adibide-baimenaren kudeatzailearen aurka
|
55
56
|
dummy_authorization_workflow: Egiaztatu baimenen laneko fluxuaren aurka
|
56
57
|
id_documents: Egiaztatu zure identifikazio dokumentua kargatzen
|
data/config/locales/fi.yml
CHANGED
@@ -51,6 +51,7 @@ fi:
|
|
51
51
|
success: Tilisi on onnistuneesti vahvistettu.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Varmista toinen esimerkki valtuutuksen käsittelijästä
|
54
55
|
dummy_authorization_handler: Vahvista tili esimerkkivaltuuttajan avulla
|
55
56
|
dummy_authorization_workflow: Vahvista esimerkkivaltuutuksen työnkulkuprosessin kautta
|
56
57
|
id_documents: Vahvista tilisi lataamalla henkilöllisyystodistuksesi
|
data/config/locales/fr.yml
CHANGED
@@ -51,6 +51,7 @@ fr:
|
|
51
51
|
success: Vous avez été autorisé avec succès.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Vérifier avec un autre exemple de gestionnaire d'autorisation
|
54
55
|
dummy_authorization_handler: Vérifier en comparant avec l'exemple du gestionnaire d'autorisation
|
55
56
|
dummy_authorization_workflow: Vérifiez par rapport à l'exemple de procédure d'autorisation
|
56
57
|
id_documents: Soyez vérifié en téléchargeant votre document d'identité
|
data/config/locales/gl.yml
CHANGED
@@ -51,6 +51,7 @@ gl:
|
|
51
51
|
success: Autorizouse con éxito.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Verifique contra outro exemplo de controlador de autorización
|
54
55
|
dummy_authorization_handler: Verifique contra o controlador de autorización de exemplo
|
55
56
|
dummy_authorization_workflow: Verifique contra o fluxo de traballo de autorización de exemplo
|
56
57
|
id_documents: Verifique a carga do documento de identidade
|
data/config/locales/it.yml
CHANGED
@@ -51,6 +51,7 @@ it:
|
|
51
51
|
success: Sei stato autorizzato con successo.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Verificare contro un altro esempio di gestore di autorizzazioni
|
54
55
|
dummy_authorization_handler: Verificare contro il gestore di autorizzazione di esempio
|
55
56
|
dummy_authorization_workflow: Verificare il flusso di lavoro di autorizzazione di esempio
|
56
57
|
id_documents: Ottieni la verifica caricando il tuo documento di identità
|
data/config/locales/nl.yml
CHANGED
@@ -51,6 +51,7 @@ nl:
|
|
51
51
|
success: U bent geautoriseerd.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Controleer tegen een ander voorbeeld van autorisatieaanduiding
|
54
55
|
dummy_authorization_handler: Verifieer met het voorbeeld van de autorisatieaanduiding
|
55
56
|
dummy_authorization_workflow: Controleer aan de hand van het machtigingsworkflow voorbeeld
|
56
57
|
id_documents: Wordt geverifieerd door uw identiteitsdocument te uploaden
|
data/config/locales/pl.yml
CHANGED
@@ -51,6 +51,7 @@ pl:
|
|
51
51
|
success: Pomyślnie autoryzowano.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Sprawdź na przykładzie innego przykładu procedury obsługi autoryzacji
|
54
55
|
dummy_authorization_handler: Sprawdź na przykładzie przykładowej procedury autoryzacji
|
55
56
|
dummy_authorization_workflow: Sprawdź w przykładowym przepływie pracy autoryzacji
|
56
57
|
id_documents: Uzyskaj weryfikację, przesyłając swój dokument tożsamości
|
data/config/locales/pt-BR.yml
CHANGED
@@ -51,6 +51,7 @@ pt-BR:
|
|
51
51
|
success: Você foi autorizado com sucesso.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Verificar contra outro exemplo de manipulador de autorização
|
54
55
|
dummy_authorization_handler: Verifique contra o manipulador de autorização de exemplo
|
55
56
|
dummy_authorization_workflow: Verifique o exemplo de fluxo de trabalho de autorização
|
56
57
|
id_documents: Seja verificado ao fazer o upload do documento de identidade
|
data/config/locales/pt.yml
CHANGED
@@ -51,6 +51,7 @@ pt:
|
|
51
51
|
success: Você foi autorizado com sucesso.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Verificar contra outro exemplo de manipulador de autorização
|
54
55
|
dummy_authorization_handler: Verifique contra o manipulador de autorização de exemplo
|
55
56
|
dummy_authorization_workflow: Verifique o exemplo de fluxo de trabalho de autorização
|
56
57
|
id_documents: Seja verificado ao fazer o upload do documento de identidade
|
data/config/locales/ru.yml
CHANGED
@@ -9,6 +9,13 @@ ru:
|
|
9
9
|
document_type: Вид вашего документа
|
10
10
|
user: Участник
|
11
11
|
verification_attachment: Скан вашего документа
|
12
|
+
postal_letter_address:
|
13
|
+
full_address: Полный адрес
|
14
|
+
postal_letter_confirmation:
|
15
|
+
verification_code: Проверочный код
|
16
|
+
postal_letter_postage:
|
17
|
+
full_address: Полный адрес
|
18
|
+
verification_code: Проверочный код
|
12
19
|
decidim:
|
13
20
|
admin:
|
14
21
|
menu:
|
@@ -44,6 +51,7 @@ ru:
|
|
44
51
|
success: Вы успешно подтвердили свою личность.
|
45
52
|
first_login:
|
46
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Проведите подтверждение, сравнив с другим примером подтверждения личности
|
47
55
|
dummy_authorization_handler: Проведите подтверждение, сравнив с примером подтверждения личности
|
48
56
|
dummy_authorization_workflow: Проведите подтверждение, сравнив с примером пути подтверждения личности
|
49
57
|
id_documents: Подтвердите личность, загрузив документ, удостоверяющий её
|
@@ -55,6 +63,12 @@ ru:
|
|
55
63
|
authorize_with: Подтвердить личность с помощью %{authorizer}
|
56
64
|
skip_verification: Вы можете пока что пропустить это и %{link}
|
57
65
|
start_exploring: начать изучать
|
66
|
+
dummy_authorization:
|
67
|
+
extra_explanation:
|
68
|
+
one: Участие ограничено участниками с почтовым кодом %{postal_codes}.
|
69
|
+
few: 'Участие ограничено участниками с почтовыми кодами %{postal_codes}.'
|
70
|
+
many: 'Участие ограничено участниками с почтовыми кодами %{postal_codes}.'
|
71
|
+
other: 'Участие ограничено участниками с почтовыми кодами %{postal_codes}.'
|
58
72
|
id_documents:
|
59
73
|
admin:
|
60
74
|
confirmations:
|
data/config/locales/sv.yml
CHANGED
@@ -51,6 +51,7 @@ sv:
|
|
51
51
|
success: Du har godkänts.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Verifiera mot ett annat exempel på behörighetshanteraren
|
54
55
|
dummy_authorization_handler: Verifiera mot exemplet behörighetshanteraren
|
55
56
|
dummy_authorization_workflow: Verifiera mot arbetsflödet för godkännande av exempel
|
56
57
|
id_documents: Få verifierad genom att ladda upp ditt identitetsdokument
|
data/config/locales/uk.yml
CHANGED
@@ -51,6 +51,7 @@ uk:
|
|
51
51
|
success: Ви успішно підтвердили свою особу.
|
52
52
|
first_login:
|
53
53
|
actions:
|
54
|
+
another_dummy_authorization_handler: Підтвердьте, порівнявши з іншим прикладом підтвердження своєї особи
|
54
55
|
dummy_authorization_handler: Підтвердьте, порівнявши з прикладом підтвердження своєї особи
|
55
56
|
dummy_authorization_workflow: Підтвердьте, порівнявши з прикладом підтвердження своєї особи
|
56
57
|
id_documents: Підтвердіть особу, завантаживши ваш документ
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "decidim/settings_manifest"
|
4
|
+
|
3
5
|
module Decidim
|
4
6
|
module Verifications
|
5
7
|
autoload :DefaultActionAuthorizer, "decidim/verifications/default_action_authorizer"
|
@@ -63,6 +65,26 @@ module Decidim
|
|
63
65
|
DefaultActionAuthorizer
|
64
66
|
end
|
65
67
|
end
|
68
|
+
|
69
|
+
# Public: Adds configurable settings for this verification workflow. It
|
70
|
+
# uses the DSL specified under `Decidim::SettingsManifest`.
|
71
|
+
#
|
72
|
+
# &block - The DSL present on `Decidim::SettingsManifest`
|
73
|
+
#
|
74
|
+
# Examples:
|
75
|
+
#
|
76
|
+
# workflow.options do |options|
|
77
|
+
# options.attribute :minimum_age, type: :integer, default: 18
|
78
|
+
# end
|
79
|
+
#
|
80
|
+
# Returns nothing.
|
81
|
+
def options
|
82
|
+
@options ||= SettingsManifest.new
|
83
|
+
|
84
|
+
yield(@options) if block_given?
|
85
|
+
|
86
|
+
@options
|
87
|
+
end
|
66
88
|
end
|
67
89
|
end
|
68
90
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-verifications
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Rodriguez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: decidim-core
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.12.0.pre
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.12.0.pre
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: decidim-admin
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.12.0.pre
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.12.0.pre
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: decidim-dev
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.12.0.pre
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.12.0.pre
|
55
55
|
description: Several verification methods for your decidim instance
|
56
56
|
email:
|
57
57
|
- deivid.rodriguez@riseup.net
|
@@ -82,7 +82,6 @@ files:
|
|
82
82
|
- app/presenters/decidim/verifications/postal_letter/authorization_presenter.rb
|
83
83
|
- app/queries/decidim/verifications/authorizations.rb
|
84
84
|
- app/services/decidim/authorization_handler.rb
|
85
|
-
- app/services/decidim/dummy_authorization_handler.rb
|
86
85
|
- app/uploaders/decidim/verifications/attachment_uploader.rb
|
87
86
|
- app/views/decidim/verifications/authorizations/_granted_authorization.html.erb
|
88
87
|
- app/views/decidim/verifications/authorizations/first_login.html.erb
|
@@ -115,7 +114,6 @@ files:
|
|
115
114
|
- lib/decidim/verifications.rb
|
116
115
|
- lib/decidim/verifications/adapter.rb
|
117
116
|
- lib/decidim/verifications/default_action_authorizer.rb
|
118
|
-
- lib/decidim/verifications/dummy.rb
|
119
117
|
- lib/decidim/verifications/engine.rb
|
120
118
|
- lib/decidim/verifications/id_documents.rb
|
121
119
|
- lib/decidim/verifications/id_documents/admin.rb
|
@@ -146,9 +144,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
146
144
|
version: '0'
|
147
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
146
|
requirements:
|
149
|
-
- - "
|
147
|
+
- - ">"
|
150
148
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
149
|
+
version: 1.3.1
|
152
150
|
requirements: []
|
153
151
|
rubyforge_project:
|
154
152
|
rubygems_version: 2.7.6
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
# An example implementation of an AuthorizationHandler to be used in tests.
|
5
|
-
class DummyAuthorizationHandler < AuthorizationHandler
|
6
|
-
attribute :document_number, String
|
7
|
-
attribute :postal_code, String
|
8
|
-
attribute :birthday, Date
|
9
|
-
|
10
|
-
validates :document_number, presence: true
|
11
|
-
validate :valid_document_number
|
12
|
-
|
13
|
-
def metadata
|
14
|
-
super.merge(document_number: document_number, postal_code: postal_code)
|
15
|
-
end
|
16
|
-
|
17
|
-
def unique_id
|
18
|
-
document_number
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def valid_document_number
|
24
|
-
errors.add(:document_number, :invalid) unless document_number.to_s.end_with?("X")
|
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
|
61
|
-
end
|
62
|
-
end
|
@@ -1,7 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
Decidim::Verifications.register_workflow(:dummy_authorization_handler) do |workflow|
|
4
|
-
workflow.form = "Decidim::DummyAuthorizationHandler"
|
5
|
-
workflow.action_authorizer = "Decidim::DummyAuthorizationHandler::ActionAuthorizer"
|
6
|
-
workflow.expires_in = 1.hour
|
7
|
-
end
|