mvc: more model consolidation

* s/multiple/Multiple/g (to fix lint mismatch)
* s/Default/default/g (to be fixed later, just too many now)
* BlankDesc default update and lint pass
* empty default lint pass
This commit is contained in:
Franco Fichtner 2023-08-31 11:49:38 +02:00
parent 6377f7856d
commit e3b28c06f9
9 changed files with 40 additions and 32 deletions

View File

@ -361,11 +361,24 @@ lint-xml:
-name "*.xml*" -type f -print0 | xargs -0 -n1 xmllint --noout
lint-model:
# XXX "default" must be changed to upper case "Default"
@for MODEL in $$(find ${.CURDIR}/src/opnsense/mvc/app/models -depth 3 \
-name "*.xml"); do \
(xmllint $${MODEL} --xpath '//*[@type and not(@type="ArrayField") and (not(Required) or Required="N") and default]' 2> /dev/null | grep '^<' || true) | while read LINE; do \
echo "$${MODEL}: $${LINE} has a spurious default value set"; \
done; \
(xmllint $${MODEL} --xpath '//*[@type and not(@type="ArrayField") and default=""]' 2> /dev/null | grep '^<' || true) | while read LINE; do \
echo "$${MODEL}: $${LINE} has an empty default value set"; \
done; \
(xmllint $${MODEL} --xpath '//*[@type and not(@type="ArrayField") and BlankDesc="None"]' 2> /dev/null | grep '^<' || true) | while read LINE; do \
echo "$${MODEL}: $${LINE} blank description is the default"; \
done; \
(xmllint $${MODEL} --xpath '//*[@type and not(@type="ArrayField") and BlankDesc and Required="Y"]' 2> /dev/null | grep '^<' || true) | while read LINE; do \
echo "$${MODEL}: $${LINE} blank description not applicable on required field"; \
done; \
(xmllint $${MODEL} --xpath '//*[@type and not(@type="ArrayField") and BlankDesc and Multiple="Y"]' 2> /dev/null | grep '^<' || true) | while read LINE; do \
echo "$${MODEL}: $${LINE} blank description not applicable on multiple field"; \
done; \
done
SCRIPTDIRS!= find ${.CURDIR}/src/opnsense/scripts -type d -depth 1

View File

@ -19,7 +19,7 @@
</zoneid>
<interfaces type="InterfaceField">
<Required>Y</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<default>lan</default>
<filters>
<enable>/^(?!0).*$/</enable>
@ -29,7 +29,7 @@
</interfaces>
<authservers type="AuthenticationServerField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
</authservers>
<alwaysSendAccountingReqs type="BooleanField">
<default>0</default>
@ -40,14 +40,14 @@
</authEnforceGroup>
<idletimeout type="IntegerField">
<Required>Y</Required>
<Default>0</Default>
<default>0</default>
<MinimumValue>0</MinimumValue>
<MaximumValue>10080</MaximumValue>
<ValidationMessage>Idle timeout, in minutes, must be between 0 (no timeout) and 10080 (a week)</ValidationMessage>
</idletimeout>
<hardtimeout type="IntegerField">
<Required>Y</Required>
<Default>0</Default>
<default>0</default>
<MinimumValue>0</MinimumValue>
<MaximumValue>10080</MaximumValue>
<ValidationMessage>Hard timeout, in minutes, must be between 0 (no timeout) and 10080 (a week)</ValidationMessage>

View File

@ -8,14 +8,14 @@
<capture>
<interfaces type="InterfaceField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<filters>
<enable>/^(?!0).*$/</enable>
</filters>
</interfaces>
<egress_only type="InterfaceField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<filters>
<enable>/^(?!0).*$/</enable>
</filters>

View File

@ -78,7 +78,7 @@
<display>name</display>
</rulesets>
</Model>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<ValidationMessage>Related category not found.</ValidationMessage>
<Required>N</Required>
</categories>

View File

@ -35,7 +35,7 @@
<default>0</default>
</prio>
<action type="OptionField">
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<OptionValues>
<disable>Disabled</disable>
<alert>Alert</alert>
@ -53,12 +53,12 @@
</filters>
</rulesets>
</Model>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<ValidationMessage>Related ruleset not found.</ValidationMessage>
<Required>N</Required>
</rulesets>
<content type=".\PolicyContentField">
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<Required>N</Required>
<ValidationMessage>Policy rule not found.</ValidationMessage>
</content>
@ -157,7 +157,7 @@
<interfaces type="InterfaceField">
<Required>Y</Required>
<default>wan</default>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<AddParentDevices>Y</AddParentDevices>
<filters>
<enable>/^(?!0).*$/</enable>

