add password change route
This commit is contained in:
parent
eb71f57427
commit
5989d86ef8
@ -1,4 +1,12 @@
|
||||
{
|
||||
"static": {
|
||||
"types": {
|
||||
"auth": {
|
||||
"pve": "pve",
|
||||
"ldap": "ldap"
|
||||
}
|
||||
}
|
||||
},
|
||||
"global": {
|
||||
"application": {
|
||||
"pveAPI": "https://pve.mydomain.example/api2/json",
|
||||
|
@ -34,6 +34,10 @@ class LocalDB {
|
||||
writeFileSync(this.#path, JSON.stringify(this.#data));
|
||||
}
|
||||
|
||||
getStatic () {
|
||||
return this.#data.static;
|
||||
}
|
||||
|
||||
getGlobal () {
|
||||
return this.#data.global;
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
import { Router } from "express";
|
||||
export const router = Router({ mergeParams: true }); ;
|
||||
|
||||
const db = global.db;
|
||||
const domain = global.db.domain;
|
||||
const checkAuth = global.utils.checkAuth;
|
||||
const requestPVE = global.pve.requestPVE;
|
||||
const pveAPIToken = global.db.pveAPIToken;
|
||||
|
||||
/**
|
||||
* GET - check authentication
|
||||
@ -59,3 +61,24 @@ router.delete("/ticket", async (req, res) => {
|
||||
res.cookie("auth", 0, { domain, path: "/", expires: expire });
|
||||
res.status(200).send({ auth: false });
|
||||
});
|
||||
|
||||
router.post("/password", async (req, res) => {
|
||||
const params = {
|
||||
password: req.body.password,
|
||||
userid: req.cookies.username
|
||||
};
|
||||
const useridparsed = params.userid.split("@");
|
||||
const realmName = useridparsed[useridparsed.length - 1];
|
||||
const domains = (await requestPVE(`/access/domains`, "GET", pveAPIToken)).data.data;
|
||||
const realm = domains.find((e) => e.realm === realmName);
|
||||
const type = realm.type;
|
||||
const types = db.getStatic().types.auth;
|
||||
|
||||
if (types[type] === "pve") {
|
||||
const response = await requestPVE("/access/password", "PUT", {cookies: req.cookies}, JSON.stringify(params));
|
||||
res.status(response.status).send(response.data)
|
||||
}
|
||||
else {
|
||||
res.status(501).send({error: `Auth type ${type} not implemented yet.`})
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user