Beispiel #1
0
    def __init__(self, *args, **kwargs):
        super(ActiveDirectoryForm, self).__init__(*args, **kwargs)
        if self.instance.ad_bindpw:
            self.fields['ad_bindpw'].required = False
        self.cifs = CIFS.objects.latest('id')
        self.__original_save()

        self.fields["ad_idmap_backend"].widget.attrs["onChange"] = (
            "activedirectory_idmap_check();")

        self.fields["ad_enable"].widget.attrs["onChange"] = (
            "activedirectory_mutex_toggle();")
        if self.cifs:
            self.fields[
                'ad_netbiosname_a'].initial = self.cifs.cifs_srv_netbiosname
            self.fields[
                'ad_netbiosname_b'].initial = self.cifs.cifs_srv_netbiosname_b
            self.fields[
                'ad_netbiosalias'].initial = self.cifs.cifs_srv_netbiosalias
        _n = notifier()
        if not _n.is_freenas():
            if _n.failover_licensed():
                from freenasUI.failover.utils import node_label_field
                node_label_field(
                    _n.failover_node(),
                    self.fields['ad_netbiosname_a'],
                    self.fields['ad_netbiosname_b'],
                )
            else:
                del self.fields['ad_netbiosname_b']
        else:
            del self.fields['ad_netbiosname_b']
Beispiel #2
0
    def __init__(self, *args, **kwargs):
        super(AliasForm, self).__init__(*args, **kwargs)
        self.instance._original_alias_v4address = self.instance.alias_v4address
        self.instance._original_alias_v4netmaskbit = (
            self.instance.alias_v4netmaskbit)
        self.instance._original_alias_v6address = self.instance.alias_v6address
        self.instance._original_alias_v6netmaskbit = (
            self.instance.alias_v6netmaskbit)

        _n = notifier()
        if not _n.is_freenas() and _n.failover_licensed():
            from freenasUI.failover.utils import node_label_field
            node_label_field(
                _n.failover_node(),
                self.fields['alias_v4address'],
                self.fields['alias_v4address_b'],
            )
            node_label_field(
                _n.failover_node(),
                self.fields['alias_v6address'],
                self.fields['alias_v6address_b'],
            )
        else:
            del self.fields['alias_vip']
            del self.fields['alias_v4address_b']
            del self.fields['alias_v6address_b']
Beispiel #3
0
    def __init__(self, *args, **kwargs):
        super(ActiveDirectoryForm, self).__init__(*args, **kwargs)
        if self.instance.ad_bindpw:
            self.fields['ad_bindpw'].required = False
        self.cifs = CIFS.objects.latest('id')
        self.__original_save()

        self.fields["ad_idmap_backend"].widget.attrs["onChange"] = (
            "activedirectory_idmap_check();"
        )

        self.fields["ad_enable"].widget.attrs["onChange"] = (
            "activedirectory_mutex_toggle();"
        )
        if self.cifs:
            self.fields['ad_netbiosname_a'].initial = self.cifs.cifs_srv_netbiosname
            self.fields['ad_netbiosname_b'].initial = self.cifs.cifs_srv_netbiosname_b
            self.fields['ad_netbiosalias'].initial = self.cifs.cifs_srv_netbiosalias
        _n = notifier()
        if not _n.is_freenas():
            if _n.failover_licensed():
                from freenasUI.failover.utils import node_label_field
                node_label_field(
                    _n.failover_node(),
                    self.fields['ad_netbiosname_a'],
                    self.fields['ad_netbiosname_b'],
                )
            else:
                del self.fields['ad_netbiosname_b']
        else:
                del self.fields['ad_netbiosname_b']
Beispiel #4
0
 def __init__(self, *args, **kwargs):
     super(LDAPForm, self).__init__(*args, **kwargs)
     self.fields["ldap_enable"].widget.attrs["onChange"] = (
         "ldap_mutex_toggle();")
     self.cifs = CIFS.objects.latest('id')
     if self.cifs:
         self.fields[
             'ldap_netbiosname_a'].initial = self.cifs.cifs_srv_netbiosname
         self.fields[
             'ldap_netbiosname_b'].initial = self.cifs.cifs_srv_netbiosname_b
         self.fields[
             'ldap_netbiosalias'].initial = self.cifs.cifs_srv_netbiosalias
     _n = notifier()
     if not _n.is_freenas():
         if _n.failover_licensed():
             from freenasUI.failover.utils import node_label_field
             node_label_field(
                 _n.failover_node(),
                 self.fields['ldap_netbiosname_a'],
                 self.fields['ldap_netbiosname_b'],
             )
         else:
             del self.fields['ldap_netbiosname_b']
     else:
         del self.fields['ldap_netbiosname_b']
