aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/gui/app/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki/gui/app/views.py')
-rw-r--r--rpkid/rpki/gui/app/views.py124
1 files changed, 78 insertions, 46 deletions
diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py
index 0247dec2..fe1cd574 100644
--- a/rpkid/rpki/gui/app/views.py
+++ b/rpkid/rpki/gui/app/views.py
@@ -472,52 +472,6 @@ def import_parent(request):
return render('app/import_parent_form.html', { 'form': form }, request)
@handle_required
-def import_repository(request):
- conf = request.session['handle']
- log = request.META['wsgi.errors']
-
- if request.method == 'POST':
- form = forms.ImportRepositoryForm(request.POST, request.FILES)
- if form.is_valid():
- tmpf = tempfile.NamedTemporaryFile(prefix='repository', suffix='.xml', delete=False)
- f = tmpf.name
- tmpf.write(form.cleaned_data['xml'].read())
- tmpf.close()
-
- glue.import_repository(log, conf, f)
-
- os.remove(tmpf.name)
-
- return http.HttpResponseRedirect(reverse(dashboard))
- else:
- form = forms.ImportRepositoryForm()
-
- return render('app/import_repository_form.html', { 'form': form }, request)
-
-@handle_required
-def import_pubclient(request):
- conf = request.session['handle']
- log = request.META['wsgi.errors']
-
- if request.method == 'POST':
- form = forms.ImportPubClientForm(request.POST, request.FILES)
- if form.is_valid():
- tmpf = tempfile.NamedTemporaryFile(prefix='pubclient', suffix='.xml', delete=False)
- f = tmpf.name
- tmpf.write(form.cleaned_data['xml'].read())
- tmpf.close()
-
- glue.import_pubclient(log, conf, f)
-
- os.remove(tmpf.name)
-
- return http.HttpResponseRedirect(reverse(dashboard))
- else:
- form = forms.ImportPubClientForm()
-
- return render('app/import_pubclient_form.html', { 'form': form }, request)
-
-@handle_required
def import_child(request):
"""
Import a repository response.
@@ -747,4 +701,82 @@ def route_view(request):
ts = dict((attr['name'], attr['ts']) for attr in models.Timestamp.objects.values())
return render('app/routes_view.html', { 'routes': routes, 'timestamp': ts }, request)
+@handle_required
+def repository_list(request):
+ conf = request.session['handle']
+ qs = models.Repository.objects.filter(issuer=conf)
+ return object_list(request, queryset=qs, template_name='app/repository_list.html',
+ extra_context={ 'page_title': 'Repositories' })
+
+@handle_required
+def repository_detail(request, pk):
+ conf = request.session['handle']
+ qs = models.Repository.objects.filter(issuer=conf)
+ return object_detail(request, queryset=qs, object_id=pk, template_name='app/repository_detail.html')
+
+@handle_required
+def repository_delete(request, pk):
+ conf = request.session['handle']
+ get_object_or_404(models.Repository, issuer=conf, pk=pk) # permission check
+ return delete_object(request, model=models.Repository, object_id=pk, template_name='app/repository_detail.html')
+
+@handle_required
+def repository_import(request):
+ conf = request.session['handle']
+ log = request.META['wsgi.errors']
+
+ if request.method == 'POST':
+ form = forms.ImportRepositoryForm(request.POST, request.FILES)
+ if form.is_valid():
+ tmpf = tempfile.NamedTemporaryFile(prefix='repository', suffix='.xml', delete=False)
+ f = tmpf.name
+ tmpf.write(form.cleaned_data['xml'].read())
+ tmpf.close()
+
+ glue.import_repository(log, conf, f)
+
+ os.remove(tmpf.name)
+
+ return http.HttpResponseRedirect(reverse(dashboard))
+ else:
+ form = forms.ImportRepositoryForm()
+
+ return render('app/import_repository_form.html', { 'form': form }, request)
+
+@superuser_required
+def client_list(request):
+ return object_list(request, queryset=models.Client.objects.all(), template_name='app/client_list.html',
+ extra_context={ 'page_title': 'Publication Clients' })
+
+@superuser_required
+def client_detail(request, pk):
+ return object_detail(request, queryset=models.Client.objects, object_id=pk, template_name='app/client_detail.html')
+
+@superuser_required
+def client_delete(request, pk):
+ return delete_object(request, model=models.Client, object_id=pk, template_name='app/client_detail.html')
+
+@superuser_required
+def client_import(request):
+ conf = request.session['handle']
+ log = request.META['wsgi.errors']
+
+ if request.method == 'POST':
+ form = forms.ImportPubClientForm(request.POST, request.FILES)
+ if form.is_valid():
+ tmpf = tempfile.NamedTemporaryFile(prefix='pubclient', suffix='.xml', delete=False)
+ f = tmpf.name
+ tmpf.write(form.cleaned_data['xml'].read())
+ tmpf.close()
+
+ glue.import_pubclient(log, conf, f)
+
+ os.remove(tmpf.name)
+
+ return http.HttpResponseRedirect(reverse(dashboard))
+ else:
+ form = forms.ImportPubClientForm()
+
+ return render('app/import_pubclient_form.html', { 'form': form }, request)
+
# vim:sw=4 ts=8 expandtab