From 865c5433a918d3db439bd81a2b322a8d64cb6231 Mon Sep 17 00:00:00 2001 From: Tristan Schneider Date: Mon, 19 Feb 2024 23:01:04 +0100 Subject: [PATCH] Basic login functionality --- owe.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/owe.js b/owe.js index 13a7eea..a8b3228 100644 --- a/owe.js +++ b/owe.js @@ -72,6 +72,11 @@ function getUsernameFromCookie() { return null; } +function deleteUsernameCookie() { + // Set the 'owe_user' cookie to expire by setting its expiration date to a time in the past + document.cookie = 'owe_user=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=.;'; +} + function onReloadClicked() { loadSentences(); @@ -246,16 +251,34 @@ async function getLastTimeFromArchive(archiveFileUrl) { } } +function logoutUser() { + deleteUsernameCookie(); + initializeLoginArea(); // Reload everything in the login area +} async function initializeLoginArea() { var loginArea = document.getElementById('login_area'); + var sendButton = document.getElementById('sendbut'); + sendButton.style.display = "unset" + var wordInput = document.getElementById('wordinput'); + wordInput.disabled = false; + // Use async/await to wait for the result of getNextPlayer try { + var loggedInPlayer = getUsernameFromCookie(); var nextPlayer = await getNextPlayer(); var relative_time = await getTimeSinceLast(); // Clear the login area loginArea.innerHTML = ""; + if (loggedInPlayer != null) { + loginArea.innerHTML += "Du bist angemeldet als " + loggedInPlayer + "." + loginArea.innerHTML += "
\n"; + if (loggedInPlayer != nextPlayer) { + sendButton.style.display = "none"; + wordInput.disabled = true; + } + } loginArea.innerHTML += nextPlayer + " ist dran!
\n"; var days = Math.floor(relative_time / (3600 * 24));