diff options
author | curly <curly@infernal.garden> | 2024-07-17 16:49:02 -0600 |
---|---|---|
committer | curly <curly@infernal.garden> | 2024-07-17 16:49:02 -0600 |
commit | 38bbeda4d654769a0d3c6d3a3a35851f1dc2c8ac (patch) | |
tree | 9ba175bbc0fcd44b84fdec13762cadd22c0e20c3 /src | |
parent | 1b239cf6a10fda1b3dc5b1a2f4009219470d5e5d (diff) | |
download | poko_web-38bbeda4d654769a0d3c6d3a3a35851f1dc2c8ac.tar.gz poko_web-38bbeda4d654769a0d3c6d3a3a35851f1dc2c8ac.tar.bz2 poko_web-38bbeda4d654769a0d3c6d3a3a35851f1dc2c8ac.zip |
admin page, add keys
Diffstat (limited to 'src')
-rw-r--r-- | src/admin/index.html | 31 | ||||
-rw-r--r-- | src/admin/regkeys/index.html | 57 | ||||
-rw-r--r-- | src/main.js | 66 |
3 files changed, 152 insertions, 2 deletions
diff --git a/src/admin/index.html b/src/admin/index.html new file mode 100644 index 0000000..16e459f --- /dev/null +++ b/src/admin/index.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href="/main.css"> + <script src="/main.js" defer></script> + <title>USER</title> + </head> + <body> + <header> + <a href="/user/"> + <center class="button navbutton">USER</center> + </a> + <a href="/admin/regkeys/"> + <center class="button navbutton">REGISTRATION KEYS</center> + </a> + </header> + <div class="page"> + <center> + <h2>ADMIN</h2> + </center> + <hr> + <div class="content"> + </div> + </div> + <footer> + <center> + <p>POKO</p> + </center> + </footer> + </body> +</html>
\ No newline at end of file diff --git a/src/admin/regkeys/index.html b/src/admin/regkeys/index.html new file mode 100644 index 0000000..de6ecf1 --- /dev/null +++ b/src/admin/regkeys/index.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" href="/main.css"> + <script src="/main.js" defer></script> + <title>REGISTRATION KEYS</title> + </head> + <body onload="update_form_onload()"> + <header> + <a href="/user/"> + <center class="button navbutton">USER</center> + </a> + <a href="/admin/regkeys/"> + <center class="button navbutton">REGISTRATION KEYS</center> + </a> + </header> + <div class="page"> + <center> + <h2>ADD KEY</h2> + </center> + <hr> + <div class="content"> + <form action="javascript:add_regkey_form()" class="formbox" id="nameform" accept-charset=utf-8> + <label for="key_add">KEY TO ADD</label> + <input type="text" id="key_add" required minlength="12"> + <input type="submit" class="button formbutton" value="ADD"> + </form> + </div> + </div> + <div class="page"> + <center> + <h2>DELETE KEY</h2> + </center> + <hr> + <div class="content"> + <form action="javascript:del_regkey_form()" class="formbox" accept-charset="utf-8"> + <label for="key_del">KEY TO DELETE</label> + <input type="text" id="key_del" required> + <input type="submit" class="button formbutton" value="DELETE"> + </form> + </div> + </div> + <div class="page"> + <center> + <h2>KEY LIST</h2> + </center> + <hr> + <div class="content" id="keylist"> + </div> + </div> + <footer> + <center> + <p>POKO</p> + </center> + </footer> + </body> +</html>
\ No newline at end of file diff --git a/src/main.js b/src/main.js index e6d9264..cd27d54 100644 --- a/src/main.js +++ b/src/main.js @@ -310,9 +310,37 @@ async function update_name_form() { } +async function is_admin() { + const session = get_session(); + const id = get_id(); + + if (session != "") { + if (id != "") { + const url = server + "/user/get" + const body = {"id": id, "session": session} + const req = await xhttp_post(url, body); + + if (req.status == 200) { + if (req.body.is_admin == true) { + return true + } + } else if (req.status == 404) { + if (req.body == "Not Authenticated") { + del_session() + return false + } + } + } else { + del_session() + } + } + + return false +} + window.onload = async function() { - // if not on a user page - if (window.location.pathname.indexOf("/user") == -1) { + // if not on a user page and not an admin page + if (window.location.pathname.indexOf("/user") == -1 && window.location.pathname.indexOf("/admin") == -1) { // and if logged in if (await is_logged_in()) { // move to the user index page @@ -320,6 +348,40 @@ window.onload = async function() { } } else if (window.location.pathname == "/user/") { await user() + } else if (window.location.pathname == "/admin/regkeys/") { + await regkeys() + } + + if (await is_admin()) { + const elements = document.getElementsByTagName("header"); + for (x in elements) { + elements[x].innerHTML += ` + <a href="/admin/"> + <center class="button navbutton">ADMIN</center> + </a> + ` + } + } +} + +async function regkeys() { + const list = document.getElementById("keylist"); + list.innerHTML = "NOT IMPLEMENTED" +} + +async function add_regkey_form() { + const id = get_id(); + const session = get_session(); + const key = document.getElementById("key_add").value; + + const url = server + "/admin/regkey/new" + const body = {"id": id, "session": session, "key": key} + const req = await xhttp_post(url, body); + + if (req.status == 200) { + window.location.href = window.location.href + } else { + alert(req.status + ": " + req.body) } } |