From c15cab7ed6bf2d3ce9009ca09c7c5f33b252860f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 22 Dec 2015 17:42:28 +0100 Subject: Allow admins to add system wide root certificates --- settings/js/certificates.js | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 settings/js/certificates.js (limited to 'settings/js/certificates.js') diff --git a/settings/js/certificates.js b/settings/js/certificates.js new file mode 100644 index 00000000000..9ce9f9aa8d8 --- /dev/null +++ b/settings/js/certificates.js @@ -0,0 +1,69 @@ +$(document).ready(function () { + var type = $('#sslCertificate').data('type'); + $('#sslCertificate').on('click', 'td.remove', function () { + var row = $(this).parent(); + $.ajax(OC.generateUrl('settings/' + type + '/certificate/{certificate}', {certificate: row.data('name')}), { + type: 'DELETE' + }); + row.remove(); + + if ($('#sslCertificate > tbody > tr').length === 0) { + $('#sslCertificate').hide(); + } + return true; + }); + + $('#sslCertificate tr > td').tipsy({gravity: 'n', live: true}); + + $('#rootcert_import').fileupload({ + submit: function (e, data) { + data.formData = _.extend(data.formData || {}, { + requesttoken: OC.requestToken + }); + }, + success: function (data) { + if (typeof data === 'string') { + data = $.parseJSON(data); + } else if (data && data.length) { + // fetch response from iframe + data = $.parseJSON(data[0].body.innerText); + } + if (!data || typeof(data) === 'string') { + // IE8 iframe workaround comes here instead of fail() + OC.Notification.showTemporary( + t('settings', 'An error occurred. Please upload an ASCII-encoded PEM certificate.')); + return; + } + var issueDate = new Date(data.validFrom * 1000); + var expireDate = new Date(data.validTill * 1000); + var now = new Date(); + var isExpired = !(issueDate <= now && now <= expireDate); + + var row = $(''); + row.data('name', data.name); + row.addClass(isExpired ? 'expired' : 'valid'); + row.append($('').attr('title', data.organization).text(data.commonName)); + row.append($('').attr('title', t('core,', 'Valid until {date}', {date: data.validTillString})) + .text(data.validTillString)); + row.append($('').attr('title', data.issuerOrganization).text(data.issuer)); + row.append($('').addClass('remove').append( + $('').attr({ + alt: t('core', 'Delete'), + title: t('core', 'Delete'), + src: OC.imagePath('core', 'actions/delete.svg') + }).addClass('action') + )); + + $('#sslCertificate tbody').append(row); + $('#sslCertificate').show(); + }, + fail: function () { + OC.Notification.showTemporary( + t('settings', 'An error occurred. Please upload an ASCII-encoded PEM certificate.')); + } + }); + + if ($('#sslCertificate > tbody > tr').length === 0) { + $('#sslCertificate').hide(); + } +}); -- cgit v1.2.3