glauth-ui/routes/profile/[page].mjs
Kai Waggeling d756a192e4 continued
implemented HTMX
implemented ORM (sequelize)
2025-11-29 21:56:21 +01:00

68 lines
2 KiB
JavaScript

import {
generateOTPQRCode
} from "../../lib/otp.mjs";
export const get = async function(request, response) {
if (request.getAuthState() != 'authenticated') {
response.redirect('/login');
return;
}
let dbUser = await request.getUser();
switch (request.params.page) {
case 'personal':
response.render(`views/profile.njk`, {
page: 'profile/personal',
user: {
firstName: dbUser.givenname,
lastName: dbUser.sn,
mail: dbUser.mail,
},
data: {
firstName: dbUser.givenname,
lastName: dbUser.sn,
mail: dbUser.mail,
}
});
break;
case 'security':
response.render(`views/profile.njk`, {
page: 'profile/security',
user: {
firstName: dbUser.givenname,
lastName: dbUser.sn,
mail: dbUser.mail,
},
otp: {
active: dbUser.otpsecret != '' ? true : false,
qrcode: await generateOTPQRCode(dbUser.mail, dbUser.otpsecret)
}
});
break;
case 'createOTPSecret':
response.render(`views/profile.njk`, {
page: 'profile/createOTPSecret',
user: {
firstName: dbUser.givenname,
lastName: dbUser.sn,
mail: dbUser.mail,
},
otp: {
active: mfaData.otpsecret != '' ? true : false,
qrcode: await generateOTPQRCode(dbUser.mail, dbUser.otpsecret)
}
});
break;
default:
response.redirect('/page/personal');
break;
}
}
export const post = async function(request, response) {
console.log(request.body);
response.redirect("/login");
}