Beispiel #5
0
    def __init__(self, *args, **kwargs):
        super(AliasForm, self).__init__(*args, **kwargs)
        self.instance._original_alias_v4address = self.instance.alias_v4address
        self.instance._original_alias_v4netmaskbit = (
            self.instance.alias_v4netmaskbit)
        self.instance._original_alias_v6address = self.instance.alias_v6address
        self.instance._original_alias_v6netmaskbit = (
            self.instance.alias_v6netmaskbit)

        _n = notifier()
        if not _n.is_freenas() and _n.failover_licensed():
            from freenasUI.failover.utils import node_label_field
            node_label_field(
                _n.failover_node(),
                self.fields['alias_v4address'],
                self.fields['alias_v4address_b'],
            )
            node_label_field(
                _n.failover_node(),
                self.fields['alias_v6address'],
                self.fields['alias_v6address_b'],
            )
        else:
            del self.fields['alias_vip']
            del self.fields['alias_v4address_b']
            del self.fields['alias_v6address_b']
Beispiel #6
0
 def __init__(self, *args, **kwargs):
     super(LDAPForm, self).__init__(*args, **kwargs)
     self.fields["ldap_enable"].widget.attrs["onChange"] = (
         "ldap_mutex_toggle();")
     if hasattr(notifier, 'failover_node'):
         from freenasUI.failover.utils import node_label_field
         node_label_field(
             notifier().failover_node(),
             self.fields['ldap_netbiosname_a'],
             self.fields['ldap_netbiosname_b'],
         )
Beispiel #7
0
 def __init__(self, *args, **kwargs):
     super(LDAPForm, self).__init__(*args, **kwargs)
     self.fields["ldap_enable"].widget.attrs["onChange"] = (
         "ldap_mutex_toggle();"
     )
     if hasattr(notifier, 'failover_node'):
         from freenasUI.failover.utils import node_label_field
         node_label_field(
             notifier().failover_node(),
             self.fields['ldap_netbiosname_a'],
             self.fields['ldap_netbiosname_b'],
         )
Beispiel #8
0
    def __init__(self, *args, **kwargs):
        super(GlobalConfigurationForm, self).__init__(*args, **kwargs)
        if hasattr(notifier, "failover_licensed"):
            if not notifier().failover_licensed():
                del self.fields["gc_hostname_b"]

            else:
                from freenasUI.failover.utils import node_label_field

                node_label_field(notifier().failover_node(), self.fields["gc_hostname"], self.fields["gc_hostname_b"])
        else:
            del self.fields["gc_hostname_b"]
Beispiel #9
0
    def __init__(self, *args, **kwargs):
        super(GlobalConfigurationForm, self).__init__(*args, **kwargs)
        if hasattr(notifier, 'failover_licensed'):
            if not notifier().failover_licensed():
                del self.fields['gc_hostname_b']

            else:
                from freenasUI.failover.utils import node_label_field
                node_label_field(
                    notifier().failover_node(),
                    self.fields['gc_hostname'],
                    self.fields['gc_hostname_b'],
                )
Beispiel #10
0
    def __init__(self, *args, **kwargs):
        super(CIFSForm, self).__init__(*args, **kwargs)
        if self.data and self.data.get('cifs_srv_bindip'):
            if ',' in self.data['cifs_srv_bindip']:
                self.data = self.data.copy()
                self.data.setlist('cifs_srv_bindip',
                                  self.data['cifs_srv_bindip'].split(','))

        self.fields['cifs_srv_bindip'].choices = list(
            choices.IPChoices(noloopback=False))
        self.fields[
            'cifs_srv_unixcharset'].choices = choices.UNIXCHARSET_CHOICES()

        if self.instance.id and self.instance.cifs_srv_bindip:
            bindips = []
            for ip in self.instance.cifs_srv_bindip:
                bindips.append(ip)

            self.fields['cifs_srv_bindip'].initial = (bindips)
        else:
            self.fields['cifs_srv_bindip'].initial = ('')

        if activedirectory_enabled():
            self.initial['cifs_srv_localmaster'] = False
            self.fields['cifs_srv_localmaster'].widget.attrs[
                'disabled'] = 'disabled'
            self.initial['cifs_srv_timeserver'] = False
            self.fields['cifs_srv_timeserver'].widget.attrs[
                'disabled'] = 'disabled'
            self.initial['cifs_srv_domain_logons'] = False
            self.fields['cifs_srv_domain_logons'].widget.attrs[
                'disabled'] = 'disabled'

        elif ldap_enabled():
            self.initial['cifs_srv_domain_logons'] = True
            self.fields['cifs_srv_domain_logons'].widget.attrs[
                'readonly'] = True

        _n = notifier()
        if not _n.is_freenas():
            if not _n.failover_licensed():
                del self.fields['cifs_srv_netbiosname_b']
            else:
                from freenasUI.failover.utils import node_label_field
                node_label_field(
                    _n.failover_node(),
                    self.fields['cifs_srv_netbiosname'],
                    self.fields['cifs_srv_netbiosname_b'],
                )
        else:
            del self.fields['cifs_srv_netbiosname_b']
