Allow any postal code by default
Due to the way Madrid handled postal code validations (see issue 533), by default we were requiring everyone to validate against the local census *and* to specify valid postal codes. This could be useful in some cases, but in other cases, the census validation will be enough and there'll be no need to manually define the valid postal codes. Besides, some CONSUL installations are used in organizations or political parties where the postal code validation doesn't make sense.
This commit is contained in:
@@ -177,7 +177,7 @@ class Setting < ApplicationRecord
|
||||
"machine_learning.comments_summary": false,
|
||||
"machine_learning.related_content": false,
|
||||
"machine_learning.tags": false,
|
||||
"postal_codes": "00001:99999",
|
||||
"postal_codes": "",
|
||||
"remote_census.general.endpoint": "",
|
||||
"remote_census.request.method_name": "",
|
||||
"remote_census.request.structure": "",
|
||||
|
||||
@@ -104,6 +104,8 @@ class Verification::Residence
|
||||
end
|
||||
|
||||
def valid_postal_code?
|
||||
return true if Setting["postal_codes"].blank?
|
||||
|
||||
Setting["postal_codes"].split(",").any? do |code_or_range|
|
||||
if code_or_range.include?(":")
|
||||
Range.new(*code_or_range.split(":").map(&:strip)).include?(postal_code&.strip)
|
||||
|
||||
@@ -61,7 +61,7 @@ en:
|
||||
min_age_to_participate: Minimum age needed to participate
|
||||
min_age_to_participate_description: "Users over this age can participate in all processes where a user verified account is needed"
|
||||
postal_codes: "Postal Codes"
|
||||
postal_codes_description: "A comma-separated list of valid postal codes; you can also introduce ranges separated with a colon. Example: 00001:00010,00024,AB3 45FG,00031:00035 will allow postal codes between 00001 and 00010, the postal code 00024, the postal code AB3 45FG, and postal codes between 00031 and 00035."
|
||||
postal_codes_description: "A comma-separated list of valid postal codes; you can also introduce ranges separated with a colon. Example: 00001:00010,00024,AB3 45FG,00031:00035 will allow postal codes between 00001 and 00010, the postal code 00024, the postal code AB3 45FG, and postal codes between 00031 and 00035. If you leave it blank, all postal codes will be valid."
|
||||
proposals:
|
||||
successful_proposal_id: Successful proposal
|
||||
successful_proposal_id_description: This proposal is used as a reference for a successful proposal in supports number and will be displayed in the dashboard graph.
|
||||
|
||||
@@ -61,7 +61,7 @@ es:
|
||||
min_age_to_participate: Edad mínima para participar
|
||||
min_age_to_participate_description: "Los usuarios mayores de esta edad podrán participar en todos los procesos donde se necesite una cuenta verificada"
|
||||
postal_codes: "Códigos Postales"
|
||||
postal_codes_description: "Una lista de códigos postales válidos separados por comas; también puedes usar rangos utilizando \":\". Ejemplo: 00001:00010,00024,AB3 45FG,00031:00035 permitirá códigos postales entre 00001 y 00010, el 00024, el AB3 45FG, y códigos postales entre 00031 y 00035."
|
||||
postal_codes_description: "Una lista de códigos postales válidos separados por comas; también puedes usar rangos utilizando \":\". Ejemplo: 00001:00010,00024,AB3 45FG,00031:00035 permitirá códigos postales entre 00001 y 00010, el 00024, el AB3 45FG, y códigos postales entre 00031 y 00035. Si dejas esta opción en blanco, cualquier código postal será válido."
|
||||
proposals:
|
||||
successful_proposal_id: Propuesta exitosa
|
||||
successful_proposal_id_description: Esta propuesta se utiliza como referencia de una propuesta exitosa en número de apoyos y se mostrará en el gráfico del panel de control
|
||||
|
||||
@@ -144,6 +144,23 @@ describe Verification::Residence do
|
||||
expect(residence.errors.count).to eq 1
|
||||
expect(residence.errors[:postal_code]).to eq ["In order to be verified, you must be registered."]
|
||||
end
|
||||
|
||||
it "allows any postal code when the setting is blank" do
|
||||
Setting["postal_codes"] = nil
|
||||
residence.postal_code = "randomthing"
|
||||
|
||||
expect(residence).to be_valid
|
||||
|
||||
Setting["postal_codes"] = ""
|
||||
residence.postal_code = "ABC123"
|
||||
|
||||
expect(residence).to be_valid
|
||||
|
||||
Setting["postal_codes"] = " "
|
||||
residence.postal_code = "555-5"
|
||||
|
||||
expect(residence).to be_valid
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ describe "Residence" do
|
||||
end
|
||||
|
||||
scenario "Error on postal code not in census" do
|
||||
Setting["postal_codes"] = "00001:99999"
|
||||
user = create(:user)
|
||||
login_as(user)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user