decidim-system 0.30.6 → 0.30.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78e85fea3e505bb5f0925d6395429eb207542e633154411df6d7d0815a507134
4
- data.tar.gz: c8acbbaa3f4f639b55ab42581917cd055a8cb43197ed357f3a5a0976862db83b
3
+ metadata.gz: 26dff893bfd173e7d638362b4b16e74de4c8e90438d590ed6f16d2f1e78d5a19
4
+ data.tar.gz: c4660940fc1bdbac9b5003a91c5db30a38bcc25b1f4f52592c176a5db06458fa
5
5
  SHA512:
6
- metadata.gz: 28202fe87d28ad4c515064577234bcc209744520b2c1a1dddb5df697d0a830c74a23f812687058ec8f56447985ec42c442e564be50cf7dc3da19efc04b48e558
7
- data.tar.gz: fe8ac3444342ffb46f231f83ca01376a92711570a960662c1ab1f0181d5c289e728951fe340ec8a780352be33afcd02254f6df409f51f599c59aab037df51da0
6
+ metadata.gz: 4ad2d233a3ee5900fcef140a77db4794830882a7f5d54a5a42746ea6bf62abfab574ae11201762dede399e9d1b8568a9e3b1a03936827d212501983edf31a336
7
+ data.tar.gz: 9f448f6d3b7c58200d403bc8cb5169e63375e625ca9dbc4ab35c142173f30c3c5594f6879d346d0c745f7f9c736410a4f8990437343380b14b86bdc45a1bb163
@@ -61,6 +61,8 @@ module Decidim
61
61
  validate :validate_organization_uniqueness
62
62
  validate :validate_secret_key_base_for_encryption
63
63
  validates :users_registration_mode, inclusion: { in: Decidim::Organization.users_registration_modes }
64
+ validate :validate_host_format
65
+ validate :validate_secondary_hosts_format
64
66
 
65
67
  def map_model(model)
66
68
  self.default_locale = model.default_locale
@@ -122,6 +124,63 @@ module Decidim
122
124
  def validate_organization_uniqueness
123
125
  raise "#{self.class.name} is expected to implement #validate_organization_uniqueness"
124
126
  end
127
+
128
+ # Validates the host format for organization domains.
129
+ #
130
+ # Valid formats:
131
+ # - Fully Qualified Domain Names (FQDN): example.org, sub.example.org, my-site.example.org
132
+ # - Localhost: localhost (common for development)
133
+ # - IPv4 addresses: 127.0.0.1, 192.168.1.1
134
+ # - IPv6 addresses: ::1, 2001:db8::1, [::1]
135
+ #
136
+ # Invalid formats (will be rejected):
137
+ # - Hosts containing spaces
138
+ # - Hosts with invalid characters (!@#$%^&* etc.)
139
+ # - Hosts with leading/trailing hyphens in labels (e.g., -example.com or example-.com)
140
+ # - Labels longer than 63 characters
141
+ # - Total host length exceeding 253 characters
142
+ #
143
+ # @see https://en.wikipedia.org/wiki/Fully_qualified_domain_name
144
+ # @see https://en.wikipedia.org/wiki/IPv4_address
145
+ # @see https://en.wikipedia.org/wiki/IPv6_address
146
+ #
147
+ HOST_FORMAT_REGEX = %r{
148
+ \A
149
+ (?:
150
+ # FQDN: requires at least one dot, labels separated by dots.
151
+ # Each label: alphanumeric start/end, alphanumerics and hyphens inside, max 63 chars.
152
+ (?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}
153
+ |
154
+ # Localhost: common development hostname.
155
+ localhost
156
+ |
157
+ # IPv4: four octets (0-255 each).
158
+ (?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)
159
+ |
160
+ # IPv6: bracketed form [::1] or unbracketed (standard and compressed forms).
161
+ (?:\[[\da-fA-F:]+\]|[\da-fA-F:]+\z)
162
+ )
163
+ \z
164
+ }x
165
+
166
+ def validate_host_format
167
+ return if host.blank?
168
+
169
+ return if host.match?(HOST_FORMAT_REGEX)
170
+
171
+ errors.add(:host, :invalid)
172
+ end
173
+
174
+ def validate_secondary_hosts_format
175
+ return if secondary_hosts.blank?
176
+
177
+ clean_secondary_hosts.each do |secondary_host|
178
+ next if secondary_host.match?(HOST_FORMAT_REGEX)
179
+
180
+ errors.add(:secondary_hosts, :invalid)
181
+ break
182
+ end
183
+ end
125
184
  end
126
185
  end
127
186
  end
@@ -3,7 +3,7 @@ ca-IT:
3
3
  activemodel:
4
4
  attributes:
5
5
  oauth_application:
6
- name: Nom de l'aplicació OAuth
6
+ name: Nom de l'aplicació
7
7
  organization_logo: Logo de l'organització (quadrat)
8
8
  organization_name: Organització
9
9
  organization_url: URL de l'organització
@@ -34,8 +34,12 @@ ca-IT:
34
34
  must_be_ssl: L'URI de redirecció ha de ser una URI SSL
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: no és vàlid
37
39
  password:
38
40
  secret_key: Cal que defineixis la variable d'entorn SECRET_KEY_BASE per a poder guardar aquest camp
