luci-proto-qmi: add APN and PIN validation
authorNicholas Smith <nicholas@nbembedded.com>
Fri, 11 Jun 2021 12:41:14 +0000 (22:41 +1000)
committerJo-Philipp Wich <jo@mein.io>
Tue, 13 Jul 2021 18:10:04 +0000 (20:10 +0200)
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
[squash commits, fix whitespace]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js

index 7c9e72cb1ac56712b3b788972cf3ad854a09d18c..def275a1c6fa930ac4f2cdcd53e7562172238302 100644 (file)
@@ -65,8 +65,16 @@ return network.registerProtocol('qmi', {
                        }, this));
                };
 
-               s.taboption('general', form.Value, 'apn', _('APN'));
-               s.taboption('general', form.Value, 'pincode', _('PIN'));
+               o = s.taboption('general', form.Value, 'apn', _('APN'));
+               o.validate = function(section_id, value) {
+                       if (!/^[a-zA-Z0-9\-.]*[a-zA-Z0-9]$/.test(value))
+                               return _('Invalid APN provided');
+
+                       return true;
+               };
+
+               o = s.taboption('general', form.Value, 'pincode', _('PIN'));
+               o.datatype = 'and(uinteger,minlength(4),maxlength(8))';
 
                o = s.taboption('general', form.ListValue, 'auth', _('Authentication Type'));
                o.value('both', 'PAP/CHAP');
@@ -99,7 +107,7 @@ return network.registerProtocol('qmi', {
                o = s.taboption('advanced', form.Value, 'mtu', _('Override MTU'));
                o.placeholder = dev ? (dev.getMTU() || '1500') : '1500';
                o.datatype    = 'max(9200)';
-               
+
                o = s.taboption('general', form.ListValue, 'pdptype', _('PDP Type'));
                o.value('ipv4v6', 'IPv4/IPv6');
                o.value('ipv4', 'IPv4');