mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2025-05-05 17:18:14 -04:00
- Removed `unsafe-inline` for javascript from CSP. The admin interface now uses files instead of inline javascript. - Modified javascript to work not being inline. - Run eslint over javascript and fixed some items. - Added a `to_json` Handlebars helper. Used at the diagnostics page. - Changed `AdminTemplateData` struct to be smaller. The `config` was always added, but only used at one page. Same goes for `can_backup` and `version`. - Also inlined CSS. We can't remove the `unsafe-inline` from css, because that seems to break the web-vault currently. That might need some further checks. But for now the 404 page and all the admin pages are clear of inline scripts and styles.
54 lines
1.9 KiB
JavaScript
Vendored
54 lines
1.9 KiB
JavaScript
Vendored
"use strict";
|
|
|
|
function deleteOrganization() {
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
const org_uuid = event.target.dataset.vwOrgUuid;
|
|
const org_name = event.target.dataset.vwOrgName;
|
|
const billing_email = event.target.dataset.vwBillingEmail;
|
|
if (!org_uuid) {
|
|
alert("Required parameters not found!");
|
|
return false;
|
|
}
|
|
|
|
// First make sure the user wants to delete this organization
|
|
const continueDelete = confirm(`WARNING: All data of this organization (${org_name}) will be lost!\nMake sure you have a backup, this cannot be undone!`);
|
|
if (continueDelete == true) {
|
|
const input_org_uuid = prompt(`To delete the organization "${org_name} (${billing_email})", please type the organization uuid below.`);
|
|
if (input_org_uuid != null) {
|
|
if (input_org_uuid == org_uuid) {
|
|
_post(`${BASE_URL}/admin/organizations/${org_uuid}/delete`,
|
|
"Organization deleted correctly",
|
|
"Error deleting organization"
|
|
);
|
|
} else {
|
|
alert("Wrong organization uuid, please try again");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// onLoad events
|
|
document.addEventListener("DOMContentLoaded", (/*event*/) => {
|
|
jQuery("#orgs-table").DataTable({
|
|
"stateSave": true,
|
|
"responsive": true,
|
|
"lengthMenu": [
|
|
[-1, 5, 10, 25, 50],
|
|
["All", 5, 10, 25, 50]
|
|
],
|
|
"pageLength": -1, // Default show all
|
|
"columnDefs": [{
|
|
"targets": 4,
|
|
"searchable": false,
|
|
"orderable": false
|
|
}]
|
|
});
|
|
|
|
// Add click events for organization actions
|
|
document.querySelectorAll("button[vw-delete-organization]").forEach(btn => {
|
|
btn.addEventListener("click", deleteOrganization);
|
|
});
|
|
|
|
document.getElementById("reload").addEventListener("click", reload);
|
|
}); |