Sunil Mohan Adapa f4601e7b05
monkeysphere: Reorganize around keys instead
- Read Apache configuration to find the list of all available
  certificates and their associated domains.  Use this for setting UIDs
  properly.

- Solve the issue of re-importing renewed certficiate.  Use the SSH
  fingerprints as unique keys instead of domain names.  Compute SSH
  fingerprints for SSH keys and HTTPS certficates inorder accurately
  identify if they are currently imported into monkeysphere.

- Allow having more than one domains for a certficiate.  Add action to
  import new domains to an existing monkeysphere OpenPGP key.

- Import only once for a given certficiate and keep adding UIDs when
  domains get added.

- Merge services SSH and HTTPS giving us the ability to deals with many
  more services.  Remove special handling for different kinds of
  certificate sources.

- Supress monkeysphere prompts in case of reusing UIDs.
2016-03-08 23:32:29 +05:30

160 lines
5.0 KiB
HTML

{% extends "app.html" %}
{% comment %}
#
# This file is part of Plinth.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
{% endcomment %}
{% load bootstrap %}
{% load i18n %}
{% block page_head %}
{% if running %}
<meta http-equiv="refresh" content="3"/>
{% endif %}
<style type="text/css">
td li {
list-style: none;
line-height: 2em;
}
td ul {
padding: 0;
}
.form.pull-right {
margin-right: 10px;
}
.form button {
width: 9em;
}
</style>
{% endblock %}
{% block configuration %}
{% if running %}
<p class="running-status-parent">
<span class="running-status active"></span>
{% trans "Publishing key to keyserver..." %}
<form class="form" method="post"
action="{% url 'monkeysphere:cancel' %}">
{% csrf_token %}
<button type="submit" class="btn btn-warning btn-sm">
{% trans "Cancel" %}</button>
</form>
</p>
{% endif %}
<div class="row">
<div class="col-sm-10">
<table class="table table-striped">
<thead>
<tr>
<th>{% trans "Service" %}</th>
<th>{% trans "Domains" %}</th>
<th>{% trans "OpenPGP Fingerprint" %}</th>
<th></th>
</tr>
</thead>
<tbody>
{% for key in status.keys.values %}
<tr>
<td>
{% if key.service == 'ssh' %}
{% trans "Secure Shell" %}
{% elif key.service == 'https' %}
{% trans "Web Server" %}
{% else %}
{% trans "Other" %}
{% endif %}
</td>
<td>
<ul>
{% for domain in key.available_domains %}
<li>
{% if domain in key.imported_domains %}
<span class="label label-success"
><span class="glyphicon glyphicon-ok" aria-hidden="true"
></span></span>
{% else %}
<span class="label label-default"
><span class="glyphicon glyphicon-remove" aria-hidden="true"
></span></span>
{% endif %}
{{ domain }}
</li>
{% endfor %}
</ul>
</td>
<td>
{% if key.openpgp_fingerprint %}
<a href="{% url 'monkeysphere:details' key.openpgp_fingerprint %}"
title="{% blocktrans trimmed with fingerprint=key.openpgp_fingerprint %}
Show details for key {{ fingerprint }}
{% endblocktrans %}">
{{ key.openpgp_fingerprint }}
</a>
{% else %}
{% trans "-" %}
{% endif %}
</td>
<td>
{% if not key.openpgp_fingerprint %}
<form class="form pull-right" method="post"
action="{% url 'monkeysphere:import' key.ssh_fingerprint %}">
{% csrf_token %}
<button type="submit" class="btn btn-primary btn-sm pull-right">
{% trans "Import Key" %}</button>
</form>
{% else %}
{% if not running %}
<form class="form pull-right" method="post"
action="{% url 'monkeysphere:publish' key.openpgp_fingerprint %}">
{% csrf_token %}
<button type="submit" class="btn btn-warning btn-sm pull-right">
{% trans "Publish Key" %}</button>
</form>
{% endif %}
{% if key.imported_domains != key.available_domains %}
<form class="form pull-right" method="post"
action="{% url 'monkeysphere:import' key.ssh_fingerprint %}">
{% csrf_token %}
<button type="submit" class="btn btn-primary btn-sm pull-right">
{% trans "Add Domains" %}</button>
</form>
{% endif %}
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}