def _create_port_forward_list_entry(index): g = formalutils.CollapsibleGroup(str(index), label='') g.setCollapsed(collapsed=False) g.add( formalutils.Field('new_fw_protocol', formal.String(required=True), formal.widgetFactory( formal.SelectChoice, options=txt.new_fw_protocol_options), label=txt.new_fw_protocol_label)) g.add( formalutils.Field( 'new_fw_port_in', formal.Integer( required=True, validators=[formal.RangeValidator(min=0, max=65535)]), label=txt.new_fw_port_in_label)) g.add( formalutils.Field('new_fw_ip_out', dt.FormIPv4Address(required=True), label=txt.new_fw_ip_out_label)) g.add( formalutils.Field( 'new_fw_port_out', formal.Integer( required=True, validators=[formal.RangeValidator(min=0, max=65535)]), label=txt.new_fw_port_out_label)) return g
def create_internet_connection_group(self, form, ctx): txt = self.nc_uitexts g = formalutils.CollapsibleGroup('ic_group', label=txt.ic_group_caption) g.setCollapsed( uihelpers.collapse_setting(ns_ui.collapseInternetConnection)) g.add( formalutils.Field('if', formal.String(required=True), formal.widgetFactory( formal.SelectChoice, options=uihelpers.interface_options()), label=txt.if_label)) g.add( formalutils.Field('ip_address_selection', formal.String(required=True), formal.widgetFactory( formal.RadioChoice, options=txt.ip_selection_options), label=txt.ip_selection_label)) g.add( formalutils.Field('ip_address', dt.FormIPv4AddressSubnet(required=False), label=txt.ip_label)) g.add( formalutils.Field('subnet_mask', dt.FormSubnetMask(required=False), label=txt.subnet_label)) g.add( formalutils.Field('default_gateway', dt.FormIPv4Address(required=False), label=txt.default_gw_label)) g.add( formalutils.Field( 'mtu', formal.Integer( required=True, validators=[formal.RangeValidator(min=576, max=1500)]), label=txt.mtu_label)) g.add( formalutils.Field( 'uplink', dt.FormFloat(required=False, validators=[formal.RangeValidator(min=0.128)]), label=txt.uplink_label)) g.add( formalutils.Field('client_traffic', formal.String(required=True), formal.widgetFactory( formal.RadioChoice, options=txt.client_traffic_options), label=txt.client_traffic_label)) return g
def _create_fwrule_list_entry(index): g = formalutils.CollapsibleGroup(str(index), label='') g.setCollapsed(collapsed=False) g.add( formalutils.Field('ip_subnet', dt.FormIPv4Subnet(required=True), label='IP address or subnet')) g.add( formalutils.Field('protocol', formal.String(required=True), formal.widgetFactory( formal.SelectChoice, options=txt.fw_protocol_select_options), label='Protocol')) g.add( formalutils.Field( 'port', formal.Integer( required=False, validators=[formal.RangeValidator(min=0, max=65535)]), label='Port')) g.add( formalutils.Field('action', formal.String(required=True), formal.widgetFactory( formal.SelectChoice, options=txt.fw_protocol_action_options), label='Action')) return g
def create_radius_group(self, ctx, form): g = formalutils.CollapsibleGroup('radius', label='RADIUS Servers') g.setCollapsed(uihelpers.collapse_setting(ns_ui.collapseRadius)) g.add( formalutils.Field('server1', formal.String(required=False), label='Primary RADIUS server address')) g.add( formalutils.Field( 'serverport1', formal.Integer( required=False, validators=[formal.RangeValidator(min=1, max=65535)]), label='Primary RADIUS server port')) g.add( formalutils.Field('secret1', formal.String(required=False), formal.widgetFactory( formalutils.SemiHiddenPassword), label='Primary RADIUS shared secret')) g.add( formalutils.Field('server2', formal.String(required=False), label='Secondary RADIUS server address')) g.add( formalutils.Field( 'serverport2', formal.Integer( required=False, validators=[formal.RangeValidator(min=1, max=65535)]), label='Secondary RADIUS server port')) g.add( formalutils.Field('secret2', formal.String(required=False), formal.widgetFactory( formalutils.SemiHiddenPassword), label='Secondary RADIUS shared secret')) g.add( formalutils.Field('nasidentifier', formal.String(required=False), label='NAS Identifier')) return g
def form_example(self, ctx): form = formal.Form() # This actually installs a RequiredValidator for you. form.addField('required', formal.String(required=True)) # Exactly the same as above, only with a "manually" installed validator. form.addField('required2', formal.String(validators=[formal.RequiredValidator()])) # Check for a minimum length, if anything entered. form.addField('atLeastFiveChars', formal.String(validators=[formal.LengthValidator(min=5)])) # Check for a minimum length, if anything entered. form.addField('ipAddress', formal.String(strip=True, validators=[formal.PatternValidator(regex=IP_ADDRESS_PATTERN)])) # Check for the word 'silly' form.addField('silly', formal.String(validators=[SillyValidator()])) # Check age is between 18 and 30 form.addField('ohToBeYoungAgain', formal.Integer(validators=[formal.RangeValidator(min=18, max=30)])) form.addAction(self.submitted) return form
def create_debug_group(self, form, ctx): debug_group = formalutils.CollapsibleGroup('debug_group', label='Debug') debug_group.setCollapsed(False) debug_group.add( formal.Field('debug', formal.Integer( required=True, validators=[formal.RangeValidator(min=0, max=2)]), label='Debug mode (0=normal, 1=light, 2=heavy)')) ui_root = db.get_db().getRoot().getS(ns_ui.uiConfig, rdf.Type(ns_ui.UiConfig)) # Default false if no entry found from the database. debug_fda = formalutils.FormDataAccessor(form, ['debug_group'], ctx) if ui_root.hasS(ns_ui.debug): debug_fda['debug'] = ui_root.getS(ns_ui.debug, rdf.Integer) else: debug_fda['debug'] = 0 return debug_group