Beispiel #11
0
    def __init__(self, *args, **kwargs):
        super(CIFSForm, self).__init__(*args, **kwargs)
        if self.data and self.data.get('cifs_srv_bindip'):
            if ',' in self.data['cifs_srv_bindip']:
                self.data = self.data.copy()
                self.data.setlist(
                    'cifs_srv_bindip',
                    self.data['cifs_srv_bindip'].split(',')
                )

        self.fields['cifs_srv_bindip'].choices = list(choices.IPChoices(noloopback=False))
        self.fields['cifs_srv_unixcharset'].choices = choices.UNIXCHARSET_CHOICES()

        if self.instance.id and self.instance.cifs_srv_bindip:
            bindips = []
            for ip in self.instance.cifs_srv_bindip:
                bindips.append(ip)

            self.fields['cifs_srv_bindip'].initial = (bindips)
        else:
            self.fields['cifs_srv_bindip'].initial = ('')

        if activedirectory_enabled():
            self.initial['cifs_srv_localmaster'] = False
            self.fields['cifs_srv_localmaster'].widget.attrs['disabled'] = 'disabled'
            self.initial['cifs_srv_timeserver'] = False
            self.fields['cifs_srv_timeserver'].widget.attrs['disabled'] = 'disabled'
            self.initial['cifs_srv_domain_logons'] = False
            self.fields['cifs_srv_domain_logons'].widget.attrs['disabled'] = 'disabled'

        elif ldap_enabled():
            self.initial['cifs_srv_domain_logons'] = True
            self.fields['cifs_srv_domain_logons'].widget.attrs['readonly'] = True

        _n = notifier()
        if not _n.is_freenas():
            if not _n.failover_licensed():
                del self.fields['cifs_srv_netbiosname_b']
            else:
                from freenasUI.failover.utils import node_label_field
                node_label_field(
                    _n.failover_node(),
                    self.fields['cifs_srv_netbiosname'],
                    self.fields['cifs_srv_netbiosname_b'],
                )
        else:
            del self.fields['cifs_srv_netbiosname_b']
Beispiel #12
0
    def __init__(self, *args, **kwargs):
        super(ActiveDirectoryForm, self).__init__(*args, **kwargs)
        if self.instance.ad_bindpw:
            self.fields['ad_bindpw'].required = False
        self.__original_save()

        self.fields["ad_idmap_backend"].widget.attrs["onChange"] = (
            "activedirectory_idmap_check();")

        self.fields["ad_enable"].widget.attrs["onChange"] = (
            "activedirectory_mutex_toggle();")
        if hasattr(notifier, 'failover_node'):
            from freenasUI.failover.utils import node_label_field
            node_label_field(
                notifier().failover_node(),
                self.fields['ad_netbiosname'],
                self.fields['ad_netbiosname_b'],
            )
Beispiel #13
0
    def __init__(self, *args, **kwargs):
        super(ActiveDirectoryForm, self).__init__(*args, **kwargs)
        if self.instance.ad_bindpw:
            self.fields['ad_bindpw'].required = False
        self.__original_save()

        self.fields["ad_idmap_backend"].widget.attrs["onChange"] = (
            "activedirectory_idmap_check();")

        self.fields["ad_enable"].widget.attrs["onChange"] = (
            "activedirectory_mutex_toggle();")
        if hasattr(notifier, 'failover_node'):
            from freenasUI.failover.utils import node_label_field
            node_label_field(
                notifier().failover_node(),
                self.fields['ad_netbiosname_a'],
                self.fields['ad_netbiosname_b'],
            )
