mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
fix: do not skip parameter validation if min or max = 0 (#7707)
This commit is contained in:
@@ -46,6 +46,17 @@ func TemplateVersionParameter(param database.TemplateVersionParameter) (codersdk
|
||||
if err != nil {
|
||||
return codersdk.TemplateVersionParameter{}, err
|
||||
}
|
||||
|
||||
var validationMin *int32
|
||||
if param.ValidationMin.Valid {
|
||||
validationMin = ¶m.ValidationMin.Int32
|
||||
}
|
||||
|
||||
var validationMax *int32
|
||||
if param.ValidationMax.Valid {
|
||||
validationMax = ¶m.ValidationMax.Int32
|
||||
}
|
||||
|
||||
return codersdk.TemplateVersionParameter{
|
||||
Name: param.Name,
|
||||
DisplayName: param.DisplayName,
|
||||
@@ -57,8 +68,8 @@ func TemplateVersionParameter(param database.TemplateVersionParameter) (codersdk
|
||||
Icon: param.Icon,
|
||||
Options: options,
|
||||
ValidationRegex: param.ValidationRegex,
|
||||
ValidationMin: param.ValidationMin,
|
||||
ValidationMax: param.ValidationMax,
|
||||
ValidationMin: validationMin,
|
||||
ValidationMax: validationMax,
|
||||
ValidationError: param.ValidationError,
|
||||
ValidationMonotonic: codersdk.ValidationMonotonicOrder(param.ValidationMonotonic),
|
||||
Required: param.Required,
|
||||
|
||||
Generated
+2
-2
@@ -385,8 +385,8 @@ CREATE TABLE template_version_parameters (
|
||||
icon text NOT NULL,
|
||||
options jsonb DEFAULT '[]'::jsonb NOT NULL,
|
||||
validation_regex text NOT NULL,
|
||||
validation_min integer NOT NULL,
|
||||
validation_max integer NOT NULL,
|
||||
validation_min integer,
|
||||
validation_max integer,
|
||||
validation_error text DEFAULT ''::text NOT NULL,
|
||||
validation_monotonic text DEFAULT ''::text NOT NULL,
|
||||
required boolean DEFAULT true NOT NULL,
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
BEGIN;
|
||||
UPDATE template_version_parameters SET validation_min = 0 WHERE validation_min = NULL;
|
||||
UPDATE template_version_parameters SET validation_max = 0 WHERE validation_max = NULL;
|
||||
ALTER TABLE template_version_parameters ALTER COLUMN validation_min SET NOT NULL;
|
||||
ALTER TABLE template_version_parameters ALTER COLUMN validation_max SET NOT NULL;
|
||||
COMMIT;
|
||||
@@ -0,0 +1,6 @@
|
||||
BEGIN;
|
||||
ALTER TABLE template_version_parameters ALTER COLUMN validation_min DROP NOT NULL;
|
||||
ALTER TABLE template_version_parameters ALTER COLUMN validation_max DROP NOT NULL;
|
||||
UPDATE template_version_parameters SET validation_min = NULL WHERE validation_min = 0;
|
||||
UPDATE template_version_parameters SET validation_max = NULL WHERE validation_max = 0;
|
||||
COMMIT;
|
||||
@@ -1535,9 +1535,9 @@ type TemplateVersionParameter struct {
|
||||
// Validation: regex pattern
|
||||
ValidationRegex string `db:"validation_regex" json:"validation_regex"`
|
||||
// Validation: minimum length of value
|
||||
ValidationMin int32 `db:"validation_min" json:"validation_min"`
|
||||
ValidationMin sql.NullInt32 `db:"validation_min" json:"validation_min"`
|
||||
// Validation: maximum length of value
|
||||
ValidationMax int32 `db:"validation_max" json:"validation_max"`
|
||||
ValidationMax sql.NullInt32 `db:"validation_max" json:"validation_max"`
|
||||
// Validation: error displayed when the regex does not match.
|
||||
ValidationError string `db:"validation_error" json:"validation_error"`
|
||||
// Validation: consecutive values preserve the monotonic order
|
||||
|
||||
@@ -4164,8 +4164,8 @@ type InsertTemplateVersionParameterParams struct {
|
||||
Icon string `db:"icon" json:"icon"`
|
||||
Options json.RawMessage `db:"options" json:"options"`
|
||||
ValidationRegex string `db:"validation_regex" json:"validation_regex"`
|
||||
ValidationMin int32 `db:"validation_min" json:"validation_min"`
|
||||
ValidationMax int32 `db:"validation_max" json:"validation_max"`
|
||||
ValidationMin sql.NullInt32 `db:"validation_min" json:"validation_min"`
|
||||
ValidationMax sql.NullInt32 `db:"validation_max" json:"validation_max"`
|
||||
ValidationError string `db:"validation_error" json:"validation_error"`
|
||||
ValidationMonotonic string `db:"validation_monotonic" json:"validation_monotonic"`
|
||||
Required bool `db:"required" json:"required"`
|
||||
|
||||
Reference in New Issue
Block a user