summaryrefslogtreecommitdiff
path: root/public/js
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2023-01-29 19:28:48 -0500
committerTyler Murphy <tylermurphy534@gmail.com>2023-01-29 19:28:48 -0500
commitac58a612a3fe928793b77c592551fdd962b69064 (patch)
treec746d9325a88447e3149891a2435bcb1f3ece67a /public/js
parentno mass rerendering html plus logging fix (diff)
downloadxssbook-ac58a612a3fe928793b77c592551fdd962b69064.tar.gz
xssbook-ac58a612a3fe928793b77c592551fdd962b69064.tar.bz2
xssbook-ac58a612a3fe928793b77c592551fdd962b69064.zip
admin page
Diffstat (limited to 'public/js')
-rw-r--r--public/js/admin.js59
-rw-r--r--public/js/api.js24
2 files changed, 83 insertions, 0 deletions
diff --git a/public/js/admin.js b/public/js/admin.js
new file mode 100644
index 0000000..e4364ec
--- /dev/null
+++ b/public/js/admin.js
@@ -0,0 +1,59 @@
+async function auth(event) {
+ event.preventDefault();
+ const text = event.target.elements.adminpassword.value;
+ const response = await adminauth(text);
+ if (response.status !== 200) {
+ alert(response.msg)
+ } else {
+ document.getElementById("admin").classList.remove("hidden")
+ document.getElementById("login").classList.add("hidden")
+ }
+ return false;
+}
+
+async function submit() {
+ let text = document.getElementById("query").value
+ let response = await adminquery(text)
+ alert(response.msg)
+}
+
+async function posts() {
+ let response = await adminposts();
+ if (response.status !== 200) {
+ alert(response.msg)
+ return
+ }
+ let table = document.getElementById("table")
+ table.innerHTML = response.msg
+}
+
+async function users() {
+ let response = await adminusers();
+ if (response.status !== 200) {
+ alert(response.msg)
+ return
+ }
+ let table = document.getElementById("table")
+ table.innerHTML = response.msg
+}
+
+async function sessions() {
+ let response = await adminsessions();
+ if (response.status !== 200) {
+ alert(response.msg)
+ return
+ }
+ let table = document.getElementById("table")
+ table.innerHTML = response.msg
+}
+
+async function load() {
+ let check = await admincheck();
+ if (check.msg === "true") {
+ document.getElementById("admin").classList.remove("hidden")
+ } else {
+ document.getElementById("login").classList.remove("hidden")
+ }
+}
+
+load() \ No newline at end of file
diff --git a/public/js/api.js b/public/js/api.js
index 77adff7..9845be5 100644
--- a/public/js/api.js
+++ b/public/js/api.js
@@ -64,4 +64,28 @@ const postlike = async (post_id, state) => {
const createpost = async (content) => {
return await request('/posts/create', {content})
+}
+
+const adminauth = async (secret) => {
+ return await request('/admin/auth', {secret})
+}
+
+const admincheck = async () => {
+ return await request('/admin/check', {})
+}
+
+const adminquery = async (query) => {
+ return await request('/admin/query', {query})
+}
+
+const adminposts = async () => {
+ return await request('/admin/posts', {})
+}
+
+const adminusers = async () => {
+ return await request('/admin/users', {})
+}
+
+const adminsessions = async () => {
+ return await request('/admin/sessions', {})
} \ No newline at end of file