mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-23 20:03:11 +00:00
Reparation ip search + formatage exact des macs
This commit is contained in:
parent
a0edac376e
commit
d2f80bb39e
3 changed files with 5 additions and 6 deletions
|
@ -43,7 +43,7 @@ from django.forms import ValidationError
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from macaddress.fields import MACAddressField
|
from macaddress.fields import MACAddressField, default_dialect
|
||||||
from netaddr import mac_bare, EUI, IPSet, IPRange, IPNetwork, IPAddress
|
from netaddr import mac_bare, EUI, IPSet, IPRange, IPNetwork, IPAddress
|
||||||
|
|
||||||
import preferences.models
|
import preferences.models
|
||||||
|
@ -1099,7 +1099,7 @@ class Interface(RevMixin, AclMixin, FieldPermissionModelMixin, models.Model):
|
||||||
""" Tente un formatage mac_bare, si échoue, lève une erreur de
|
""" Tente un formatage mac_bare, si échoue, lève une erreur de
|
||||||
validation"""
|
validation"""
|
||||||
try:
|
try:
|
||||||
self.mac_address = str(EUI(self.mac_address))
|
self.mac_address = str(EUI(self.mac_address, dialect=default_dialect()))
|
||||||
except:
|
except:
|
||||||
raise ValidationError(_("The given MAC address is invalid."))
|
raise ValidationError(_("The given MAC address is invalid."))
|
||||||
|
|
||||||
|
@ -1116,7 +1116,6 @@ class Interface(RevMixin, AclMixin, FieldPermissionModelMixin, models.Model):
|
||||||
if not hasattr(self, 'type'):
|
if not hasattr(self, 'type'):
|
||||||
raise ValidationError(_("The selected IP type is invalid."))
|
raise ValidationError(_("The selected IP type is invalid."))
|
||||||
self.filter_macaddress()
|
self.filter_macaddress()
|
||||||
self.mac_address = str(EUI(self.mac_address)) or None
|
|
||||||
if not self.ipv4 or self.type.ip_type != self.ipv4.ip_type:
|
if not self.ipv4 or self.type.ip_type != self.ipv4.ip_type:
|
||||||
self.assign_ipv4()
|
self.assign_ipv4()
|
||||||
super(Interface, self).clean(*args, **kwargs)
|
super(Interface, self).clean(*args, **kwargs)
|
||||||
|
|
|
@ -174,7 +174,7 @@ def search_single_word(word, filters, user,
|
||||||
interface__ipv4__ipv4__icontains=word
|
interface__ipv4__ipv4__icontains=word
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
_mac_addr = EUI(word)
|
_mac_addr = EUI(word, 48)
|
||||||
filter_machines |= Q(interface__mac_address=word)
|
filter_machines |= Q(interface__mac_address=word)
|
||||||
except AddrFormatError:
|
except AddrFormatError:
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -616,9 +616,9 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
|
||||||
if access_refresh:
|
if access_refresh:
|
||||||
user_ldap.dialupAccess = str(self.has_access())
|
user_ldap.dialupAccess = str(self.has_access())
|
||||||
if mac_refresh:
|
if mac_refresh:
|
||||||
user_ldap.macs = sorted([str(mac) for mac in Interface.objects.filter(
|
user_ldap.macs = [str(mac) for mac in Interface.objects.filter(
|
||||||
machine__user=self
|
machine__user=self
|
||||||
).values_list('mac_address', flat=True).distinct()])
|
).values_list('mac_address', flat=True).distinct()]
|
||||||
if group_refresh:
|
if group_refresh:
|
||||||
# Need to refresh all groups because we don't know which groups
|
# Need to refresh all groups because we don't know which groups
|
||||||
# were updated during edition of groups and the user may no longer
|
# were updated during edition of groups and the user may no longer
|
||||||
|
|
Loading…
Reference in a new issue