aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/gui/app
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki/gui/app')
-rw-r--r--rpkid/rpki/gui/app/templates/asn_view.html87
-rw-r--r--rpkid/rpki/gui/app/templates/child_view.html31
-rw-r--r--rpkid/rpki/gui/app/templates/conf_empty.html8
-rw-r--r--rpkid/rpki/gui/app/templates/conf_list.html17
-rw-r--r--rpkid/rpki/gui/app/templates/dashboard.html136
-rw-r--r--rpkid/rpki/gui/app/templates/parent_view.html25
-rw-r--r--rpkid/rpki/gui/app/templates/prefix_view.html95
7 files changed, 399 insertions, 0 deletions
diff --git a/rpkid/rpki/gui/app/templates/asn_view.html b/rpkid/rpki/gui/app/templates/asn_view.html
new file mode 100644
index 00000000..4417c576
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/asn_view.html
@@ -0,0 +1,87 @@
+{% extends "base.html" %}
+
+{% block css %}
+table { border-collapse: collapse }
+th { border: solid 1px; padding: 1em }
+td { border: solid 1px; text-align: center; padding-left: 1em; padding-right: 1em }
+{% endblock %}
+
+{% block content %}
+<p>Handle: <a href="{% url rpki.gui.app.views.dashboard %}">{{ request.session.handle }}</a>
+
+<h1>ASN View</h1>
+
+<table>
+ <tr> <td>ASN:</td><td>{{ asn }}</td> </tr>
+ {% if asn.parent %}
+ <tr>
+ <td>Suballocated from:</td>
+ <td><a href="{{ asn.parent.get_absolute_url }}">{{ asn.parent }}</a></td>
+ </tr>
+ {% endif %}
+ <tr>
+ <td>Received from:</td>
+ <td>
+ {% for p in parent %}
+ <a href="{{ p.get_absolute_url }}">{{ p.handle }}</a>
+ {% endfor %}
+ </td>
+ </tr>
+ <tr><td>Validity:</td><td>{{ asn.from_cert.all.0.not_before }} - {{ asn.from_cert.all.0.not_after }} </td></tr>
+
+ {% if asn.allocated %}
+ <tr><td>Allocated:</td><td><a href="{{asn.allocated.get_absolute_url}}">{{asn.allocated.handle}}</a></td></tr>
+ {% endif %}
+</table>
+
+{% if asn.children.count %}
+<h2>Suballocations</h2>
+
+<ul>
+{% for subaddr in asn.children.all %}
+<li><a href="{{ subaddr.get_absolute_url }}">{{ subaddr }}</a>
+{% endfor %}
+</ul>
+
+{% endif %}
+
+{% if roas %}
+<h2>ROAs</h2>
+<table>
+ <tr><th>Prefixes</th></tr>
+ {% for r in roas %}
+ <tr>
+ <td style='text-align: left'>
+ <ul>
+ {% for p in r.from_roa_request.all %}
+ <li><a href="{{ p.prefix.get_absolute_url }}">{{ p.prefix }}</a>
+ {% endfor %}
+ </ul>
+ </td>
+ </tr>
+ {% endfor %}
+ </ul>
+</table>
+{% endif %} <!-- roas -->
+
+{% if unallocated %}
+<h2>Unallocated</h2>
+<ul>
+{% for u in unallocated %}
+<li>{{ u }}
+{% endfor %}
+</ul>
+{% endif %}
+
+{% if form %}
+<h2>Edit</h2>
+<form method="POST" action="{{ request.get_full_path }}">{% csrf_token %}
+ {{ form.as_p }}
+ <input type="submit">
+</form>
+{% endif %}
+
+<p>Action:
+<a href="{{asn.get_absolute_url}}/allocate">give to child</a>
+
+{% endblock %}
diff --git a/rpkid/rpki/gui/app/templates/child_view.html b/rpkid/rpki/gui/app/templates/child_view.html
new file mode 100644
index 00000000..9bcdf948
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/child_view.html
@@ -0,0 +1,31 @@
+{% extends "base.html" %}
+
+{% block content %}
+<p>Handle: <a href="{% url rpki.gui.app.views.dashboard %}">{{ request.session.handle.handle }}</a>
+<h1>Child View</h1>
+<p>Child: {{ child.handle }}</p>
+<p>Valid until: {{ child.valid_until }}</p>
+
+<h2>Delegated Addresses</h2>
+{% if child.address_range.all %}
+<ul>
+{% for a in child.address_range.all %}
+<li><a href="{{ a.get_absolute_url }}">{{ a }}</a></li>
+{% endfor %}
+</ul>
+{% else %}
+<p>--none--</p>
+{% endif %}
+
+<h2>Delegated ASNs</h2>
+{% if child.asn.all %}
+<ul>
+{% for a in child.asn.all %}
+<li><a href="{{ a.get_absolute_url }}">{{ a }}</a></li>
+{% endfor %}
+</ul>
+{% else %}
+<p>--none--</p>
+{% endif %}
+
+{% endblock %}
diff --git a/rpkid/rpki/gui/app/templates/conf_empty.html b/rpkid/rpki/gui/app/templates/conf_empty.html
new file mode 100644
index 00000000..0ef9366c
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/conf_empty.html
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+
+{% block content %}
+
+<h1>Error!</h1>
+<p>Your account does not have permission to manage any resource handles on this server. Please contact your portal-gui operator.
+
+{% endblock %}
diff --git a/rpkid/rpki/gui/app/templates/conf_list.html b/rpkid/rpki/gui/app/templates/conf_list.html
new file mode 100644
index 00000000..4bb18114
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/conf_list.html
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+
+{% block content %}
+<h1>Handle List</h1>
+<p>Please select a handle.</p>
+
+<ul>
+{% for c in conf_list %}
+<li><a href="{{ select_url }}?handle={{ c.handle }}&next={{ next_url }}">{{ c.handle }}</a></li>
+{% endfor %}
+</ul>
+
+<!--
+<p><a href="/myrpki/conf/add?next={{ next_url }}">[create]</a>
+-->
+
+{% endblock %}
diff --git a/rpkid/rpki/gui/app/templates/dashboard.html b/rpkid/rpki/gui/app/templates/dashboard.html
new file mode 100644
index 00000000..dea03c31
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/dashboard.html
@@ -0,0 +1,136 @@
+{% extends "base.html" %}
+
+{% block css %}
+table { border-collapse: collapse }
+th { border: solid 1px; padding: 1em }
+td { border: solid 1px; text-align: center; padding-left: 1em; padding-right: 1em }
+{% endblock %}
+
+{% block content %}
+<p>Handle: {{ request.session.handle }}
+| <a href="{% url rpki.gui.app.views.conf_export %}">export identity</a>
+| <a href="{% url rpki.gui.app.views.conf_list %}">select</a>
+
+<div style="border: inset">
+<h1 style="text-align: center">Parents</h1>
+
+<ul>
+{% for parent in request.session.handle.parents.all %}
+<li><a href="{{ parent.get_absolute_url }}">{{ parent.handle }}</a>
+<p>
+<table>
+<tr><th>Accepted Resource</th><th>Not Before</th><th>Not After</th></tr>
+{% for cert in parent.resources.all %}
+
+{% for asn in cert.asn.all %}
+<tr><td style='text-align:left'><a href="{{ asn.get_absolute_url }}">{{ asn }}</a></td>
+<td>{{cert.not_before}}</td>
+<td>{{cert.not_after}}</td>
+</tr>
+{% endfor %}
+
+{% for address in cert.address_range.all %}
+<tr>
+ <td style='text-align: left'><a href="{{ address.get_absolute_url }}">{{ address }}</a></td>
+ <td>{{cert.not_before}}</td>
+ <td>{{cert.not_after}}</td>
+</tr>
+{% endfor %}
+
+{% endfor %} <!--certs-->
+</table>
+
+{% endfor %}
+</ul>
+
+<!--
+<a href="/myrpki/import/parent">[add]</a>
+-->
+</div>
+
+<span>
+<div style="border: outset">
+<h1 style="text-align: center">Children</h1>
+{% if request.session.handle.children.all %}
+<ul>
+{% for child in request.session.handle.children.all %}
+<li><a href="{% url rpki.gui.app.views.child_view child.handle %}">{{ child.handle }}</a>, valid until {{ child.valid_until }}
+{% if child.address_range.count or child.asn.count %}
+<p>Delegated resources:
+<ul>
+{% for asn in child.asn.all %}
+<li><a href="{{ asn.get_absolute_url }}">{{ asn }}</a></li>
+{% endfor %}
+{% for address in child.address_range.all %}
+<li><a href="{{ address.get_absolute_url}}">{{ address }}</a></li>
+{% endfor %}
+</ul>
+{% endif %}
+</li>
+{% endfor %}
+</ul>
+<!--
+<a href="/myrpki/import/child">[add]</a>
+-->
+{% else %}
+<p>-- none --
+{% endif %}
+
+<p>
+Export (csv): <a href="{% url rpki.gui.app.views.download_asns request.session.handle %}">asns</a> |
+<a href="{% url rpki.gui.app.views.download_prefixes request.session.handle %}">prefixes</a>
+
+</div>
+
+<div style="border: outset"> <!-- ROAs -->
+<h1 style="text-align: center">My ROA [request]s</h1>
+
+<table>
+<tr> <th>Prefix</th> <th>ASN</th> </tr>
+
+{% for roa in request.session.handle.roas.all %}
+<tr>
+ <td style='text-align: left'>
+ <ul style='list-style-position: outside'>
+{% for req in roa.from_roa_request.all %}
+ <li><a href="{{ req.prefix.get_absolute_url }}">{{ req.as_roa_prefix }}</a>
+{% endfor %}
+ </ul>
+ </td>
+ <td>{{ roa.asn }}</td>
+</tr>
+{% endfor %}
+</table>
+
+<p><a href="{% url rpki.gui.app.views.download_roas request.session.handle %}">export (csv)</a>
+
+</div><!-- roas -->
+
+<div style="border: outset">
+ <h1 style="text-align: center">Unallocated Resources</h1>
+ {% if asns or ars %}
+
+ {% if asns %}
+ <ul>
+ {% for asn in asns %}
+ <li>{{ asn.as_ul|safe }}
+ {% endfor %} <!-- ASNs -->
+ </ul>
+ {% endif %}
+
+ {% if ars %}
+ <ul>
+ {% for addr in ars %}
+ <li>{{ addr.as_ul|safe }}
+ {% endfor %} <!-- addrs -->
+ </ul>
+ {% endif %}
+
+ {% else %}
+ <p>-- none --
+ {% endif %}
+
+ </ul>
+</div>
+</span>
+{% endblock %}
diff --git a/rpkid/rpki/gui/app/templates/parent_view.html b/rpkid/rpki/gui/app/templates/parent_view.html
new file mode 100644
index 00000000..13a9d848
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/parent_view.html
@@ -0,0 +1,25 @@
+{% extends "base.html" %}
+
+{% block content %}
+<p>Handle: <a href="{% url rpki.gui.app.views.dashboard %}">{{ request.session.handle.handle }}</a>
+<h1>Parent View</h1>
+<p>Parent: {{ parent.handle }}
+<h2>Delegated Addresses</h2>
+<ul>
+{% for c in parent.resources.all %}
+{% for a in c.address_range.all %}
+<li><a href="{{ a.get_absolute_url }}">{{ a }}</a>
+{% endfor %}
+{% endfor %}
+</ul>
+
+<h2>Delegated ASNs</h2>
+<ul>
+{% for c in parent.resources.all %}
+{% for a in c.asn.all %}
+<li><a href="{{ a.get_absolute_url }}">{{ a }}</a>
+{% endfor %}
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/rpkid/rpki/gui/app/templates/prefix_view.html b/rpkid/rpki/gui/app/templates/prefix_view.html
new file mode 100644
index 00000000..78e9958a
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/prefix_view.html
@@ -0,0 +1,95 @@
+{% extends "base.html" %}
+
+{% block css %}
+table { border: solid 1px; border-collapse: collapse }
+th { border: solid 1px; padding: 1em }
+td { border: solid 1px; text-align: center; padding-left: 1em; padding-right: 1em }
+{% endblock %}
+
+{% block content %}
+<p>Handle: <a href="{% url rpki.gui.app.views.dashboard %}">{{ request.session.handle }}</a>
+
+<h1>Prefix View</h1>
+
+<table>
+ <tr> <td>Range:</td><td>{{ addr }}</td> </tr>
+ {% if addr.parent %}
+ <tr>
+ <td>Suballocated from:</td>
+ <td><a href="{{ addr.parent.get_absolute_url }}">{{ addr.parent }}</a></td>
+ </tr>
+ {% endif %}
+ <tr>
+ <td>Received from:</td>
+ <td>
+ {% for p in parent %}
+ <a href="{{ p.get_absolute_url }}">{{ p.handle }}</a>
+ {% endfor %}
+ </td>
+ </tr>
+ <tr><td>Validity:</td><td>{{ addr.from_cert.all.0.not_before }} - {{ addr.from_cert.all.0.not_after }} </td></tr>
+
+ {% if addr.allocated %}
+ <tr>
+ <td>Allocated:</td>
+ <td><a href="{{addr.allocated.get_absolute_url}}">{{ addr.allocated.handle }}</a></td>
+ </tr>
+ {% endif %}
+</table>
+
+{% if addr.children.count %}
+<h2>Suballocations</h2>
+<ul>
+{% for subaddr in addr.children.all %}
+ <li><a href="{{ subaddr.get_absolute_url }}">{{ subaddr }}</a>
+{% endfor %}
+</ul>
+{% endif %} <!-- suballocations -->
+
+{% if addr.roa_requests.count %}
+<h2>ROA requests</h2>
+<table>
+ <tr><th>ASN</th><th>Max Length</th></tr>
+
+ {% for r in addr.roa_requests.all %}
+ <tr>
+ <td>{{ r.roa.asn }}</td>
+ <td>{{ r.max_length }}</td>
+ <td><a href="{{ r.get_absolute_url }}/delete">delete</a></td>
+ </tr>
+ {% endfor %}
+</table>
+{% endif %} <!-- roa requests -->
+
+{% if unallocated %}
+<h2>Unallocated</h2>
+<ul>
+ {% for u in unallocated %}
+ <li>{{ u }}
+ {% endfor %}
+</ul>
+{% endif %}
+
+{% if form %}
+<h2>Edit</h2>
+<form method="POST" action="{{ request.get_full_path }}">{% csrf_token %}
+ {{ form.as_p }}
+ <input type="submit">
+</form>
+{% endif %} <!-- form -->
+
+<p>Action:<br>
+{% if not addr.allocated %}
+<a href="{{addr.get_absolute_url}}/split">split</a><br>
+{% endif %}
+{% if not addr.roa_requests.all %}
+<a href="{{addr.get_absolute_url}}/allocate">give to child</a><br>
+{% endif %}
+{% if addr.is_prefix and not addr.allocated %}
+<a href="{{ addr.get_absolute_url }}/roa">roa</a><br>
+{% endif %}
+{% if not addr.allocated and addr.parent %}
+<a href="{{ addr.get_absolute_url }}/delete">delete</a><br>
+{% endif %}
+
+{% endblock %}