URL: https://github.com/freeipa/freeipa/pull/1464
Author: flo-renaud
 Title: #1464: [Backport][ipa-4-5] WebUI: fix for negative number in pagination 
size settings
Action: opened

PR body:
"""

"""

To pull the PR as Git branch:
git remote add ghfreeipa https://github.com/freeipa/freeipa
git fetch ghfreeipa pull/1464/head:pr1464
git checkout pr1464
From ef547267e79d8b0de44d40480837832a13680a38 Mon Sep 17 00:00:00 2001
From: Pavel Vomacka <pvoma...@redhat.com>
Date: Tue, 11 Jul 2017 10:46:36 +0200
Subject: [PATCH 1/2] WebUI: Add positive number validator

Add new validator which inherits from integer validator
and checks whether the integer is positive.

https://pagure.io/freeipa/issue/6980

Reviewed-By: Felipe Volpone <felipevolp...@gmail.com>
---
 install/ui/src/freeipa/field.js | 43 +++++++++++++++++++++++++++++++++++++++++
 ipaserver/plugins/internal.py   |  1 +
 2 files changed, 44 insertions(+)

diff --git a/install/ui/src/freeipa/field.js b/install/ui/src/freeipa/field.js
index 76ce2533af..f998b578c3 100644
--- a/install/ui/src/freeipa/field.js
+++ b/install/ui/src/freeipa/field.js
@@ -1049,9 +1049,51 @@ field.validator = IPA.validator = function(spec) {
          return that.true_result();
      };
 
+     that.integer_validate = that.validate;
+
      return that;
  };
 
+
+/**
+ * Javascript positive integer validator
+ *
+ * It allows to insert only positive integer.
+ *
+ * @class
+ * @alternateClassName IPA.positive_integer_validator
+ * @extends IPA.validator
+ */
+ field.positive_integer_validator = IPA.positive_integer_validator = function(spec) {
+
+    var that = IPA.integer_validator(spec);
+
+    /**
+    * @inheritDoc
+    */
+
+    that.validate = function(value) {
+
+        var integer_check = that.integer_validate(value);
+
+        if (!integer_check.valid) {
+            return integer_check;
+        }
+
+        var num = parseInt(value);
+
+        if (num <= 0) {
+            return that.false_result(
+                text.get('@i18n:widget.validation.positive_number'));
+        }
+
+        return that.true_result();
+    };
+
+    return that;
+ };
+
+
 /**
  * Metadata validator
  *
@@ -1871,6 +1913,7 @@ field.register = function() {
     v.register('unsupported', field.unsupported_validator);
     v.register('same_password', field.same_password_validator);
     v.register('integer', field.integer_validator);
+    v.register('positive_integer', field.positive_integer_validator);
 
     l.register('adapter', field.Adapter);
     l.register('object_adapter', field.ObjectAdapter);
diff --git a/ipaserver/plugins/internal.py b/ipaserver/plugins/internal.py
index ff239db07e..c293e0b5e0 100644
--- a/ipaserver/plugins/internal.py
+++ b/ipaserver/plugins/internal.py
@@ -982,6 +982,7 @@ class i18n_messages(Command):
                 "min_value": _("Minimum value is ${value}"),
                 "net_address": _("Not a valid network address (examples: 2001:db8::/64, 192.0.2.0/24)"),
                 "parse": _("Parse error"),
+                "positive_number": _("Must be a positive number"),
                 "port": _("'${port}' is not a valid port"),
                 "required": _("Required field"),
                 "unsupported": _("Unsupported value"),

From 4527415ea277dc1f0d9828d9cc7e2b833c89f5ad Mon Sep 17 00:00:00 2001
From: Pavel Vomacka <pvoma...@redhat.com>
Date: Tue, 11 Jul 2017 10:49:46 +0200
Subject: [PATCH 2/2] WebUI: change validator of page size settings

Previously, this configuration field was validated by integer_validator
which only checks that the input is number.
Now new positive_integer_validator can also check that
the inputed number positive.

https://pagure.io/freeipa/issue/6980

Reviewed-By: Felipe Volpone <felipevolp...@gmail.com>
---
 install/ui/src/freeipa/Application_controller.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/install/ui/src/freeipa/Application_controller.js b/install/ui/src/freeipa/Application_controller.js
index 5eb4e7a510..51f579e3cc 100644
--- a/install/ui/src/freeipa/Application_controller.js
+++ b/install/ui/src/freeipa/Application_controller.js
@@ -312,7 +312,7 @@ define([
                         $type: 'text',
                         name: 'pagination_size',
                         label: '@i18n:customization.table_pagination',
-                        validators: ['integer']
+                        validators: ['positive_integer']
                     }
                 ]
             });
_______________________________________________
FreeIPA-devel mailing list -- freeipa-devel@lists.fedorahosted.org
To unsubscribe send an email to freeipa-devel-le...@lists.fedorahosted.org

Reply via email to