* Update vnu.jar * Fix py2 -> py3 issue * Run pyupgrade * test: Add default-jdk to images * test: Add option to also validate HTML with vnu.jar Since it's already installed in bin. Don't do this by default, since it increases the time needed for tests by ~50%. * fix: Stop the urlizer from urlizing in linkified mailto: text * More HTML fixes * More HTML validation fixes * And more HTML fixes * Fix floating badge * Ignore unicode errors * Only URLize docs that are existing * Final fixes * Don't URLize everything during test-crawl * Feed HTML into vnu using python rather than Java to speed things up * Allow test-crawl to start vnu on a different port * Increase retry count to vnu. Restore batch size to 30. * More HTML validation fixes * Use urllib3 to make requests to vnu, since overriding requests_mock is tricky * Undo commit of unmodified file * Also urlize ftp links * Fix matching of file name * More HTML fixes * Add `is_valid_url` filter * weekday -> data-weekday * urlencode URLs * Add and use vnu_fmt_message. Bump vnu max buffer. * Simplify doc_exists * Don't add tab link to mail archive if the URL is invalid * Run urlize_ietf_docs before linkify Reduces the possibility of generating incorrect HTML * Undo superfluous change * Runner fixes * Consolidate vnu message filtering into vnu_filter_message * Correctly handle multiple persons with same name * Minimze diff * Fix HTML nits * Print source snippet in vnu_fmt_message * Only escape if there is something to escape * Fix snippet * Skip crufty old IPR declarations * Only include modal when needed. Add handles. * Fix wordwrap+linkification * Update ietf/doc/templatetags/ietf_filters.py * Update ietf/doc/templatetags/tests_ietf_filters.py * Don't right-align second column
67 lines
2.2 KiB
HTML
67 lines
2.2 KiB
HTML
{% extends "base.html" %}
|
|
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
|
{% load origin %}
|
|
{% load widget_tweaks django_bootstrap5 %}
|
|
{% load person_filters static %}
|
|
{% block pagehead %}
|
|
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
|
{% endblock %}
|
|
{% block title %}API keys for {{ user }}{% endblock %}
|
|
{% block content %}
|
|
{% origin %}
|
|
<h1>
|
|
API keys
|
|
<br>
|
|
<small class="text-muted">{{ user.username }}</small>
|
|
</h1>
|
|
{% csrf_token %}
|
|
{% if person.apikeys.all %}
|
|
<table class="table table-sm tablesorter">
|
|
<thead>
|
|
<tr >
|
|
<th scope="col" data-sort="endpoint">Endpoint</th>
|
|
<th scope="col" data-sort="created">Created</th>
|
|
<th scope="col" data-sort="date">Last use</th>
|
|
<th scope="col" data-sort="count">Count</th>
|
|
<th scope="col" data-sort="valid">Valid</th>
|
|
<th scope="col" data-sort="key">Key hash</th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for key in person.apikeys.all %}
|
|
<tr>
|
|
<td>
|
|
<code>{{ key.endpoint }}</code>
|
|
</td>
|
|
<td>{{ key.created }}</td>
|
|
<td>{{ key.latest }}</td>
|
|
<td>{{ key.count }}</td>
|
|
<td>{{ key.valid }}</td>
|
|
<td>
|
|
<code>{{ key.hash }}</code>
|
|
</td>
|
|
<td >
|
|
{% if key.valid %}
|
|
<a href="{% url 'ietf.ietfauth.views.apikey_disable' %}?hash={{ key.hash }}"
|
|
class="btn btn-danger btn-sm del-apikey float-end">
|
|
Disable
|
|
</a>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% else %}
|
|
<p>You have no personal API keys.</p>
|
|
{% endif %}
|
|
<a href="{% url 'ietf.ietfauth.views.apikey_create' %}"
|
|
class="btn btn-primary add-apikey my-3">
|
|
Get a new personal API key
|
|
</a>
|
|
{% endblock %}
|
|
{% block js %}
|
|
<script src="{% static "ietf/js/list.js" %}"></script>
|
|
{% endblock %}
|