mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-30 16:42:25 +00:00
Merge branch 'fix_txt' into 'master'
Fix bug sur l'edition du txt + élargi le champ pour dnssec See merge request federez/re2o!35
This commit is contained in:
commit
5f7f1fd8c0
8 changed files with 68 additions and 29 deletions
|
@ -27,7 +27,7 @@ from django.contrib import admin
|
||||||
from reversion.admin import VersionAdmin
|
from reversion.admin import VersionAdmin
|
||||||
|
|
||||||
from .models import IpType, Machine, MachineType, Domain, IpList, Interface
|
from .models import IpType, Machine, MachineType, Domain, IpList, Interface
|
||||||
from .models import Extension, SOA, Mx, Ns, Vlan, Text, Nas, Service
|
from .models import Extension, SOA, Mx, Ns, Vlan, Txt, Nas, Service
|
||||||
from .models import OuverturePort, OuverturePortList
|
from .models import OuverturePort, OuverturePortList
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ class NsAdmin(VersionAdmin):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TextAdmin(VersionAdmin):
|
class TxtAdmin(VersionAdmin):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ admin.site.register(Extension, ExtensionAdmin)
|
||||||
admin.site.register(SOA, SOAAdmin)
|
admin.site.register(SOA, SOAAdmin)
|
||||||
admin.site.register(Mx, MxAdmin)
|
admin.site.register(Mx, MxAdmin)
|
||||||
admin.site.register(Ns, NsAdmin)
|
admin.site.register(Ns, NsAdmin)
|
||||||
admin.site.register(Text, TextAdmin)
|
admin.site.register(Txt, TxtAdmin)
|
||||||
admin.site.register(IpList, IpListAdmin)
|
admin.site.register(IpList, IpListAdmin)
|
||||||
admin.site.register(Interface, InterfaceAdmin)
|
admin.site.register(Interface, InterfaceAdmin)
|
||||||
admin.site.register(Domain, DomainAdmin)
|
admin.site.register(Domain, DomainAdmin)
|
||||||
|
|
|
@ -47,7 +47,7 @@ from .models import (
|
||||||
Extension,
|
Extension,
|
||||||
SOA,
|
SOA,
|
||||||
Mx,
|
Mx,
|
||||||
Text,
|
Txt,
|
||||||
Ns,
|
Ns,
|
||||||
Service,
|
Service,
|
||||||
Vlan,
|
Vlan,
|
||||||
|
@ -364,7 +364,7 @@ class DelNsForm(Form):
|
||||||
class TxtForm(ModelForm):
|
class TxtForm(ModelForm):
|
||||||
"""Ajout d'un txt pour une zone"""
|
"""Ajout d'un txt pour une zone"""
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Text
|
model = Txt
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
@ -375,7 +375,7 @@ class TxtForm(ModelForm):
|
||||||
class DelTxtForm(Form):
|
class DelTxtForm(Form):
|
||||||
"""Suppression d'un ou plusieurs TXT"""
|
"""Suppression d'un ou plusieurs TXT"""
|
||||||
txt = forms.ModelMultipleChoiceField(
|
txt = forms.ModelMultipleChoiceField(
|
||||||
queryset=Text.objects.all(),
|
queryset=Txt.objects.all(),
|
||||||
label="Enregistrements Txt actuels",
|
label="Enregistrements Txt actuels",
|
||||||
widget=forms.CheckboxSelectMultiple
|
widget=forms.CheckboxSelectMultiple
|
||||||
)
|
)
|
||||||
|
|
20
machines/migrations/0064_auto_20171115_0253.py
Normal file
20
machines/migrations/0064_auto_20171115_0253.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.7 on 2017-11-15 01:53
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('machines', '0063_auto_20171020_0040'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='text',
|
||||||
|
name='field2',
|
||||||
|
field=models.TextField(max_length=2047),
|
||||||
|
),
|
||||||
|
]
|
19
machines/migrations/0065_auto_20171115_1514.py
Normal file
19
machines/migrations/0065_auto_20171115_1514.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.7 on 2017-11-15 14:14
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('machines', '0064_auto_20171115_0253'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RenameModel(
|
||||||
|
old_name='Text',
|
||||||
|
new_name='Txt',
|
||||||
|
),
|
||||||
|
]
|
|
@ -382,13 +382,13 @@ class Ns(models.Model):
|
||||||
return str(self.zone) + ' ' + str(self.ns)
|
return str(self.zone) + ' ' + str(self.ns)
|
||||||
|
|
||||||
|
|
||||||
class Text(models.Model):
|
class Txt(models.Model):
|
||||||
""" Un enregistrement TXT associé à une extension"""
|
""" Un enregistrement TXT associé à une extension"""
|
||||||
PRETTY_NAME = "Enregistrement TXT"
|
PRETTY_NAME = "Enregistrement TXT"
|
||||||
|
|
||||||
zone = models.ForeignKey('Extension', on_delete=models.PROTECT)
|
zone = models.ForeignKey('Extension', on_delete=models.PROTECT)
|
||||||
field1 = models.CharField(max_length=255)
|
field1 = models.CharField(max_length=255)
|
||||||
field2 = models.CharField(max_length=255)
|
field2 = models.TextField(max_length=2047)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.zone) + " : " + str(self.field1) + " " +\
|
return str(self.zone) + " : " + str(self.field1) + " " +\
|
||||||
|
@ -920,13 +920,13 @@ def ns_post_delete(sender, **kwargs):
|
||||||
regen('dns')
|
regen('dns')
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=Text)
|
@receiver(post_save, sender=Txt)
|
||||||
def text_post_save(sender, **kwargs):
|
def text_post_save(sender, **kwargs):
|
||||||
"""Regeneration dns après modification d'un TXT"""
|
"""Regeneration dns après modification d'un TXT"""
|
||||||
regen('dns')
|
regen('dns')
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_delete, sender=Text)
|
@receiver(post_delete, sender=Txt)
|
||||||
def text_post_delete(sender, **kwargs):
|
def text_post_delete(sender, **kwargs):
|
||||||
"""Regeneration dns après modification d'un TX"""
|
"""Regeneration dns après modification d'un TX"""
|
||||||
regen('dns')
|
regen('dns')
|
||||||
|
|
|
@ -31,7 +31,7 @@ from machines.models import (
|
||||||
IpList,
|
IpList,
|
||||||
MachineType,
|
MachineType,
|
||||||
Domain,
|
Domain,
|
||||||
Text,
|
Txt,
|
||||||
Mx,
|
Mx,
|
||||||
Service_link,
|
Service_link,
|
||||||
Ns,
|
Ns,
|
||||||
|
@ -195,20 +195,20 @@ class MxSerializer(serializers.ModelSerializer):
|
||||||
return str(obj.dns_entry)
|
return str(obj.dns_entry)
|
||||||
|
|
||||||
|
|
||||||
class TextSerializer(serializers.ModelSerializer):
|
class TxtSerializer(serializers.ModelSerializer):
|
||||||
"""Serialisation d'un txt : zone cible et l'entrée txt
|
"""Serialisation d'un txt : zone cible et l'entrée txt
|
||||||
sont evaluées à part"""
|
sont evaluées à part"""
|
||||||
zone = serializers.SerializerMethodField('get_zone_name')
|
zone = serializers.SerializerMethodField('get_zone_name')
|
||||||
text_entry = serializers.SerializerMethodField('get_text_name')
|
txt_entry = serializers.SerializerMethodField('get_txt_name')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Text
|
model = Txt
|
||||||
fields = ('zone', 'text_entry', 'field1', 'field2')
|
fields = ('zone', 'txt_entry', 'field1', 'field2')
|
||||||
|
|
||||||
def get_zone_name(self, obj):
|
def get_zone_name(self, obj):
|
||||||
return str(obj.zone.name)
|
return str(obj.zone.name)
|
||||||
|
|
||||||
def get_text_name(self, obj):
|
def get_txt_name(self, obj):
|
||||||
return str(obj.dns_entry)
|
return str(obj.dns_entry)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ urlpatterns = [
|
||||||
url(r'^edit_mx/(?P<mxid>[0-9]+)$', views.edit_mx, name='edit-mx'),
|
url(r'^edit_mx/(?P<mxid>[0-9]+)$', views.edit_mx, name='edit-mx'),
|
||||||
url(r'^del_mx/$', views.del_mx, name='del-mx'),
|
url(r'^del_mx/$', views.del_mx, name='del-mx'),
|
||||||
url(r'^add_txt/$', views.add_txt, name='add-txt'),
|
url(r'^add_txt/$', views.add_txt, name='add-txt'),
|
||||||
url(r'^edit_txt/(?P<textid>[0-9]+)$', views.edit_txt, name='edit-txt'),
|
url(r'^edit_txt/(?P<txtid>[0-9]+)$', views.edit_txt, name='edit-txt'),
|
||||||
url(r'^del_txt/$', views.del_txt, name='del-txt'),
|
url(r'^del_txt/$', views.del_txt, name='del-txt'),
|
||||||
url(r'^add_ns/$', views.add_ns, name='add-ns'),
|
url(r'^add_ns/$', views.add_ns, name='add-ns'),
|
||||||
url(r'^edit_ns/(?P<nsid>[0-9]+)$', views.edit_ns, name='edit-ns'),
|
url(r'^edit_ns/(?P<nsid>[0-9]+)$', views.edit_ns, name='edit-ns'),
|
||||||
|
@ -94,7 +94,7 @@ urlpatterns = [
|
||||||
url(r'^rest/corresp/$', views.corresp, name='corresp'),
|
url(r'^rest/corresp/$', views.corresp, name='corresp'),
|
||||||
url(r'^rest/mx/$', views.mx, name='mx'),
|
url(r'^rest/mx/$', views.mx, name='mx'),
|
||||||
url(r'^rest/ns/$', views.ns, name='ns'),
|
url(r'^rest/ns/$', views.ns, name='ns'),
|
||||||
url(r'^rest/text/$', views.text, name='text'),
|
url(r'^rest/txt/$', views.txt, name='txt'),
|
||||||
url(r'^rest/zones/$', views.zones, name='zones'),
|
url(r'^rest/zones/$', views.zones, name='zones'),
|
||||||
url(r'^rest/service_servers/$', views.service_servers, name='service-servers'),
|
url(r'^rest/service_servers/$', views.service_servers, name='service-servers'),
|
||||||
url(r'^rest/ouverture_ports/$', views.ouverture_ports, name='ouverture-ports'),
|
url(r'^rest/ouverture_ports/$', views.ouverture_ports, name='ouverture-ports'),
|
||||||
|
|
|
@ -48,7 +48,7 @@ from machines.serializers import ( FullInterfaceSerializer,
|
||||||
InterfaceSerializer,
|
InterfaceSerializer,
|
||||||
TypeSerializer,
|
TypeSerializer,
|
||||||
DomainSerializer,
|
DomainSerializer,
|
||||||
TextSerializer,
|
TxtSerializer,
|
||||||
MxSerializer,
|
MxSerializer,
|
||||||
ExtensionSerializer,
|
ExtensionSerializer,
|
||||||
ServiceServersSerializer,
|
ServiceServersSerializer,
|
||||||
|
@ -109,7 +109,7 @@ from .models import (
|
||||||
Service_link,
|
Service_link,
|
||||||
Vlan,
|
Vlan,
|
||||||
Nas,
|
Nas,
|
||||||
Text,
|
Txt,
|
||||||
OuverturePortList,
|
OuverturePortList,
|
||||||
OuverturePort
|
OuverturePort
|
||||||
)
|
)
|
||||||
|
@ -721,8 +721,8 @@ def add_txt(request):
|
||||||
@permission_required('infra')
|
@permission_required('infra')
|
||||||
def edit_txt(request, txtid):
|
def edit_txt(request, txtid):
|
||||||
try:
|
try:
|
||||||
txt_instance = Text.objects.get(pk=txtid)
|
txt_instance = Txt.objects.get(pk=txtid)
|
||||||
except Text.DoesNotExist:
|
except Txt.DoesNotExist:
|
||||||
messages.error(request, u"Entrée inexistante" )
|
messages.error(request, u"Entrée inexistante" )
|
||||||
return redirect(reverse('machines:index-extension'))
|
return redirect(reverse('machines:index-extension'))
|
||||||
txt = TxtForm(request.POST or None, instance=txt_instance)
|
txt = TxtForm(request.POST or None, instance=txt_instance)
|
||||||
|
@ -1045,8 +1045,8 @@ def index_extension(request):
|
||||||
soa_list = SOA.objects.order_by('name')
|
soa_list = SOA.objects.order_by('name')
|
||||||
mx_list = Mx.objects.order_by('zone').select_related('zone').select_related('name__extension')
|
mx_list = Mx.objects.order_by('zone').select_related('zone').select_related('name__extension')
|
||||||
ns_list = Ns.objects.order_by('zone').select_related('zone').select_related('ns__extension')
|
ns_list = Ns.objects.order_by('zone').select_related('zone').select_related('ns__extension')
|
||||||
text_list = Text.objects.all().select_related('zone')
|
txt_list = Txt.objects.all().select_related('zone')
|
||||||
return render(request, 'machines/index_extension.html', {'extension_list':extension_list, 'soa_list': soa_list, 'mx_list': mx_list, 'ns_list': ns_list, 'text_list' : text_list})
|
return render(request, 'machines/index_extension.html', {'extension_list':extension_list, 'soa_list': soa_list, 'mx_list': mx_list, 'ns_list': ns_list, 'txt_list' : txt_list})
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def index_alias(request, interfaceid):
|
def index_alias(request, interfaceid):
|
||||||
|
@ -1141,8 +1141,8 @@ def history(request, object, id):
|
||||||
return redirect(reverse('machines:index'))
|
return redirect(reverse('machines:index'))
|
||||||
elif object == 'txt' and request.user.has_perms(('cableur',)):
|
elif object == 'txt' and request.user.has_perms(('cableur',)):
|
||||||
try:
|
try:
|
||||||
object_instance = Text.objects.get(pk=id)
|
object_instance = Txt.objects.get(pk=id)
|
||||||
except Text.DoesNotExist:
|
except Txt.DoesNotExist:
|
||||||
messages.error(request, "Txt inexistant")
|
messages.error(request, "Txt inexistant")
|
||||||
return redirect(reverse('machines:index'))
|
return redirect(reverse('machines:index'))
|
||||||
elif object == 'ns' and request.user.has_perms(('cableur',)):
|
elif object == 'ns' and request.user.has_perms(('cableur',)):
|
||||||
|
@ -1338,9 +1338,9 @@ def mx(request):
|
||||||
@csrf_exempt
|
@csrf_exempt
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required('serveur')
|
@permission_required('serveur')
|
||||||
def text(request):
|
def txt(request):
|
||||||
text = Text.objects.all().select_related('zone')
|
txt = Txt.objects.all().select_related('zone')
|
||||||
seria = TextSerializer(text, many=True)
|
seria = TxtSerializer(txt, many=True)
|
||||||
return JSONResponse(seria.data)
|
return JSONResponse(seria.data)
|
||||||
|
|
||||||
@csrf_exempt
|
@csrf_exempt
|
||||||
|
|
Loading…
Reference in a new issue