2015-10-28 10:46:36 +00:00
|
|
|
$(document).ready(function() {
|
2015-11-11 19:12:04 +00:00
|
|
|
console.info("Loading CA, to debug: curl " + window.location.href + " --negotiate -u : -H 'Accept: application/json'");
|
2015-10-28 10:46:36 +00:00
|
|
|
|
2015-11-11 19:12:04 +00:00
|
|
|
$.ajax({
|
|
|
|
method: "GET",
|
|
|
|
url: "/api/ca/",
|
|
|
|
dataType: "json",
|
|
|
|
success: function(session, status, xhr) {
|
|
|
|
console.info("Loaded CA list:", session);
|
2015-10-28 10:46:36 +00:00
|
|
|
|
2015-11-11 19:12:04 +00:00
|
|
|
if (!session.authorities) {
|
|
|
|
alert("No certificate authorities to manage! Have you created one yet?");
|
|
|
|
return;
|
|
|
|
}
|
2015-10-28 10:46:36 +00:00
|
|
|
|
2015-11-11 19:12:04 +00:00
|
|
|
$.ajax({
|
|
|
|
method: "GET",
|
|
|
|
url: "/api/ca/" + session.authorities[0],
|
|
|
|
dataType: "json",
|
|
|
|
success: function(authority, status, xhr) {
|
|
|
|
console.info("Got CA:", authority);
|
2015-10-28 10:46:36 +00:00
|
|
|
|
2015-11-13 22:16:38 +00:00
|
|
|
console.info("Opening EventSource from:", authority.event_channel);
|
2015-10-28 10:46:36 +00:00
|
|
|
|
2015-11-13 22:16:38 +00:00
|
|
|
var source = new EventSource(authority.event_channel);
|
2015-10-28 10:46:36 +00:00
|
|
|
|
2015-11-11 19:12:04 +00:00
|
|
|
source.onmessage = function(event) {
|
|
|
|
console.log("Received server-sent event:", event);
|
|
|
|
}
|
|
|
|
|
2015-11-13 22:16:38 +00:00
|
|
|
source.addEventListener("up-client", function(e) {
|
|
|
|
console.log("Adding security association:" + e.data);
|
|
|
|
var lease = JSON.parse(e.data);
|
|
|
|
var $status = $("#signed_certificates [data-dn='" + lease.identity + "'] .status");
|
|
|
|
$status.html(nunjucks.render('status.html', {
|
|
|
|
lease: {
|
|
|
|
address: lease.address,
|
|
|
|
identity: lease.identity,
|
|
|
|
acquired: new Date(),
|
|
|
|
released: null
|
|
|
|
}}));
|
|
|
|
});
|
|
|
|
|
|
|
|
source.addEventListener("down-client", function(e) {
|
|
|
|
console.log("Removing security association:" + e.data);
|
|
|
|
var lease = JSON.parse(e.data);
|
|
|
|
var $status = $("#signed_certificates [data-dn='" + lease.identity + "'] .status");
|
|
|
|
$status.html(nunjucks.render('status.html', {
|
|
|
|
lease: {
|
|
|
|
address: lease.address,
|
|
|
|
identity: lease.identity,
|
|
|
|
acquired: null,
|
|
|
|
released: new Date()
|
|
|
|
}}));
|
|
|
|
});
|
|
|
|
|
2015-11-11 19:12:04 +00:00
|
|
|
source.addEventListener("request_deleted", function(e) {
|
|
|
|
console.log("Removing deleted request #" + e.data);
|
|
|
|
$("#request_" + e.data).remove();
|
|
|
|
});
|
2015-10-28 10:46:36 +00:00
|
|
|
|
2015-11-11 19:12:04 +00:00
|
|
|
source.addEventListener("request_submitted", function(e) {
|
|
|
|
console.log("Request submitted:", e.data);
|
|
|
|
});
|
|
|
|
|
|
|
|
source.addEventListener("request_signed", function(e) {
|
|
|
|
console.log("Request signed:", e.data);
|
2015-11-13 22:16:38 +00:00
|
|
|
$("#request_" + e.data).slideUp("normal", function() { $(this).remove(); });
|
2015-11-11 19:12:04 +00:00
|
|
|
// TODO: Insert <li> to signed certs list
|
|
|
|
});
|
|
|
|
|
|
|
|
source.addEventListener("certificate_revoked", function(e) {
|
|
|
|
console.log("Removing revoked certificate #" + e.data);
|
2015-11-13 22:16:38 +00:00
|
|
|
$("#certificate_" + e.data).slideUp("normal", function() { $(this).remove(); });
|
2015-11-11 19:12:04 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
$("#container").html(nunjucks.render('authority.html', { authority: authority, session: session }));
|
2015-11-13 18:41:19 +00:00
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
method: "GET",
|
|
|
|
url: "/api/ca/" + authority.slug + "/lease/",
|
|
|
|
dataType: "json",
|
|
|
|
success: function(leases, status, xhr) {
|
|
|
|
console.info("Got leases:", leases);
|
|
|
|
for (var j = 0; j < leases.length; j++) {
|
2015-11-13 22:16:38 +00:00
|
|
|
var $status = $("#signed_certificates [data-dn='" + leases[j].identity + "'] .status");
|
2015-11-13 18:41:19 +00:00
|
|
|
if (!$status.length) {
|
|
|
|
console.info("Detected rogue client:", leases[j]);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$status.html(nunjucks.render('status.html', {
|
|
|
|
lease: {
|
|
|
|
address: leases[j].address,
|
2015-11-13 22:16:38 +00:00
|
|
|
identity: leases[j].identity,
|
2015-11-13 18:41:19 +00:00
|
|
|
acquired: new Date(leases[j].acquired).toLocaleString(),
|
|
|
|
released: leases[j].released ? new Date(leases[j].released).toLocaleString() : null
|
|
|
|
}}));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
2015-11-11 19:12:04 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
2015-10-28 10:46:36 +00:00
|
|
|
});
|