Beispiel #14
0
    def __init__(self, *args, **kwargs):
        super(GlobalConfigurationForm, self).__init__(*args, **kwargs)
        self.original_instance = dict(self.instance.__dict__)

        if hasattr(notifier, 'failover_licensed'):
            if not notifier().failover_licensed():
                del self.fields['gc_hostname_b']
                del self.fields['gc_hostname_virtual']

            else:
                from freenasUI.failover.utils import node_label_field
                node_label_field(
                    notifier().failover_node(),
                    self.fields['gc_hostname'],
                    self.fields['gc_hostname_b'],
                )
        else:
            del self.fields['gc_hostname_b']
            del self.fields['gc_hostname_virtual']
Beispiel #15
0
 def __init__(self, *args, **kwargs):
     super(LDAPForm, self).__init__(*args, **kwargs)
     self.fields["ldap_enable"].widget.attrs["onChange"] = (
         "ldap_mutex_toggle();"
     )
     self.cifs = CIFS.objects.latest('id')
     if self.cifs:
         self.fields['ldap_netbiosname_a'].initial = self.cifs.cifs_srv_netbiosname
         self.fields['ldap_netbiosname_b'].initial = self.cifs.cifs_srv_netbiosname_b
         self.fields['ldap_netbiosalias'].initial = self.cifs.cifs_srv_netbiosalias
     _n = notifier()
     if not _n.is_freenas():
         if _n.failover_licensed():
             from freenasUI.failover.utils import node_label_field
             node_label_field(
                 _n.failover_node(),
                 self.fields['ldap_netbiosname_a'],
                 self.fields['ldap_netbiosname_b'],
             )
         else:
             del self.fields['ldap_netbiosname_b']
     else:
             del self.fields['ldap_netbiosname_b']
Beispiel #16
0
    def __init__(self, *args, **kwargs):
        super(CIFSForm, self).__init__(*args, **kwargs)
        if self.data and self.data.get('cifs_srv_bindip'):
            if ',' in self.data['cifs_srv_bindip']:
                self.data = self.data.copy()
                self.data.setlist('cifs_srv_bindip',
                                  self.data['cifs_srv_bindip'].split(','))

        with client as c:
            self.fields['cifs_srv_bindip'].choices = (
                c.call('smb.bindip_choices')).items()

        self.fields[
            'cifs_srv_unixcharset'].choices = choices.UNIXCHARSET_CHOICES()

        if self.instance.id and self.instance.cifs_srv_bindip:
            bindips = []
            for ip in self.instance.cifs_srv_bindip:
                bindips.append(ip)

            self.fields['cifs_srv_bindip'].initial = (bindips)
        else:
            self.fields['cifs_srv_bindip'].initial = ('')

        _n = notifier()
        if not _n.is_freenas():
            if not _n.failover_licensed():
                del self.fields['cifs_srv_netbiosname_b']
            else:
                from freenasUI.failover.utils import node_label_field
                node_label_field(
                    _n.failover_node(),
                    self.fields['cifs_srv_netbiosname'],
                    self.fields['cifs_srv_netbiosname_b'],
                )
        else:
            del self.fields['cifs_srv_netbiosname_b']
