Files
vaultwarden/src/static/admin.html
2019-01-07 14:48:10 +01:00

7.0 KiB

<html lang="en"> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/blueimp-md5/2.10.0/js/md5.js" integrity="sha256-tCQ/BldMlN2vWe5gAiNoNb5svoOgVUhlUgv7UjONKKQ=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/identicon.js/2.3.3/identicon.min.js" integrity="sha256-nYoL3nK/HA1e1pJvLwNPnpKuKG9q89VFX862r5aohmA=" crossorigin="anonymous"></script> <style> body { padding-top: 70px; } img { width: 48px; height: 48px; } </style> <script> let key = null; function identicon(email) { const data = new Identicon(md5(email), { size: 48, format: 'svg' }).toString(); return "data:image/svg+xml;base64," + data; } function setVis(elem, vis) { if (vis) { $(elem).removeClass('d-none'); } else { $(elem).addClass('d-none'); } } function updateVis() { setVis("#no-key-form", !key); setVis("#users-block", key); setVis("#invite-form-block", key); } function setKey() { key = $('#key').val() || window.location.hash.slice(1); updateVis(); if (key) { loadUsers(); } return false; } function resetKey() { key = null; updateVis(); } function fillRow(data) { for (i in data) { const user = data[i]; const row = $("#tmp-row").clone(); row.attr("id", "user-row:" + user.Id); row.find(".tmp-name").text(user.Name); row.find(".tmp-mail").text(user.Email); row.find(".tmp-icon").attr("src", identicon(user.Email)) row.find(".tmp-del").on("click", function (e) { var name = prompt("To delete user '" + user.Name + "', please type the name below") if (name) { if (name == user.Name) { deleteUser(user.Id); } else { alert("Wrong name, please try again") } } return false; }); row.appendTo("#users-list"); setVis(row, true); } } function _headers() { return { "Authorization": "Bearer " + key }; } function loadUsers() { $("#users-list").empty(); $.get({ url: "/admin/users", headers: _headers() }) .done(fillRow).fail(resetKey); return false; } function _post(url, successMsg, errMsg, resetOnErr, data) { $.post({ url: url, headers: _headers(), data: data }) .done(function () { alert(successMsg); loadUsers(); }).fail(function (e) { const r = e.responseJSON; const msg = r ? r.ErrorModel.Message : "Unknown error"; alert(errMsg + ": " + msg); if (resetOnErr) { resetKey(); } }); } function deleteUser(id) { _post("/admin/users/" + id + "/delete", "User deleted correctly", "Error deleting user", true); } function inviteUser() { inv = $("#email-invite"); data = JSON.stringify({ "Email": inv.val() }); inv.val(""); _post("/admin/invite/", "User invited correctly", "Error inviting user", false, data); return false; } $(window).on('load', function () { setKey(); $("#key-form").submit(setKey); $("#reload-btn").click(loadUsers); $("#invite-form").submit(inviteUser); }); </script> </head> Bitwarden_rs
Authentication key needed to continue
Please provide it below: Save
Registered Users
Reload users
Invite User
Email: Invite
Full Name Delete User
Email
</html>