1 // Force HTTPS - agnostic of which htaccess to use
2 // https://stackoverflow.com/questions/4723213/detect-http-or-https-then-force-https-in-javascript
3 if (location.protocol !== 'https:') {
4 location.replace(`https:${location.href.substring(location.protocol.length)}`);
7 // Temporary host: the non-production VM inside matrix.mit.edu
8 const API_HOST = "https://uplink.mit.edu";
10 document.getElementById("fingerToFull").addEventListener("click", function (ev) {
11 document.getElementById("fingerName").value = moira_user_info.full_name;
14 async function loadUserInfo() {
15 const response = await fetch(API_HOST + "/users/me/", {
17 "Authorization": "webathena " + webathena_base64,
20 const json = await response.json();
22 document.getElementById("displayName").innerText = json.full_name;
24 // Set global variable
25 moira_user_info = json;
28 async function loadFinger() {
29 const response = await fetch(API_HOST + "/users/me/finger", {
31 "Authorization": "webathena " + webathena_base64,
34 const json = await response.json();
35 document.getElementById("fingerName").value = json.fullname;
38 // Set global variable
42 async function onLogin() {
43 document.getElementById("login").hidden = true;
46 document.getElementById("loading").hidden = true;
47 document.getElementById("names").hidden = false;
50 document.getElementById("apply").addEventListener("click", async function (ev) {
51 document.getElementById("applied").hidden = true;
52 document.getElementById("loading").hidden = false;
53 document.getElementById("names").hidden = true;
55 fullname: document.getElementById("fingerName").value,
57 const response = await fetch(API_HOST + "/users/me/finger", {
60 "Authorization": "webathena " + webathena_base64,
61 "Content-Type": "application/json",
63 body: JSON.stringify(input),
65 console.log(response);
66 if (response.status === 200) {
68 document.getElementById("applied").hidden = false;
70 const json = await(response.json());
72 document.getElementById("loading").hidden = false;
73 alert(`An error occured: ${json.name}`);