]> git.ipfire.org Git - pbs.git/commitdiff
keys: Drop any frontend stuff for keys
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2022 14:10:26 +0000 (14:10 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2022 14:10:26 +0000 (14:10 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/buildservice/keys.py
src/templates/base.html
src/templates/keys-delete.html [deleted file]
src/templates/keys-import.html [deleted file]
src/templates/keys-list.html [deleted file]
src/web/__init__.py
src/web/keys.py

index 794a74e815f6bdeef08a004b99c2140898a6be3d..f3cf0e6c7f92f2ef7854012bcec7fad86b5f0f95 100644 (file)
@@ -168,9 +168,6 @@ dist_templates_DATA = \
        src/templates/index.html \
        src/templates/jobs-abort.html \
        src/templates/jobs-buildroot.html \
-       src/templates/keys-delete.html \
-       src/templates/keys-import.html \
-       src/templates/keys-list.html \
        src/templates/log.html \
        src/templates/login.html \
        src/templates/package-properties.html \
index cb3233cff93819fa49e1b3fb17d57e198a820078..a779bb75584de48febd0610b66e0148cf4ab6066 100644 (file)
@@ -165,6 +165,10 @@ class Key(base.DataObject):
        def length(self):
                return self.data.length
 
+       @property
+       def public_key(self):
+               return self.data.public_key
+
        # Subkeys
 
        @lazy_property
index 3a867f0fc3d94d1394b19f975d0abae777d4dfe0..6e60f28da3e0142a092a28417c83c0483ba14f4f 100644 (file)
@@ -47,9 +47,6 @@
                                                                                <li>
                                                                                        <a href="/mirrors">{{ _("Mirrors") }}</a>
                                                                                </li>
-                                                                               <li>
-                                                                                       <a href="/keys">{{ _("Key Management") }}</a>
-                                                                               </li>
                                                                                {% if current_user %}
                                                                                        <li>
                                                                                                <a href="/users">{{ _("Users") }}</a>
diff --git a/src/templates/keys-delete.html b/src/templates/keys-delete.html
deleted file mode 100644 (file)
index 0c4f671..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-{% extends "base.html" %}
-
-{% block title %}{{ _("Delete key %s") % key.uids }}{% end block %}
-
-{% block body %}
-       <ul class="breadcrumb">
-               <li>
-                       <a href="/">{{ _("Home") }}</a>
-                       <span class="divider">/</span>
-               </li>
-               <li>
-                       <a href="/keys">{{ _("Key Management") }}</a>
-                       <span class="divider">/</span>
-               </li>
-               <li>
-                       <a href="/key/{{ key.fingerprint }}">{{ key.fingerprint }}</a>
-                       <span class="divider">/</span>
-               </li>
-               <li class="active">
-                       <a href="/key/{{ key.fingerprint }}/delete">{{ _("Delete") }}</a>
-               </li>
-       </ul>
-
-       <div class="page-header">
-               <h2>{{ _("Key") }}: {{ key.fingerprint }}</h2>
-       </div>
-
-       <p>
-               {{ _("You are going to delete the key %s.") % key.fingerprint }}
-       </p>
-
-       <ul>
-               {% for uid in key.uids %}
-                       <li>{{ uid }}</li>
-               {% end %}
-       </ul>
-
-       <div class="btn-toolbar">
-               <div class="btn-group pull-right">
-                       <a class="btn btn-danger" href="/key/{{ key.fingerprint }}/delete?confirmed=1">
-                               {{ _("Delete key") }}
-                       </a>
-                       <a class="btn" href="/keys">{{ _("Cancel") }}</a>
-               </div>
-       </div>
-
-       <br class="clear">
-{% end block %}
diff --git a/src/templates/keys-import.html b/src/templates/keys-import.html
deleted file mode 100644 (file)
index e69fe0c..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-{% extends "base.html" %}
-
-{% block title %}{{ _("Import new key") }}{% end block %}
-
-{% block body %}
-       <ul class="breadcrumb">
-               <li>
-                       <a href="/">{{ _("Home") }}</a>
-                       <span class="divider">/</span>
-               </li>
-               <li>
-                       <a href="/keys">{{ _("Key Management") }}</a>
-                       <span class="divider">/</span>
-               </li>
-               <li class="active">
-                       <a href="/key/import">{{ _("Import new key") }}</a>
-               </li>
-       </ul>
-
-       <div class="page-header">
-               <h2>{{ _("Import a new key") }}</h2>
-       </div>
-
-       <form class="form-horizontal" method="POST" action="">
-               {% raw xsrf_form_html() %}
-               <fieldset>
-                       <div class="control-group">
-                               <label class="control-label" for="data">{{ _("Key") }}</label>
-                               <div class="controls">
-                                       <textarea name="data" id="data" rows="7"></textarea>
-
-                                       <p class="help-block">
-                                               {{ _("Paste the key to import.") }}
-                                       </p>
-                               </div>
-                       </div>
-
-                       <div class="form-actions">
-                               <button type="submit" class="btn btn-primary">{{ _("Import new key") }}</button>
-                       </div>
-               </fieldset>
-       </form>
-{% end block %}
diff --git a/src/templates/keys-list.html b/src/templates/keys-list.html
deleted file mode 100644 (file)
index 29dd25b..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-{% extends "base.html" %}
-
-{% block title %}{{ _("Key Management") }}{% end block %}
-
-{% block body %}
-       <ul class="breadcrumb">
-               <li>
-                       <a href="/">{{ _("Home") }}</a>
-                       <span class="divider">/</span>
-               </li>
-               <li class="active">
-                       <a href="/keys">{{ _("Key Management") }}</a>
-               </li>
-       </ul>
-
-       <div class="page-header">
-               <h2>{{ _("Key Management") }}</h2>
-       </div>
-
-       <p>
-               {{ _("The keys are a very important component when it comes to security.") }}
-               {{ _("Each package in the Pakfire Build Service is signed to prove its authenticity.") }}
-       </p>
-
-       <hr>
-
-       <table class="table">
-               <thead>
-                       <tr>
-                               <th colspan="2">&nbsp;</th>
-                               <th>{{ _("Fingerprint") }}</th>
-                               <th>{{ _("Created") }}</th>
-                               <th>{{ _("Expires") }}</th>
-                       </tr>
-               </thead>
-
-               <tbody>
-                       {% for key in keys %}
-                               <tr>
-                                       <td colspan="4">
-                                               <strong>
-                                                       {% for uid in key.uids %}
-                                                               {{ uid }}<br />
-                                                       {% end %}
-                                               </strong>
-                                       </td>
-                                       <td>
-                                               <div class="btn-group">
-                                                       <a class="btn btn-mini" href="http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x{{ key.fingerprint }}" target="_blank">
-                                                               <i class="icon-search"></i>
-                                                               {{ _("Lookup") }}
-                                                       </a>
-                                                       <a class="btn btn-mini" href="/key/{{ key.fingerprint }}">
-                                                               <i class="icon-download"></i>
-                                                               {{ _("Download") }}
-                                                       </a>
-                                               </div>
-
-                                               {% if key.has_perm(current_user) and key.can_be_deleted() %}
-                                                       <div class="btn-group">
-                                                               <a class="btn btn-mini btn-danger" href="/key/{{ key.fingerprint }}/delete">
-                                                                       <i class="icon-trash icon-white"></i>
-                                                                       {{ _("Remove") }}
-                                                               </a>
-                                                       </div>
-                                               {% end %}
-                                       </td>
-                               </tr>
-
-                               {% for subkey in key.subkeys %}
-                                       <tr>
-                                               <td>&nbsp;</td>
-                                               <td>
-                                                       {% if subkey.algo %}
-                                                               {{ _("Subkey") }} ({{ subkey.algo }}):
-                                                       {% else %}
-                                                               {{ _("Subkey") }}:
-                                                       {% end %}
-                                               </td>
-                                               <td>{{ subkey.fingerprint }}</td>
-                                               <td>{{ format_date(subkey.time_created) }}</td>
-                                               <td>
-                                                       {% if subkey.time_expires %}
-                                                               {% if subkey.expired %}
-                                                                       <i class="icon-warning-sign"></i>
-                                                               {% end %}
-
-                                                               {{ format_date(subkey.time_expires, full_format=True) }}
-                                                       {% else %}
-                                                               {{ _("This key does not expire.") }}
-                                                       {% end %}
-                                               </td>
-                                       </tr>
-                               {% end %}
-
-                               <tr>
-                                       <td colspan="5">&nbsp;</td>
-                               </tr>
-                       {% end %}
-               </tbody>
-       </table>
-
-       {% if current_user and current_user.is_admin() %}
-               <a class="btn btn-danger pull-right" href="/key/import">
-                       <i class="icon-star icon-white"></i>
-                       {{ _("Import new key") }}
-               </a>
-       {% end %}
-{% end block %}
index 6657d3fdea3a28aa6d682c1bc9a88480d6ded205..935e397c30b1712b8cf787987a5c530ff91bdd5b 100644 (file)
@@ -206,11 +206,8 @@ class Application(tornado.web.Application):
                        (r"/mirror/([\w\-\.]+)/edit",   mirrors.MirrorEditHandler),
                        (r"/mirror/([\w\-\.]+)",                mirrors.MirrorDetailHandler),
 
-                       # Key management
-                       (r"/keys", keys.KeysListHandler),
-                       (r"/key/import", keys.KeysImportHandler),
-                       (r"/key/([A-Z0-9]+)", keys.KeysDownloadHandler),
-                       (r"/key/([A-Z0-9]+)/delete", keys.KeysDeleteHandler),
+                       # Keys
+                       (r"/keys/([A-Z0-9]+)", keys.DownloadHandler),
 
                        # Search
                        (r"/search", search.SearchHandler),
index ea8b1fa982ec9c0d672af1adbb0226fb8bf6aa91..6b36263270e74d538f95a10a70ecfc1eed7f7c38 100644 (file)
@@ -1,62 +1,15 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 import tornado.web
 
 from . import base
 
-class KeysActionHandler(base.BaseHandler):
-       pass
-
-class KeysImportHandler(KeysActionHandler):
-       @tornado.web.authenticated
-       def get(self):
-               self.render("keys-import.html")
-
-       @tornado.web.authenticated
-       def post(self):
-               data = self.get_argument("data")
-
-               # Check permissions
-               if not key.has_perm(self.current_user):
-                       raise tornado.web.HTTPError(403)
-
-               key = self.backend.keys.create(data)
-               assert key
-
-               self.redirect("/keys")
-
-
-class KeysDeleteHandler(KeysActionHandler):
-       @tornado.web.authenticated
-       def get(self, fingerprint):
-               key = self.backend.keys.get_by_fpr(fingerprint)
-               if not key:
-                       raise tornado.web.HTTPError(404, "Could not find key: %s" % fingerprint)
-
-               # Check permissions
-               if not key.has_perm(self.current_user):
-                       raise tornado.web.HTTPError(403)
-
-               confirmed = self.get_argument("confirmed", False)
-               if confirmed:
-                       key.delete()
-
-                       return self.redirect("/keys")
-
-               self.render("keys-delete.html", key=key)
-
-
-class KeysListHandler(base.BaseHandler):
-       def get(self):
-               self.render("keys-list.html", keys=self.backend.keys)
-
-
-class KeysDownloadHandler(base.BaseHandler):
+class DownloadHandler(base.BaseHandler):
        def get(self, fingerprint):
-               key = self.backend.keys.get_by_fpr(fingerprint)
+               key = self.backend.keys.get_by_fingerprint(fingerprint)
                if not key:
-                       raise tornado.web.HTTPError(404, "Could not find key: %s" % fingerprint)
+                       raise tornado.web.HTTPError(404, "Could not find key %s" % fingerprint)
 
-               # Send the key data.
+               # Send the key data
                self.set_header("Content-Type", "text/plain")
-               self.write(key.key)
+               self.finish(key.public_key)