<model> <mount>//OPNsense/captiveportal</mount> <description> Captive portal application model </description> <items> <zones> <zone type="ArrayField"> <enabled type="BooleanField"> <default>1</default> <Required>Y</Required> </enabled> <zoneid type="AutoNumberField"> <MinimumValue>0</MinimumValue> <MaximumValue>19</MaximumValue> <ValidationMessage>Maximum number of zones reached</ValidationMessage> <Required>Y</Required> </zoneid> <interfaces type="InterfaceField"> <Required>Y</Required> <multiple>Y</multiple> <default>lan</default> <filters> <enable>/^(?!0).*$/</enable> <ipaddr>/^((?!dhcp).)*$/</ipaddr> </filters> </interfaces> <authservers type="AuthenticationServerField"> <Required>N</Required> <multiple>Y</multiple> <default>Local Database</default> </authservers> <idletimeout type="IntegerField"> <Required>Y</Required> <Default>0</Default> <MinimumValue>0</MinimumValue> <MaximumValue>10080</MaximumValue> <ValidationMessage>Idle timeout must be between 0(no timeout) and 10080 (a week)</ValidationMessage> </idletimeout> <hardtimeout type="IntegerField"> <Required>Y</Required> <Default>0</Default> <MinimumValue>0</MinimumValue> <MaximumValue>10080</MaximumValue> <ValidationMessage>Hard timeout must be between 0(no timeout) and 10080 (a week)</ValidationMessage> </hardtimeout> <concurrentlogins type="BooleanField"> <Required>Y</Required> <default>1</default> </concurrentlogins> <certificate type="CertificateField"> <Required>N</Required> <ValidationMessage>Please select a valid certificate from the list</ValidationMessage> </certificate> <servername type="TextField"> <Required>N</Required> <mask>/^([0-9a-zA-Z.,_\-]){0,1024}$/u</mask> <ValidationMessage>Please enter a valid servername, ip address or leave this option blank</ValidationMessage> </servername> <allowedAddresses type="CSVListField"> <Required>N</Required> <mask>/^([\/0-9.,])*/u</mask> <ValidationMessage>Please enter valid addresses</ValidationMessage> </allowedAddresses> <allowedMACAddresses type="CSVListField"> <Required>N</Required> <ChangeCase>lower</ChangeCase> <mask>/^((([0-9a-fA-F]{2}:){5}([0-9a-fA-F]{2})([,]){0,1}))*/u</mask> <ValidationMessage>Please enter valid mac addresses</ValidationMessage> </allowedMACAddresses> <template type="ModelRelationField"> <Model> <template> <source>OPNsense.Captiveportal.Captiveportal</source> <items>templates.template</items> <display>name</display> </template> </Model> <ValidationMessage>Related template not found</ValidationMessage> <Required>N</Required> </template> <description type="TextField"> <Required>Y</Required> <mask>/^([\t\n\v\f\r 0-9a-zA-Z.,_\x{00A0}-\x{FFFF}]){1,255}$/u</mask> <ValidationMessage>Description should be a string between 1 and 255 characters</ValidationMessage> </description> </zone> </zones> <templates> <template type="ArrayField"> <fileid type="TextField"> <Required>Y</Required> <mask>/[0-9a-zA-Z\-]{1,255}/u</mask> <ValidationMessage>Fileid should be an internally generated unique number</ValidationMessage> </fileid> <name type="TextField"> <Required>Y</Required> <mask>/^([\t\n\v\f\r 0-9a-zA-Z.,_\x{00A0}-\x{FFFF}]){1,255}$/u</mask> <ValidationMessage>Template name should be a string between 1 and 255 characters</ValidationMessage> </name> <content type="TextField"> <Required>Y</Required> <mask>/[0-9a-zA-Z\+\=\/]{20,}/u</mask> <ValidationMessage>File content should be in (base64 encoded) zip format</ValidationMessage> </content> </template> </templates> </items> </model>