diff --git a/account/src/lib/user-utils.ts b/account/src/lib/user-utils.ts index 9268919..f4d6251 100644 --- a/account/src/lib/user-utils.ts +++ b/account/src/lib/user-utils.ts @@ -55,21 +55,20 @@ export async function upgradeUser(userId: T.UUID): Promise { router.post("/admin/upgradeToStudent/:userId", async (req, res, next) => { try { - if (!req.user.admin) { + if (!req.user || !req.user.admin) { return res.redirect("/"); } const userId = req.params.userId; @@ -169,6 +170,20 @@ const authRouter = (passport: PassportStatic) => { } }); + router.delete("/admin/:userId", async (req, res, next) => { + try { + // TODO: MAKE PROPER MIDDLEWARE WITH TYPING + if (!req.user || !req.user.admin) { + return res.redirect("/"); + } + const toDelete = req.params.userId as T.UUID; + await deleteLingdocsUser(toDelete); + res.send({ ok: true, message: "user deleted" }); + } catch (e) { + next(e); + } + }); + router.get("/email-verification/:uuid/:token", async (req, res, next) => { const page = "email-verification"; const { uuid, token } = req.params; diff --git a/account/views/admin.ejs b/account/views/admin.ejs index 1ddfa8b..c765904 100644 --- a/account/views/admin.ejs +++ b/account/views/admin.ejs @@ -8,6 +8,21 @@ +

LingDocs Auth Admin

@@ -16,23 +31,49 @@ Name Email + Providers Level + Last Active + <% for(var i=0; i < users.length; i++) { %> - <%= users[i].name %> + <%= users[i].name %> <% if (users[i].admin) { %> + + <% } %> + <%= users[i].email %> + + <% if (users[i].password && users[i].email) { %> + + <% } %> + <% if (users[i].google) { %> + + <% } %> + <% if (users[i].twitter) { %> + + <% } %> + <% if (users[i].github) { %> + + <% } %> + <% if (users[i].requestedUpgradeToStudent) { %> - Requested Upgrade -
- + +
<% } else { %> <%= users[i].level %> <% } %> + + <%= new Date(users[i].lastActive).toUTCString() %> + + + + <% } %>