Added consent page.

This commit is contained in:
2024-06-02 02:50:54 +02:00
parent 87dad222a1
commit 828f009696
6 changed files with 256 additions and 2 deletions

29
src/web/consent.js Normal file
View File

@@ -0,0 +1,29 @@
export default function consentHandler(req, res, next) {
if (Object.hasOwn(req.query, 'lgbt')) {
const lgbtFilters = (req.tagFilter || []).filter((tag) => !['gay', 'bisexual', 'transsexual'].includes(tag));
req.tagFilter = lgbtFilters; // eslint-disable-line no-param-reassign
res.cookie('tags', JSON.stringify(lgbtFilters));
}
if (Object.hasOwn(req.query, 'straight')) {
const straightFilters = Array.from(new Set([...(req.tagFilter || []), 'gay', 'bisexual', 'transsexual']));
req.tagFilter = straightFilters; // eslint-disable-line no-param-reassign
res.cookie('tags', JSON.stringify(straightFilters));
}
if (Object.hasOwn(req.query, 'consent')) {
req.session.hasConsent = true; // eslint-disable-line no-param-reassign
res.redirect(req.path);
return;
}
if (!req.path.includes('/consent') && !req.session?.hasConsent) {
res.redirect('/consent');
return;
}
next();
}