enable the edit_record link, URL, and view
This commit is contained in:
parent
ddae5be662
commit
90e38d2aef
|
@ -32,7 +32,7 @@
|
|||
Record Actions <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Edit Record (Coming Soon)</a></li>
|
||||
<li><a href="{% url "edit_record" dns_server=dns_server.hostname zone_name=zone_name record_name=current_record.rr_name record_data=current_record.rr_data record_ttl=current_record.rr_ttl%}">Edit Record</a></li>
|
||||
{% if current_record.rr_type == "A" %}
|
||||
<li><a href="{% url "add_cname" dns_server=dns_server.hostname zone_name=zone_name record_name=current_record.rr_name %}">Add CNAME Pointer</a></li>
|
||||
{% endif %}
|
||||
|
|
|
@ -19,4 +19,5 @@ urlpatterns = [
|
|||
url(r'^add_record/(?P<dns_server>[a-zA-Z0-9.-]+)/(?P<zone_name>[a-zA-Z0-9.-]+)/$', binder.views.view_add_record, name="add_record"),
|
||||
url(r'^add_cname/(?P<dns_server>[a-zA-Z0-9.-]+)/(?P<zone_name>[a-zA-Z0-9.-]+)/(?P<record_name>.*?)/$', binder.views.view_add_cname_record, name="add_cname"),
|
||||
url(r'^delete_record/(?P<dns_server>[a-zA-Z0-9.-]+)/(?P<zone_name>[a-zA-Z0-9.-]+)/$', binder.views.view_delete_record, name="delete_record"),
|
||||
url(r'^edit_record/(?P<dns_server>[a-zA-Z0-9.-]+)/(?P<zone_name>[a-zA-Z0-9.-]+)/(?P<record_name>[\S+]+)/(?P<record_data>[\S+]+)/(?P<record_ttl>[\S+]+)/$', binder.views.view_edit_record, name="edit_record"),
|
||||
]
|
|
@ -63,7 +63,6 @@ def view_zone_records(request, dns_server, zone_name):
|
|||
def view_add_record(request, dns_server, zone_name):
|
||||
"""View to add an RR record to DNS zone."""
|
||||
this_server = get_object_or_404(models.BindServer, hostname=dns_server)
|
||||
|
||||
if request.method == 'POST':
|
||||
if "in-addr.arpa" in zone_name or "ip6.arpa" in zone_name:
|
||||
form = forms.FormAddReverseRecord(request.POST)
|
||||
|
@ -92,7 +91,59 @@ def view_add_record(request, dns_server, zone_name):
|
|||
else:
|
||||
messages.error(request, "Form data was invalid. Check all inputs.")
|
||||
else:
|
||||
form = forms.FormAddForwardRecord(initial={'zone_name': zone_name})
|
||||
# TODO: do this key_id logic on all forms for default key.
|
||||
key_id = models.BindServer.objects.get(
|
||||
hostname=dns_server).default_transfer_key.id
|
||||
form = forms.FormAddForwardRecord(initial={
|
||||
'zone_name': zone_name,
|
||||
'key_name': key_id
|
||||
})
|
||||
|
||||
return render(request, "bcommon/add_record_form.html",
|
||||
{"dns_server": this_server,
|
||||
"form": form})
|
||||
|
||||
def view_edit_record(request, dns_server, zone_name, record_name=None,
|
||||
record_type=None, record_data=None, record_ttl=None):
|
||||
"""View to edit an RR record to DNS zone."""
|
||||
this_server = get_object_or_404(models.BindServer, hostname=dns_server)
|
||||
if request.method == 'POST':
|
||||
if "in-addr.arpa" in zone_name or "ip6.arpa" in zone_name:
|
||||
form = forms.FormAddReverseRecord(request.POST)
|
||||
else:
|
||||
form = forms.FormAddForwardRecord(request.POST)
|
||||
if form.is_valid():
|
||||
form_cleaned = form.cleaned_data
|
||||
try:
|
||||
helpers.add_record(form_cleaned["dns_server"],
|
||||
str(form_cleaned["zone_name"]),
|
||||
str(form_cleaned["record_name"]),
|
||||
str(form_cleaned["record_type"]),
|
||||
str(form_cleaned["record_data"]),
|
||||
form_cleaned["ttl"],
|
||||
form_cleaned["key_name"],
|
||||
form_cleaned["create_reverse"])
|
||||
except (KeyringException, RecordException) as exc:
|
||||
messages.error(request, "Modifying %s.%s failed: %s" %
|
||||
(form_cleaned["record_name"], zone_name, exc))
|
||||
else:
|
||||
messages.success(request, "%s.%s was modified successfully." %
|
||||
(form_cleaned["record_name"], zone_name))
|
||||
return redirect('zone_list',
|
||||
dns_server=dns_server,
|
||||
zone_name=zone_name)
|
||||
else:
|
||||
messages.error(request, "Form data was invalid. Check all inputs.")
|
||||
else:
|
||||
key_id = models.BindServer.objects.get(
|
||||
hostname=dns_server).default_transfer_key.id
|
||||
form = forms.FormAddForwardRecord(initial={'zone_name': zone_name,
|
||||
'record_name': record_name,
|
||||
'record_data': record_data,
|
||||
'ttl': record_ttl,
|
||||
'record_type': record_type,
|
||||
'key_name': key_id
|
||||
})
|
||||
|
||||
return render(request, "bcommon/add_record_form.html",
|
||||
{"dns_server": this_server,
|
||||
|
@ -125,8 +176,12 @@ def view_add_cname_record(request, dns_server, zone_name, record_name):
|
|||
dns_server=dns_server,
|
||||
zone_name=zone_name)
|
||||
else:
|
||||
form = forms.FormAddCnameRecord(initial={'originating_record': record_name,
|
||||
'zone_name': zone_name})
|
||||
key_id = models.BindServer.objects.get(
|
||||
hostname=dns_server).default_transfer_key.id
|
||||
form = forms.FormAddCnameRecord(initial={
|
||||
'originating_record': record_name,
|
||||
'zone_name': zone_name,
|
||||
'key_name': key_id})
|
||||
|
||||
return render(request, "bcommon/add_cname_record_form.html",
|
||||
{"dns_server": this_server,
|
||||
|
@ -169,7 +224,12 @@ def view_delete_record(request, dns_server, zone_name):
|
|||
dns_server=dns_server,
|
||||
zone_name=zone_name)
|
||||
else:
|
||||
form = forms.FormDeleteRecord(initial={'zone_name': zone_name})
|
||||
key_id = models.BindServer.objects.get(
|
||||
hostname=dns_server).default_transfer_key.id
|
||||
form = forms.FormDeleteRecord(initial={
|
||||
'zone_name': zone_name,
|
||||
'key_name': key_id
|
||||
})
|
||||
|
||||
return render(request, "bcommon/delete_record.html",
|
||||
{"dns_server": dns_server,
|
||||
|
|
Loading…
Reference in New Issue