mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-31 03:40:16 +01:00
refactor(accounts): categories and consent
This commit is contained in:
@@ -2,21 +2,17 @@
|
||||
|
||||
const user = require('../../user');
|
||||
const categories = require('../../categories');
|
||||
const accountHelpers = require('./helpers');
|
||||
const helpers = require('../helpers');
|
||||
const pagination = require('../../pagination');
|
||||
const meta = require('../../meta');
|
||||
|
||||
const categoriesController = module.exports;
|
||||
|
||||
categoriesController.get = async function (req, res, next) {
|
||||
const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
|
||||
if (!userData) {
|
||||
return next();
|
||||
}
|
||||
categoriesController.get = async function (req, res) {
|
||||
const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
|
||||
const [states, allCategoriesData] = await Promise.all([
|
||||
user.getCategoryWatchState(userData.uid),
|
||||
categories.buildForSelect(userData.uid, 'find', ['descriptionParsed', 'depth', 'slug']),
|
||||
user.getCategoryWatchState(res.locals.uid),
|
||||
categories.buildForSelect(res.locals.uid, 'find', ['descriptionParsed', 'depth', 'slug']),
|
||||
]);
|
||||
|
||||
const pageCount = Math.max(1, Math.ceil(allCategoriesData.length / meta.config.categoriesPerPage));
|
||||
@@ -33,12 +29,14 @@ categoriesController.get = async function (req, res, next) {
|
||||
category.isNotWatched = states[category.cid] === categories.watchStates.notwatching;
|
||||
}
|
||||
});
|
||||
userData.categories = categoriesData;
|
||||
userData.title = `[[pages:account/watched_categories, ${userData.username}]]`;
|
||||
userData.breadcrumbs = helpers.buildBreadcrumbs([
|
||||
{ text: userData.username, url: `/user/${userData.userslug}` },
|
||||
|
||||
const payload = {};
|
||||
payload.categories = categoriesData;
|
||||
payload.title = `[[pages:account/watched_categories, ${username}]]`;
|
||||
payload.breadcrumbs = helpers.buildBreadcrumbs([
|
||||
{ text: username, url: `/user/${userslug}` },
|
||||
{ text: '[[pages:categories]]' },
|
||||
]);
|
||||
userData.pagination = pagination.create(page, pageCount, req.query);
|
||||
res.render('account/categories', userData);
|
||||
payload.pagination = pagination.create(page, pageCount, req.query);
|
||||
res.render('account/categories', payload);
|
||||
};
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
const db = require('../../database');
|
||||
const meta = require('../../meta');
|
||||
const user = require('../../user');
|
||||
const helpers = require('../helpers');
|
||||
const accountHelpers = require('./helpers');
|
||||
|
||||
const consentController = module.exports;
|
||||
|
||||
@@ -12,19 +12,18 @@ consentController.get = async function (req, res, next) {
|
||||
return next();
|
||||
}
|
||||
|
||||
const userData = await accountHelpers.getUserDataByUserSlug(req.params.userslug, req.uid, req.query);
|
||||
if (!userData) {
|
||||
return next();
|
||||
}
|
||||
const consented = await db.getObjectField(`user:${userData.uid}`, 'gdpr_consent');
|
||||
userData.gdpr_consent = parseInt(consented, 10) === 1;
|
||||
userData.digest = {
|
||||
const { username, userslug } = await user.getUserFields(res.locals.uid, ['username', 'userslug']);
|
||||
const consented = await db.getObjectField(`user:${res.locals.uid}`, 'gdpr_consent');
|
||||
|
||||
const payload = {};
|
||||
payload.gdpr_consent = parseInt(consented, 10) === 1;
|
||||
payload.digest = {
|
||||
frequency: meta.config.dailyDigestFreq || 'off',
|
||||
enabled: meta.config.dailyDigestFreq !== 'off',
|
||||
};
|
||||
|
||||
userData.title = '[[user:consent.title]]';
|
||||
userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: `/user/${userData.userslug}` }, { text: '[[user:consent.title]]' }]);
|
||||
payload.title = '[[user:consent.title]]';
|
||||
payload.breadcrumbs = helpers.buildBreadcrumbs([{ text: username, url: `/user/${userslug}` }, { text: '[[user:consent.title]]' }]);
|
||||
|
||||
res.render('account/consent', userData);
|
||||
res.render('account/consent', payload);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user