41
+ secondary_hosts:
42
+ invalid: no és vàlid
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -3,7 +3,7 @@ ca:
3
3
  activemodel:
4
4
  attributes:
5
5
  oauth_application:
6
- name: Nom de l'aplicació OAuth
6
+ name: Nom de l'aplicació
7
7
  organization_logo: Logo de l'organització (quadrat)
8
8
  organization_name: Organització
9
9
  organization_url: URL de l'organització
@@ -34,8 +34,12 @@ ca:
34
34
  must_be_ssl: L'URI de redirecció ha de ser una URI SSL
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: no és vàlid
37
39
  password:
38
40
  secret_key: Cal que defineixis la variable d'entorn SECRET_KEY_BASE per a poder guardar aquest camp
41
+ secondary_hosts:
42
+ invalid: no és vàlid
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ cs:
34
34
  must_be_ssl: URI přesměrování musí být SSL URI
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: je neplatný
37
39
  password:
38
40
  secret_key: Abyste mohli toto pole uložit, musíte definovat proměnnou prostředí SECRET_KEY_BASE.
41
+ secondary_hosts:
42
+ invalid: je neplatný
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ en:
34
34
  must_be_ssl: The redirect URI must be a SSL URI
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: is invalid
37
39
  password:
38
40
  secret_key: You need to define the SECRET_KEY_BASE environment variable to be able to save this field
41
+ secondary_hosts:
42
+ invalid: is invalid
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ es-MX:
34
34
  must_be_ssl: La URI de redirección debe ser una URI SSL
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: no es válido
37
39
  password:
38
40
  secret_key: Necesitas definir la variable de entorno SECRETA_KEY_BASE para poder guardar este campo
41
+ secondary_hosts:
42
+ invalid: no es válido
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ es-PY:
34
34
  must_be_ssl: La URI de redirección debe ser una URI SSL
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: no es válido
37
39
  password:
38
40
  secret_key: Necesitas definir la variable de entorno SECRETA_KEY_BASE para poder guardar este campo
41
+ secondary_hosts:
42
+ invalid: no es válido
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ es:
34
34
  must_be_ssl: La URI de redirección debe ser una URI SSL
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: no es válido
37
39
  password:
38
40
  secret_key: Necesitas definir la variable de entorno SECRETA_KEY_BASE para poder guardar este campo
41
+ secondary_hosts:
42
+ invalid: no es válido
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ eu:
34
34
  must_be_ssl: Berbideratzeko URIa URI SSL izan behar da
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: baliogabea da
37
39
  password:
38
40
  secret_key: SECRET_KEY_BASE ingurunearen aldagaia definitu behar duzu eremu hau gorde ahal izateko
41
+ secondary_hosts:
42
+ invalid: baliogabea da
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ fi-pl:
34
34
  must_be_ssl: Uudelleenohjaus osoite (URI) on oltava SSL-muotoinen osoite (URI)
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: on virheellinen
37
39
  password:
38
40
  secret_key: Sinun täytyy määritellä SECRET_KEY_BASE ympäristömuuttuja, jotta voit tallentaa tämän kentän.
41
+ secondary_hosts:
42
+ invalid: on virheellinen
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ fi:
34
34
  must_be_ssl: Uudelleenohjaus osoite (URI) on oltava SSL-muotoinen osoite (URI)
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: on virheellinen
37
39
  password:
38
40
  secret_key: Sinun täytyy määritellä SECRET_KEY_BASE ympäristömuuttuja, jotta voit tallentaa tämän kentän.
41
+ secondary_hosts:
42
+ invalid: on virheellinen
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ fr-CA:
34
34
  must_be_ssl: L'URI de redirection doit être une URI SSL
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: est invalide
37
39
  password:
38
40
  secret_key: Vous devez définir la variable d'environnement SECRET_KEY_BASE pour pouvoir enregistrer ce champ
41
+ secondary_hosts:
42
+ invalid: est invalide
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -34,8 +34,12 @@ fr:
34
34
  must_be_ssl: L'URI de redirection doit être une URI SSL
35
35
  organization:
36
36
  attributes:
37
+ host:
38
+ invalid: est invalide
37
39
  password:
38
40
  secret_key: Vous devez définir la variable d'environnement SECRET_KEY_BASE pour pouvoir enregistrer ce champ
41
+ secondary_hosts:
42
+ invalid: est invalide
39
43
  decidim:
40
44
  system:
41
45
  actions:
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-system version.
5
5
  module System
6
6
  def self.version
7
- "0.30.6"
7
+ "0.30.8"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-system
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.6
4
+ version: 0.30.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-02-26 00:00:00.000000000 Z
13
+ date: 2026-04-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.30.6
35
+ version: 0.30.8
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.30.6
42
+ version: 0.30.8
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: devise
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -94,14 +94,14 @@ dependencies:
94
94
  requirements:
95
95
  - - '='
96
96
  - !ruby/object:Gem::Version
97
- version: 0.30.6
97
+ version: 0.30.8
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - '='
103
103
  - !ruby/object:Gem::Version
104
- version: 0.30.6
104
+ version: 0.30.8
105
105
  description: System administration to create new organization in an installation.
106
106
  email:
107
107
  - josepjaume@gmail.com