View File

@ -25,7 +25,7 @@
<mailserver type="CSVListField">
<default>127.0.0.1</default>
<Required>Y</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<mask>/^([0-9a-zA-Z\.,_\-:]){0,1024}$/u</mask>
<ChangeCase>lower</ChangeCase>
<ValidationMessage>Please specify a valid servername or IP address.</ValidationMessage>
@ -96,7 +96,7 @@
</httpdPort>
<httpdAllow type="CSVListField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
</httpdAllow>
<mmonitUrl type="TextField">
<Required>N</Required>
@ -241,7 +241,7 @@
</address>
<interface type="InterfaceField">
<Required>N</Required>
<multiple>N</multiple>
<Multiple>N</Multiple>
<AddParentDevices>Y</AddParentDevices>
<filters>
<enable>/^(?!0).*$/</enable>
@ -267,7 +267,7 @@
</template>
</Model>
<ValidationMessage>Related item not found</ValidationMessage>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<Required>N</Required>
</tests>
<depends type="ModelRelationField">
@ -279,7 +279,7 @@
</template>
</Model>
<ValidationMessage>Related item not found</ValidationMessage>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<Required>N</Required>
</depends>
<polltime type="TextField">

View File

@ -193,7 +193,6 @@
<crl type="CertificateField">
<Required>N</Required>
<type>crl</type>
<BlankDesc>None</BlankDesc>
<ValidationMessage>Please select a valid certificate from the list</ValidationMessage>
</crl>
<ca type="CertificateField">
@ -250,7 +249,7 @@
</auth>
<data-ciphers type="OptionField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<OptionValues>
<AES-256-GCM>AES-256-GCM</AES-256-GCM>
<AES-128-GCM>AES-128-GCM</AES-128-GCM>
@ -259,7 +258,7 @@
</data-ciphers>
<data-ciphers-fallback type="OptionField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<OptionValues>
<AES-256-GCM>AES-256-GCM</AES-256-GCM>
<AES-128-GCM>AES-128-GCM</AES-128-GCM>
@ -279,15 +278,12 @@
</tls_key>
<authmode type="AuthenticationServerField">
<Required>N</Required>
<multiple>Y</multiple>
<BlankDesc>None</BlankDesc>
<Multiple>Y</Multiple>
</authmode>
<local_group type="AuthGroupField">
<Required>N</Required>
</local_group>
<local_group type="AuthGroupField"/>
<various_flags type="OptionField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<OptionValues>
<client-to-client>client-to-client</client-to-client>
<duplicate-cn>duplicate-cn</duplicate-cn>

View File

@ -10,7 +10,6 @@
</enabled>
<error_pages type="OptionField">
<Required>N</Required>
<Default>opnsense</Default>
<BlankDesc>Squid</BlankDesc>
<OptionValues>
<opnsense>OPNsense</opnsense>
@ -256,7 +255,7 @@
<forward>
<interfaces type="InterfaceField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<AllowDynamic>S</AllowDynamic>
<filters>
<enable>/^(?!0).*$/</enable>
@ -340,7 +339,7 @@
</snmp_password>
<ftpInterfaces type="InterfaceField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
<filters>
<enable>/^(?!0).*$/</enable>
<ipaddr>/^((?!dhcp).)*$/</ipaddr>
@ -516,7 +515,7 @@
<authentication>
<method type="AuthenticationServerField">
<Required>N</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
</method>
<authEnforceGroup type="AuthGroupField">
<Required>N</Required>
@ -714,7 +713,7 @@
</queues>
</Model>
<Required>Y</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
</matches>
<join_type type="OptionField">
<Required>Y</Required>
@ -740,7 +739,7 @@
</queues>
</Model>
<Required>Y</Required>
<multiple>Y</multiple>
<Multiple>Y</Multiple>
</proxies>
</rule>
</pac>

View File

@ -158,7 +158,7 @@
<weight type="IntegerField">
<MinimumValue>1</MinimumValue>
<MaximumValue>100</MaximumValue>
<Default>100</Default>
<default>100</default>
<Required>Y</Required>
<ValidationMessage>Weight must be between 1...100</ValidationMessage>
</weight>