Beispiel #17
0
    def __init__(self, *args, **kwargs):
        super(InterfacesForm, self).__init__(*args, **kwargs)

        self._carp = False
        _n = notifier()
        if not _n.is_freenas() and _n.failover_licensed():
            from freenasUI.failover.utils import node_label_field
            self._carp = True
            node_label_field(
                _n.failover_node(),
                self.fields['int_ipv4address'],
                self.fields['int_ipv4address_b'],
            )

        if not self._carp:
            del self.fields['int_vip']
            del self.fields['int_vhid']
            del self.fields['int_critical']
            del self.fields['int_group']
            del self.fields['int_ipv4address_b']

        self.fields['int_interface'].choices = choices.NICChoices(nocarp=True)
        self.fields['int_dhcp'].widget.attrs['onChange'] = (
            'javascript:toggleGeneric("id_int_dhcp", ["id_int_ipv4address", '
            '"id_int_ipv4address_b", "id_int_v4netmaskbit"]);')
        self.fields['int_ipv6auto'].widget.attrs['onChange'] = (
            'javascript:toggleGeneric("id_int_ipv6auto", '
            '["id_int_ipv6address", "id_int_v6netmaskbit"]);')
        if 'int_critical' in self.fields:
            self.fields['int_critical'].widget.attrs['onChange'] = (
                'javascript:toggleGeneric("id_int_critical", '
                '["id_int_group"], true);')
        dhcp = False
        ipv6auto = False
        if self.data:
            if self.data.get("int_dhcp"):
                dhcp = True
            if self.data.get("int_ipv6auto"):
                ipv6auto = True
        elif self.instance.id:
            if self.instance.int_dhcp:
                dhcp = True
            if self.instance.int_ipv6auto:
                ipv6auto = True
        if dhcp:
            if 'int_ipv4address' in self.fields:
                self.fields['int_ipv4address'].widget.attrs['disabled'] = (
                    'disabled')
            if 'int_ipv4address_b' in self.fields:
                self.fields['int_ipv4address_b'].widget.attrs['disabled'] = (
                    'disabled')
            self.fields['int_v4netmaskbit'].widget.attrs['disabled'] = (
                'disabled')
        if ipv6auto:
            self.fields['int_ipv6address'].widget.attrs['disabled'] = (
                'disabled')
            self.fields['int_v6netmaskbit'].widget.attrs['disabled'] = (
                'disabled')

        if self.instance.id:
            if 'int_group' in self.fields and not self.instance.int_critical:
                self.fields['int_group'].widget.attrs['disabled'] = (
                    'disabled')
            self.fields['int_interface'] = \
                forms.CharField(
                    label=self.fields['int_interface'].label,
                    initial=self.instance.int_interface,
                    widget=forms.TextInput(
                        attrs={
                            'readonly': True,
                            'class': (
                                'dijitDisabled dijitTextBoxDisabled'
                                ' dijitValidationTextBoxDisabled'
                            ),
                        },
                    )
                )
Beispiel #18
0
    def __init__(self, *args, **kwargs):
        super(InterfacesForm, self).__init__(*args, **kwargs)

        self._carp = False
        _n = notifier()
        if not _n.is_freenas() and _n.failover_licensed():
            from freenasUI.failover.utils import node_label_field
            self._carp = True
            node_label_field(
                _n.failover_node(),
                self.fields['int_ipv4address'],
                self.fields['int_ipv4address_b'],
            )

        if not self._carp:
            del self.fields['int_vip']
            del self.fields['int_vhid']
            del self.fields['int_critical']
            del self.fields['int_group']
            del self.fields['int_ipv4address_b']

        self.fields['int_interface'].choices = choices.NICChoices(nocarp=True)
        self.fields['int_dhcp'].widget.attrs['onChange'] = (
            'javascript:toggleGeneric("id_int_dhcp", ["id_int_ipv4address", '
            '"id_int_ipv4address_b", "id_int_v4netmaskbit"]);')
        self.fields['int_ipv6auto'].widget.attrs['onChange'] = (
            'javascript:toggleGeneric("id_int_ipv6auto", '
            '["id_int_ipv6address", "id_int_v6netmaskbit"]);')
        if 'int_critical' in self.fields:
            self.fields['int_critical'].widget.attrs['onChange'] = (
                'javascript:toggleGeneric("id_int_critical", '
                '["id_int_group"], true);')
        dhcp = False
        ipv6auto = False
        if self.data:
            if self.data.get("int_dhcp"):
                dhcp = True
            if self.data.get("int_ipv6auto"):
                ipv6auto = True
        elif self.instance.id:
            if self.instance.int_dhcp:
                dhcp = True
            if self.instance.int_ipv6auto:
                ipv6auto = True
        if dhcp:
            if 'int_ipv4address' in self.fields:
                self.fields['int_ipv4address'].widget.attrs['disabled'] = (
                    'disabled')
            if 'int_ipv4address_b' in self.fields:
                self.fields['int_ipv4address_b'].widget.attrs['disabled'] = (
                    'disabled')
            self.fields['int_v4netmaskbit'].widget.attrs['disabled'] = (
                'disabled')
        if ipv6auto:
            self.fields['int_ipv6address'].widget.attrs['disabled'] = (
                'disabled')
            self.fields['int_v6netmaskbit'].widget.attrs['disabled'] = (
                'disabled')

        if self.instance.id:
            if 'int_group' in self.fields and not self.instance.int_critical:
                self.fields['int_group'].widget.attrs['disabled'] = (
                    'disabled'
                )
            self.fields['int_interface'] = forms.CharField(
                label=self.fields['int_interface'].label,
                initial=self.instance.int_interface,
                widget=forms.TextInput(
                    attrs={
                        'readonly': True,
                        'class': (
                            'dijitDisabled dijitTextBoxDisabled'
                            ' dijitValidationTextBoxDisabled'
                        ),
                    },
                )
            )