feat(webui): delete account
This commit is contained in:
parent
d5c829e4fe
commit
2a9d2a3be6
19
src/controllers/custom/deleteAccountController.ts
Normal file
19
src/controllers/custom/deleteAccountController.ts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import { RequestHandler } from "express";
|
||||||
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
|
import { Account } from "@/src/models/loginModel";
|
||||||
|
import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
|
||||||
|
import { Loadout } from "@/src/models/inventoryModels/loadoutModel";
|
||||||
|
import { PersonalRooms } from "@/src/models/personalRoomsModel";
|
||||||
|
import { Ship } from "@/src/models/shipModel";
|
||||||
|
|
||||||
|
export const deleteAccountController: RequestHandler = async (req, res) => {
|
||||||
|
const accountId = await getAccountIdForRequest(req);
|
||||||
|
await Promise.all([
|
||||||
|
Account.deleteOne({ _id: accountId }),
|
||||||
|
Inventory.deleteOne({ accountOwnerId: accountId }),
|
||||||
|
Loadout.deleteOne({ loadoutOwnerId: accountId }),
|
||||||
|
PersonalRooms.deleteOne({ personalRoomsOwnerId: accountId }),
|
||||||
|
Ship.deleteOne({ ShipOwnerId: accountId })
|
||||||
|
]);
|
||||||
|
res.end();
|
||||||
|
};
|
@ -4,6 +4,7 @@ import { tunablesController } from "@/src/controllers/custom/tunablesController"
|
|||||||
import { getItemListsController } from "@/src/controllers/custom/getItemListsController";
|
import { getItemListsController } from "@/src/controllers/custom/getItemListsController";
|
||||||
import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pushArchonCrystalUpgradeController";
|
import { pushArchonCrystalUpgradeController } from "@/src/controllers/custom/pushArchonCrystalUpgradeController";
|
||||||
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
|
import { popArchonCrystalUpgradeController } from "@/src/controllers/custom/popArchonCrystalUpgradeController";
|
||||||
|
import { deleteAccountController } from "@/src/controllers/custom/deleteAccountController";
|
||||||
|
|
||||||
import { createAccountController } from "@/src/controllers/custom/createAccountController";
|
import { createAccountController } from "@/src/controllers/custom/createAccountController";
|
||||||
import { addItemController } from "@/src/controllers/custom/addItemController";
|
import { addItemController } from "@/src/controllers/custom/addItemController";
|
||||||
@ -17,6 +18,7 @@ customRouter.get("/tunables.json", tunablesController);
|
|||||||
customRouter.get("/getItemLists", getItemListsController);
|
customRouter.get("/getItemLists", getItemListsController);
|
||||||
customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController);
|
customRouter.get("/pushArchonCrystalUpgrade", pushArchonCrystalUpgradeController);
|
||||||
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
|
customRouter.get("/popArchonCrystalUpgrade", popArchonCrystalUpgradeController);
|
||||||
|
customRouter.get("/deleteAccount", deleteAccountController);
|
||||||
|
|
||||||
customRouter.post("/createAccount", createAccountController);
|
customRouter.post("/createAccount", createAccountController);
|
||||||
customRouter.post("/addItem", addItemController);
|
customRouter.post("/addItem", addItemController);
|
||||||
|
@ -38,6 +38,8 @@
|
|||||||
<button class="nav-link dropdown-toggle displayname" data-bs-toggle="dropdown" aria-expanded="false"></button>
|
<button class="nav-link dropdown-toggle displayname" data-bs-toggle="dropdown" aria-expanded="false"></button>
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
<ul class="dropdown-menu dropdown-menu-end">
|
||||||
<li><a class="dropdown-item" href="/webui/" onclick="logout();">Logout</a></li>
|
<li><a class="dropdown-item" href="/webui/" onclick="logout();">Logout</a></li>
|
||||||
|
<li><hr class="dropdown-divider"></li>
|
||||||
|
<li><a class="dropdown-item" onclick="deleteAccount();">Delete Account</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -61,6 +61,15 @@ function logout() {
|
|||||||
localStorage.removeItem("password");
|
localStorage.removeItem("password");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function deleteAccount() {
|
||||||
|
if (window.confirm("Are you sure you want to delete your account " + $(".displayname").text() + " (" + localStorage.getItem("email") + ")? This action cannot be undone.")) {
|
||||||
|
fetch("/custom/deleteAccount?" + window.authz).then(function() {
|
||||||
|
logout();
|
||||||
|
single.loadRoute("/webui/"); // Show login screen
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (localStorage.getItem("email") && localStorage.getItem("password")) {
|
if (localStorage.getItem("email") && localStorage.getItem("password")) {
|
||||||
loginFromLocalStorage();
|
loginFromLocalStorage();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user