decidim 0.23.5 → 0.24.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Rakefile +1 -0
- data/docs/README.adoc +74 -0
- data/docs/antora.yml +7 -0
- data/docs/modules/configure/pages/environment_variables.adoc +69 -0
- data/docs/modules/configure/pages/index.adoc +16 -0
- data/docs/modules/configure/pages/initializer.adoc +376 -0
- data/docs/modules/customize/assets/images/header-snippet.png +0 -0
- data/docs/modules/customize/assets/images/menu.png +0 -0
- data/docs/modules/customize/assets/images/organization-colors.png +0 -0
- data/docs/modules/customize/pages/authorizations.adoc +22 -0
- data/docs/{customization/code.md → modules/customize/pages/code.adoc} +12 -9
- data/docs/{customization/gemfile.md → modules/customize/pages/gemfile.adoc} +5 -4
- data/docs/modules/customize/pages/images.adoc +7 -0
- data/docs/modules/customize/pages/javascript.adoc +59 -0
- data/docs/modules/customize/pages/menu.adoc +25 -0
- data/docs/modules/customize/pages/oauth.adoc +33 -0
- data/docs/modules/customize/pages/styles.adoc +64 -0
- data/docs/modules/customize/pages/texts.adoc +30 -0
- data/docs/modules/customize/pages/users_registration_mode.adoc +17 -0
- data/docs/{customization/views.md → modules/customize/pages/views.adoc} +13 -13
- data/docs/modules/develop/assets/images/barcelona.png +0 -0
- data/docs/modules/develop/assets/images/helsinki.png +0 -0
- data/docs/modules/develop/assets/images/indices.png +0 -0
- data/docs/{advanced/api.md → modules/develop/pages/api.adoc} +2 -2
- data/docs/{advanced/authorship.md → modules/develop/pages/authorable.adoc} +5 -5
- data/docs/modules/develop/pages/c4_component.adoc +91 -0
- data/docs/modules/develop/pages/c4_container.adoc +42 -0
- data/docs/modules/develop/pages/c4_context.adoc +35 -0
- data/docs/{advanced/components.md → modules/develop/pages/components.adoc} +47 -10
- data/docs/{advanced/content_blocks.md → modules/develop/pages/content_blocks.adoc} +16 -13
- data/docs/{advanced/content_processors.md → modules/develop/pages/content_processors.adoc} +25 -19
- data/docs/modules/develop/pages/data-picker.adoc +85 -0
- data/docs/modules/develop/pages/deploy.adoc +15 -0
- data/docs/modules/develop/pages/docker.adoc +12 -0
- data/docs/{advanced/embeddable.md → modules/develop/pages/embeddable.adoc} +6 -6
- data/docs/{advanced/endorsable.md → modules/develop/pages/endorsable.adoc} +31 -25
- data/docs/{advanced/fixing_locales.md → modules/develop/pages/fixing_locales.adoc} +36 -23
- data/docs/{advanced/followers.md → modules/develop/pages/followable.adoc} +9 -8
- data/docs/modules/develop/pages/guide.adoc +16 -0
- data/docs/modules/develop/pages/guide_architecture.adoc +17 -0
- data/docs/modules/develop/pages/guide_changelog.adoc +8 -0
- data/docs/modules/develop/pages/guide_commands.adoc +86 -0
- data/docs/modules/develop/pages/guide_development_app.adoc +44 -0
- data/docs/modules/develop/pages/guide_development_with_custom_seed_data.adoc +31 -0
- data/docs/modules/develop/pages/guide_development_with_localhost_ssl.adoc +63 -0
- data/docs/modules/develop/pages/guide_example_apps.adoc +59 -0
- data/docs/modules/develop/pages/guide_git_conventions.adoc +75 -0
- data/docs/modules/develop/pages/guide_github_projects.adoc +42 -0
- data/docs/modules/develop/pages/guide_semver.adoc +7 -0
- data/docs/{advanced/how_to_fix_metrics.md → modules/develop/pages/how_to_fix_metrics.adoc} +76 -59
- data/docs/modules/develop/pages/machine_translations.adoc +42 -0
- data/docs/modules/develop/pages/managing_translations_i18n.adoc +24 -0
- data/docs/modules/develop/pages/maps.adoc +499 -0
- data/docs/modules/develop/pages/metrics.adoc +119 -0
- data/docs/{advanced/modules.md → modules/develop/pages/modules.adoc} +16 -6
- data/docs/{advanced/newsletter_templates.md → modules/develop/pages/newsletter_templates.adoc} +12 -10
- data/docs/{advanced/notifications.md → modules/develop/pages/notifications.adoc} +40 -38
- data/docs/{advanced/open-data.md → modules/develop/pages/open-data.adoc} +4 -3
- data/docs/modules/develop/pages/permissions.adoc +92 -0
- data/docs/{advanced/profiling.md → modules/develop/pages/profiling.adoc} +15 -12
- data/docs/modules/develop/pages/releases.adoc +148 -0
- data/docs/modules/develop/pages/reportable.adoc +31 -0
- data/docs/modules/develop/pages/security.adoc +33 -0
- data/docs/{advanced/share_tokens.md → modules/develop/pages/share_tokens.adoc} +18 -14
- data/docs/{advanced/templates.md → modules/develop/pages/templates.adoc} +14 -12
- data/docs/{advanced/testing.md → modules/develop/pages/testing.adoc} +21 -20
- data/docs/{advanced/activity_log.md → modules/develop/pages/traceable.adoc} +31 -26
- data/docs/modules/develop/pages/turbolinks.adoc +7 -0
- data/docs/{advanced/view_hooks.md → modules/develop/pages/view_hooks.adoc} +29 -23
- data/docs/modules/develop/pages/view_models_aka_cells.adoc +105 -0
- data/docs/modules/install/pages/checklist.adoc +39 -0
- data/docs/modules/install/pages/index.adoc +148 -0
- data/docs/{manual-installation.md → modules/install/pages/manual.adoc} +54 -42
- data/docs/modules/install/pages/update.adoc +95 -0
- data/docs/{services/activejob.md → modules/services/pages/activejob.adoc} +3 -3
- data/docs/modules/services/pages/elections_bulletin_board.adoc +52 -0
- data/docs/{services/etherpad.md → modules/services/pages/etherpad.adoc} +15 -12
- data/docs/modules/services/pages/maps.adoc +311 -0
- data/docs/modules/services/pages/smtp.adoc +10 -0
- data/docs/modules/services/pages/social_providers.adoc +122 -0
- data/lib/decidim/gem_manager.rb +5 -5
- data/lib/decidim/version.rb +1 -1
- metadata +135 -98
- data/README.md +0 -157
- data/docs/advanced/add_authorizable_action.md +0 -63
- data/docs/advanced/adding_fixtures_aka_dummy_content.md +0 -9
- data/docs/advanced/data-picker.md +0 -83
- data/docs/advanced/deploy.md +0 -9
- data/docs/advanced/how_to_create_a_module.md +0 -9
- data/docs/advanced/machine_translation_service.md +0 -12
- data/docs/advanced/managing_translations_i18n.md +0 -24
- data/docs/advanced/metrics.md +0 -114
- data/docs/advanced/permissions.md +0 -23
- data/docs/advanced/releases.md +0 -114
- data/docs/advanced/tradeoffs.md +0 -14
- data/docs/advanced/view_models_aka_cells.md +0 -99
- data/docs/checklist.md +0 -55
- data/docs/customization/authorizations.md +0 -5
- data/docs/customization/images.md +0 -7
- data/docs/customization/javascript.md +0 -9
- data/docs/customization/machine_translations.md +0 -30
- data/docs/customization/maps.md +0 -610
- data/docs/customization/oauth.md +0 -50
- data/docs/customization/styles.md +0 -11
- data/docs/customization/texts.md +0 -27
- data/docs/customization/users_registration_mode.md +0 -17
- data/docs/development_guide.md +0 -166
- data/docs/getting_started.md +0 -191
- data/docs/possible_flows_for_proposal.png +0 -0
- data/docs/services/analytics.md +0 -23
- data/docs/services/elections_bulletin_board.md +0 -38
- data/docs/services/maps.md +0 -362
- data/docs/services/social_providers.md +0 -98
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47a41ba176ab7d11fea028cea53000031f6cf0570764636d5f635fee260ce78b
|
4
|
+
data.tar.gz: 351f5c05ff9976689a70fb8804be94f85f7650482ae5ae82cbc7156ec18cdd70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: acef60e0979e0a972a93524512ef5f2c9a8732dae9ef431ab59017ac91bce0c9abd570c3ebf0bc2332e1681e06ab09cceb75f8b00693920360c88155c74c24ef
|
7
|
+
data.tar.gz: d01dca2c73fdeaaa6f942e177f756a160a1e482bfc3824f77d36844ad90f3887398bdba7abcf0195d93aebbd9708f573ddeaf4ee93491df0cac7d8710a84d5e4
|
data/Rakefile
CHANGED
data/docs/README.adoc
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
= Decidim Developer Documentation
|
2
|
+
|
3
|
+
== What's this?
|
4
|
+
|
5
|
+
This is the internal Decidim documentation.
|
6
|
+
If you want to see it in a nice UI you can do it at the https://docs.decidim.org[Decidim Documentation Site].
|
7
|
+
Some of the sections are available on https://github.com/decidim/documentation[Decidim Documentation repository].
|
8
|
+
|
9
|
+
== How this works?
|
10
|
+
|
11
|
+
This is made with https://antora.org/[Antora].
|
12
|
+
It uses https://asciidoc.org/[AsciiDoc] mark-up document format.
|
13
|
+
It's pretty similar to Markdown, although is more standarized and can do more complex things.
|
14
|
+
Read more about https://asciidoctor.org/docs/asciidoc-vs-markdown/[Markdown vs AsciiDoc].
|
15
|
+
|
16
|
+
If you want to convert from Markdown to AsciiDoc:
|
17
|
+
|
18
|
+
. online pandoc conversor or
|
19
|
+
. using kramdoc:
|
20
|
+
|
21
|
+
[source,bash]
|
22
|
+
----
|
23
|
+
gem install kramdown-asciidoc
|
24
|
+
kramdoc --format=GFM --output=your-doc.adoc --wrap=ventilate your-doc.md
|
25
|
+
----
|
26
|
+
|
27
|
+
The nice thing about Antora is that you can have multi-repositories for your documentation, so we have some technical sections in this repository (like Install, Customize and Develop) and other sections that are not for developers or system administrators on the https://github.com/decidim/documentation[other repository].
|
28
|
+
|
29
|
+
== Local development
|
30
|
+
|
31
|
+
If you want to try changes in this folder and how it'd be shown in https://docs.decidim.org[Decidim Documentation site], you need to do these next steps:
|
32
|
+
|
33
|
+
. Clone the repository
|
34
|
+
. Install dependencies
|
35
|
+
. Change the antora-playbook.yml url key in source
|
36
|
+
. Build the antora playbook
|
37
|
+
. Open the generated website with your web browser
|
38
|
+
|
39
|
+
In detail each one of these steps are:
|
40
|
+
|
41
|
+
[source,bash]
|
42
|
+
----
|
43
|
+
# 1. Clone the repository
|
44
|
+
git clone https://github.com/decidim/documentation
|
45
|
+
# 2. Install dependencies
|
46
|
+
npm install
|
47
|
+
# 3. Change the antora-playbook.yml url key in source
|
48
|
+
# 4. Build the antora playbook
|
49
|
+
npm run build
|
50
|
+
# 5. Open the generated website with your web browser
|
51
|
+
xdg-open build/site/index.html
|
52
|
+
----
|
53
|
+
|
54
|
+
Regarding "3. Change the antora-playbook.yml url key in source", if this is the configuration at antora-playbook.yml:
|
55
|
+
|
56
|
+
[source,yaml]
|
57
|
+
----
|
58
|
+
- url: https://github.com/decidim/decidim
|
59
|
+
start_path: docs
|
60
|
+
branches: develop
|
61
|
+
----
|
62
|
+
|
63
|
+
Then the result would be:
|
64
|
+
|
65
|
+
[source,yaml]
|
66
|
+
----
|
67
|
+
- url: /home/youruser/Work/decidim/decidim
|
68
|
+
start_path: docs
|
69
|
+
branches: develop
|
70
|
+
----
|
71
|
+
|
72
|
+
== Add a new link in the sidebar
|
73
|
+
|
74
|
+
For adding a new link in the sidebar you need to add it in https://raw.githubusercontent.com/decidim/documentation/master/en/modules/ROOT/nav.adoc[nav.adoc file]
|
data/docs/antora.yml
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
= Environment Variables
|
2
|
+
|
3
|
+
We try to let most of the things defined through Environment Variables, as https://12factor.net/config[12factor applications's config]. You'll need to configure through your hosting provider (for example in Heroku), through a gem like `figaro` or through docker-compose `env_file`.
|
4
|
+
|
5
|
+
.Decidim Env Vars
|
6
|
+
|===
|
7
|
+
|Name |Value
|
8
|
+
|
9
|
+
|DATABASE_HOST
|
10
|
+
|Hostname for the Postgres database. Default is `localhost`.
|
11
|
+
|
12
|
+
|DATABASE_PASSWORD
|
13
|
+
|Password for the Postgres database
|
14
|
+
|
15
|
+
|DATABASE_PORT
|
16
|
+
|Port for the Postgres database. Default is `5432`.
|
17
|
+
|
18
|
+
|DATABASE_USERNAME
|
19
|
+
|Username for the Postgres database
|
20
|
+
|
21
|
+
|GEOCODER_API_KEY
|
22
|
+
|API key for Geocoder HERE.com
|
23
|
+
|
24
|
+
|OMNIAUTH_FACEBOOK_APP_ID
|
25
|
+
|App ID for enabling access through Facebook.com accounts. See xref:services:social_providers.adoc[Social Providers].
|
26
|
+
|
27
|
+
|OMNIAUTH_FACEBOOK_APP_SECRET
|
28
|
+
|App Secret for enabling access through Facebook.com accounts. See xref:services:social_providers.adoc[Social Providers].
|
29
|
+
|
30
|
+
|OMNIAUTH_GOOGLE_CLIENT_ID
|
31
|
+
|Client ID for enabling access through Google.com accounts. See xref:services:social_providers.adoc[Social Providers].
|
32
|
+
|
33
|
+
|OMNIAUTH_GOOGLE_CLIENT_SECRET
|
34
|
+
|Client Secret for enabling access through Google.com accounts. See xref:services:social_providers.adoc[Social Providers].
|
35
|
+
|
36
|
+
|OMNIAUTH_TWITTER_API_KEY
|
37
|
+
|API Key for enabling access through Google.com accounts. See xref:services:social_providers.adoc[Social Providers].
|
38
|
+
|
39
|
+
|OMNIAUTH_TWITTER_API_SECRET
|
40
|
+
|API Secret for enabling access through Google.com accounts. See xref:services:social_providers.adoc[Social Providers].
|
41
|
+
|
42
|
+
|PORT
|
43
|
+
|Specifies the `port` that Puma will listen on to receive requests. Default is 3000.
|
44
|
+
|
45
|
+
|RAILS_ENV
|
46
|
+
|Environment for Ruby on Rails. If it's on your local machine for development, then it should be `development`. If it's on server it should be `production`. Please take care that this has security implications. You DON'T want to be running a production application on development mode.
|
47
|
+
|
48
|
+
|RAILS_LOG_TO_STDOUT
|
49
|
+
|If true it'll show the log contents on the shell Standard Out. It's special relevant on certain hosting providers (for example, Heroku or Docker). It's also part of https://12factor.net/logs[12factor's recomendations].
|
50
|
+
|
51
|
+
|SECRET_KEY_BASE
|
52
|
+
|Secret key base for the Application. It's specially important that this is kept secret from the outside word; do NOT publish it on GitHub/GitLab/BitBucket.
|
53
|
+
|
54
|
+
|SMTP_ADDRESS
|
55
|
+
|Hostname for the SMTP server, for sending emails. See xref:services:smtp.adoc[SMTP]
|
56
|
+
|
57
|
+
|SMTP_DOMAIN
|
58
|
+
|Domain for the SMTP server, for sending emails. See xref:services:smtp.adoc[SMTP]
|
59
|
+
|
60
|
+
|SMTP_PASSWORD
|
61
|
+
|Password for the SMTP server, for sending emails. See xref:services:smtp.adoc[SMTP]
|
62
|
+
|
63
|
+
|SMTP_USERNAME
|
64
|
+
|Username for the SMTP server, for sending emails. See xref:services:smtp.adoc[SMTP]
|
65
|
+
|
66
|
+
|===
|
67
|
+
|
68
|
+
Please take care that all these configurations would be the defaults but *some of these could also be changed on a Multitenant's System configuration* (for instance SMTP or OAUTH providers).
|
69
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
= Configuring
|
2
|
+
|
3
|
+
Decidim is a Ruby on Rails library, and as such we try to follow their conventions. Please read https://guides.rubyonrails.org/configuring.html[Configuring Rails Applications].
|
4
|
+
|
5
|
+
Just as a reminder, these files are important:
|
6
|
+
|
7
|
+
* config/database.yml
|
8
|
+
* config/secrets.yml
|
9
|
+
|
10
|
+
Although most of these settings you can change them through xref:configure:environment_variables.adoc[Environment Variables].
|
11
|
+
|
12
|
+
You also have more settings in:
|
13
|
+
|
14
|
+
* xref:configure:initializer.adoc[Decidim initializer file].
|
15
|
+
* System panel.
|
16
|
+
|
@@ -0,0 +1,376 @@
|
|
1
|
+
= Initializer
|
2
|
+
|
3
|
+
There are some settings that you'll need to change in the `config/initializer/decidim.rb` file.
|
4
|
+
|
5
|
+
This is where you can change the behaviour defined on the diferent components (most notably from `decidim-core`).
|
6
|
+
|
7
|
+
After making changes to this file you'll need to also restart your application server.
|
8
|
+
|
9
|
+
== Application name
|
10
|
+
|
11
|
+
The name of the application.
|
12
|
+
|
13
|
+
[source,ruby]
|
14
|
+
....
|
15
|
+
config.application_name = "My Application Name"
|
16
|
+
....
|
17
|
+
|
18
|
+
== Default mailer sender
|
19
|
+
|
20
|
+
The email that will be used as sender in all emails from Decidim.
|
21
|
+
|
22
|
+
[source,ruby]
|
23
|
+
....
|
24
|
+
config.mailer_sender = "change-me@domain.org"
|
25
|
+
....
|
26
|
+
|
27
|
+
== Available locales
|
28
|
+
|
29
|
+
Sets the list of available locales for the whole application.
|
30
|
+
|
31
|
+
When an organization is created through the System area, system admins will
|
32
|
+
be able to choose the available languages for that organization. That list
|
33
|
+
of languages will be equal or a subset of the list in this file.
|
34
|
+
|
35
|
+
[source,ruby]
|
36
|
+
....
|
37
|
+
config.available_locales = [:en, :ca, :es]
|
38
|
+
....
|
39
|
+
|
40
|
+
== Restrict system access
|
41
|
+
|
42
|
+
For extra security, restrict access to the system part with an authorized ip list.
|
43
|
+
You can use a single ip like ("1.2.3.4"), or an ip subnet like ("1.2.3.4/24")
|
44
|
+
You may specify multiple ip in an array ["1.2.3.4", "1.2.3.4/24"]
|
45
|
+
|
46
|
+
[source,ruby]
|
47
|
+
....
|
48
|
+
config.system_accesslist_ips = ["127.0.0.1"]
|
49
|
+
....
|
50
|
+
|
51
|
+
== Default locale
|
52
|
+
|
53
|
+
Sets the default locale for new organizations. When creating a new
|
54
|
+
organization from the System area, system admins will be able to overwrite
|
55
|
+
this value for that specific organization.
|
56
|
+
|
57
|
+
[source,ruby]
|
58
|
+
....
|
59
|
+
config.default_locale = :en
|
60
|
+
....
|
61
|
+
|
62
|
+
== Content Processors
|
63
|
+
|
64
|
+
Defines a list of custom content processors. They are used to parse and
|
65
|
+
render specific tags inside some user-provided content. Check the xref:develop:content_processor.adoc[Content Processor]
|
66
|
+
docs for more info.
|
67
|
+
|
68
|
+
[source,ruby]
|
69
|
+
....
|
70
|
+
config.content_processors = []
|
71
|
+
....
|
72
|
+
|
73
|
+
== Force SSL
|
74
|
+
|
75
|
+
Whether SSL should be enabled or not. Recommended for extra security.
|
76
|
+
|
77
|
+
[source,ruby]
|
78
|
+
....
|
79
|
+
config.force_ssl = true
|
80
|
+
....
|
81
|
+
|
82
|
+
== Geocoder configuration
|
83
|
+
|
84
|
+
Allows to make geographical mapping in some components, like Proposals or Meetings. It must be configured against a OpenStreetMap provider. See xref:services:geocoder.adoc[Geocoder service documentation].
|
85
|
+
|
86
|
+
[source,ruby]
|
87
|
+
....
|
88
|
+
config.geocoder = {
|
89
|
+
static_map_url: "https://image.maps.ls.hereapi.com/mia/1.6/mapview",
|
90
|
+
here_api_key: Rails.application.secrets.geocoder[:here_api_key]
|
91
|
+
}
|
92
|
+
....
|
93
|
+
|
94
|
+
== Custom resource reference
|
95
|
+
|
96
|
+
Custom resource reference generator method. See the See xref:admin:system_panel.adoc[System panel docs] for more information.
|
97
|
+
|
98
|
+
[source,ruby]
|
99
|
+
....
|
100
|
+
config.reference_generator = lambda do |resource, component|
|
101
|
+
# Implement your custom method to generate resources references
|
102
|
+
"1234-#{resource.id}"
|
103
|
+
end
|
104
|
+
....
|
105
|
+
|
106
|
+
== Currency unit
|
107
|
+
|
108
|
+
Allows to change the currency unit, for instance to `$`. By default is `€`.
|
109
|
+
|
110
|
+
[source,ruby]
|
111
|
+
....
|
112
|
+
config.currency_unit = "€"
|
113
|
+
....
|
114
|
+
|
115
|
+
|
116
|
+
== Image uploader settings
|
117
|
+
|
118
|
+
=== Quality
|
119
|
+
|
120
|
+
Defines the quality of image uploads after processing. Image uploads are
|
121
|
+
processed by Decidim, this value helps reduce the size of the files.
|
122
|
+
|
123
|
+
[source,ruby]
|
124
|
+
....
|
125
|
+
|
126
|
+
config.image_uploader_quality = 80
|
127
|
+
....
|
128
|
+
|
129
|
+
=== Attachment file size
|
130
|
+
|
131
|
+
The maximum file size of an attachment
|
132
|
+
|
133
|
+
Mind that this depends on your environment, for instance you could also need to change your web server configuration (nginx, apache, etc).
|
134
|
+
|
135
|
+
[source,ruby]
|
136
|
+
....
|
137
|
+
config.maximum_attachment_size = 10.megabytes
|
138
|
+
....
|
139
|
+
|
140
|
+
=== User avatar file size
|
141
|
+
|
142
|
+
# The maximum file size for a user avatar
|
143
|
+
|
144
|
+
Mind that this depends on your environment, for instance you could also need to change your web server configuration (nginx, apache, etc).
|
145
|
+
|
146
|
+
[source,ruby]
|
147
|
+
....
|
148
|
+
config.maximum_avatar_size = 10.megabytes
|
149
|
+
....
|
150
|
+
|
151
|
+
== Reports
|
152
|
+
|
153
|
+
The number of reports which a resource can receive before hiding it.
|
154
|
+
|
155
|
+
[source,ruby]
|
156
|
+
....
|
157
|
+
config.max_reports_before_hiding = 3
|
158
|
+
....
|
159
|
+
|
160
|
+
== Custom HTML Header snippets
|
161
|
+
|
162
|
+
The most common use is to integrate third-party services that require some
|
163
|
+
extra JavaScript or CSS. Also, you can use it to add extra meta tags to the
|
164
|
+
HTML. Note that this will only be rendered in public pages, not in the admin
|
165
|
+
section.
|
166
|
+
|
167
|
+
Before enabling this you should ensure that any tracking that might be done
|
168
|
+
is in accordance with the rules and regulations that apply to your
|
169
|
+
environment and usage scenarios. This component also comes with the risk
|
170
|
+
that an organization's administrator injects malicious scripts to spy on or
|
171
|
+
take over user accounts.
|
172
|
+
|
173
|
+
[source,ruby]
|
174
|
+
....
|
175
|
+
config.enable_html_header_snippets = false
|
176
|
+
....
|
177
|
+
|
178
|
+
== Track newsletter links
|
179
|
+
|
180
|
+
Allow organizations admins to track newsletter links, trough UTMs. See https://en.wikipedia.org/wiki/UTM_parameters[UTM parameters in Wikipedia].
|
181
|
+
|
182
|
+
[source,ruby]
|
183
|
+
....
|
184
|
+
config.track_newsletter_links = true
|
185
|
+
....
|
186
|
+
|
187
|
+
== Data portability expiry time
|
188
|
+
|
189
|
+
Amount of time that the data portability files will be available in the server.
|
190
|
+
|
191
|
+
[source,ruby]
|
192
|
+
....
|
193
|
+
config.data_portability_expiry_time = 7.days
|
194
|
+
....
|
195
|
+
|
196
|
+
== Throttling settings
|
197
|
+
|
198
|
+
Security settings for blocking possible attacks.
|
199
|
+
|
200
|
+
=== Max requests
|
201
|
+
|
202
|
+
Max requests in a time period to prevent DoS attacks. Only applied on production.
|
203
|
+
|
204
|
+
[source,ruby]
|
205
|
+
....
|
206
|
+
config.throttling_max_requests = 100
|
207
|
+
....
|
208
|
+
|
209
|
+
=== Period
|
210
|
+
|
211
|
+
Time window in which the throttling is applied.
|
212
|
+
|
213
|
+
[source,ruby]
|
214
|
+
....
|
215
|
+
config.throttling_period = 1.minute
|
216
|
+
....
|
217
|
+
|
218
|
+
== Unconfirmed access for users
|
219
|
+
|
220
|
+
Time window were users can access the website even if their email is not confirmed.
|
221
|
+
|
222
|
+
[source,ruby]
|
223
|
+
....
|
224
|
+
config.unconfirmed_access_for = 2.days
|
225
|
+
....
|
226
|
+
|
227
|
+
== Base path for uploads
|
228
|
+
|
229
|
+
A base path for the uploads. If set, make sure it ends in a slash.
|
230
|
+
Uploads will be set to `<base_path>/uploads/`. This can be useful if you
|
231
|
+
want to use the same uploads place for both staging and production
|
232
|
+
environments, but in different folders.
|
233
|
+
|
234
|
+
If not set, it will be ignored.
|
235
|
+
|
236
|
+
[source,ruby]
|
237
|
+
....
|
238
|
+
config.base_uploads_path = nil
|
239
|
+
....
|
240
|
+
|
241
|
+
== SMS gateway configuration
|
242
|
+
|
243
|
+
If you want to verify your users by sending a verification code via
|
244
|
+
SMS you need to provide a SMS gateway service class.
|
245
|
+
|
246
|
+
An example class would be something like:
|
247
|
+
|
248
|
+
[source,ruby]
|
249
|
+
....
|
250
|
+
class MySMSGatewayService
|
251
|
+
attr_reader :mobile_phone_number, :code
|
252
|
+
def initialize(mobile_phone_number, code)
|
253
|
+
@mobile_phone_number = mobile_phone_number
|
254
|
+
@code = code
|
255
|
+
end
|
256
|
+
def deliver_code
|
257
|
+
# Actual code to deliver the code
|
258
|
+
true
|
259
|
+
end
|
260
|
+
end
|
261
|
+
....
|
262
|
+
|
263
|
+
Then you'll need to configure it in the Decidim initializer:
|
264
|
+
|
265
|
+
[source,ruby]
|
266
|
+
....
|
267
|
+
config.sms_gateway_service = "MySMSGatewayService"
|
268
|
+
....
|
269
|
+
|
270
|
+
== Timestamp service configuration
|
271
|
+
|
272
|
+
Used by `decidim-initiatives`.
|
273
|
+
|
274
|
+
Provide a class to generate a timestamp for a document. The instances of
|
275
|
+
this class are initialized with a hash containing the :document key with
|
276
|
+
the document to be timestamped as value. The istances respond to a
|
277
|
+
timestamp public method with the timestamp.
|
278
|
+
|
279
|
+
An example class would be something like:
|
280
|
+
|
281
|
+
[source,ruby]
|
282
|
+
....
|
283
|
+
class MyTimestampService
|
284
|
+
attr_accessor :document
|
285
|
+
def initialize(args = {})
|
286
|
+
@document = args.fetch(:document)
|
287
|
+
end
|
288
|
+
def timestamp
|
289
|
+
# Code to generate timestamp
|
290
|
+
"My timestamp"
|
291
|
+
end
|
292
|
+
end
|
293
|
+
....
|
294
|
+
|
295
|
+
Then you'll need to configure it in the Decidim initializer:
|
296
|
+
|
297
|
+
[source,ruby]
|
298
|
+
....
|
299
|
+
config.timestamp_service = "MyTimestampService"
|
300
|
+
....
|
301
|
+
|
302
|
+
== PDF signature service
|
303
|
+
|
304
|
+
Used by `decidim-initiatives`.
|
305
|
+
|
306
|
+
Provide a class to process a pdf and return the document including a
|
307
|
+
digital signature. The instances of this class are initialized with a hash
|
308
|
+
containing the :pdf key with the pdf file content as value. The instances
|
309
|
+
respond to a signed_pdf method containing the pdf with the signature.
|
310
|
+
|
311
|
+
An example class would be something like:
|
312
|
+
|
313
|
+
[source,ruby]
|
314
|
+
....
|
315
|
+
class MyPDFSignatureService
|
316
|
+
attr_accessor :pdf
|
317
|
+
|
318
|
+
def initialize(args = {})
|
319
|
+
@pdf = args.fetch(:pdf)
|
320
|
+
end
|
321
|
+
|
322
|
+
def signed_pdf
|
323
|
+
# Code to return the pdf signed
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
config.pdf_signature_service = "MyPDFSignatureService"
|
328
|
+
....
|
329
|
+
|
330
|
+
== Etherpad configuration
|
331
|
+
|
332
|
+
|
333
|
+
Only needed if you want to have Etherpad integration with Decidim. See
|
334
|
+
xref:services:etherpad.adoc[Etherpad's Decidim docs] in order to set it up.
|
335
|
+
|
336
|
+
[source,ruby]
|
337
|
+
....
|
338
|
+
config.etherpad = {
|
339
|
+
server: Rails.application.secrets.etherpad[:server],
|
340
|
+
api_key: Rails.application.secrets.etherpad[:api_key],
|
341
|
+
api_version: Rails.application.secrets.etherpad[:api_version]
|
342
|
+
}
|
343
|
+
....
|
344
|
+
|
345
|
+
== Default CSV column separator
|
346
|
+
|
347
|
+
Sets Decidim::Exporters::CSV's default column separator
|
348
|
+
|
349
|
+
[source,ruby]
|
350
|
+
....
|
351
|
+
config.default_csv_col_sep = ";"
|
352
|
+
....
|
353
|
+
|
354
|
+
== User Roles
|
355
|
+
|
356
|
+
The list of roles a user can have, not considering the space-specific roles.
|
357
|
+
|
358
|
+
[source,ruby]
|
359
|
+
....
|
360
|
+
config.user_roles = %w(admin user_manager)
|
361
|
+
....
|
362
|
+
|
363
|
+
== Visibility for Amendments
|
364
|
+
|
365
|
+
The list of visibility options for amendments. An Array of Strings that
|
366
|
+
serve both as locale keys and values to construct the input collection in Decidim::Amendment::VisibilityStepSetting::options.
|
367
|
+
|
368
|
+
This collection is used in Decidim::Admin::SettingsHelper to generate a
|
369
|
+
radio buttons collection input field form for a Decidim::Component
|
370
|
+
step setting :amendments_visibility.
|
371
|
+
|
372
|
+
|
373
|
+
[source,ruby]
|
374
|
+
....
|
375
|
+
config.amendments_visibility_options = %w(all participants)
|
376
|
+
....
|