Merge branch 'master' of https://github.com/naturalcrit/homebrewery into delete-route-for-account-deletion

This commit is contained in:
Víctor Losada Hernández
2026-09-27 11:12:46 +02:00
4 changed files with 8 additions and 16 deletions
-3
View File
@@ -13,7 +13,6 @@ const isProd = nodeEnv === 'production';
import HomebrewAPI from './homebrew.api.js'; import HomebrewAPI from './homebrew.api.js';
import asyncHandler from 'express-async-handler'; import asyncHandler from 'express-async-handler';
import { splitTextStyleAndMetadata } from '../shared/helpers.js';
process.env.ADMIN_USER = process.env.ADMIN_USER || 'admin'; process.env.ADMIN_USER = process.env.ADMIN_USER || 'admin';
process.env.ADMIN_PASS = process.env.ADMIN_PASS || 'password3'; process.env.ADMIN_PASS = process.env.ADMIN_PASS || 'password3';
@@ -148,8 +147,6 @@ export default function createAdminApi(vite) {
brew[property] = cleanText(brew[property]); brew[property] = cleanText(brew[property]);
}); });
splitTextStyleAndMetadata(brew);
req.body = brew; req.body = brew;
// Remove Account from request to prevent Admin user from being added to brew as an Author // Remove Account from request to prevent Admin user from being added to brew as an Author
+1 -3
View File
@@ -193,13 +193,13 @@ const api = {
const fixedStub = migrateSystemsToTags(stub); const fixedStub = migrateSystemsToTags(stub);
req.brew = fixedStub; req.brew = fixedStub;
splitTextStyleAndMetadata(req.brew);
next(); next();
}; };
}, },
getCSS : async (req, res)=>{ getCSS : async (req, res)=>{
const { brew } = req; const { brew } = req;
if(!brew) return res.status(404).send(''); if(!brew) return res.status(404).send('');
splitTextStyleAndMetadata(brew);
if(!brew.style) return res.status(404).send(''); if(!brew.style) return res.status(404).send('');
res.set({ res.set({
@@ -345,7 +345,6 @@ const api = {
}); });
currentTheme = req.brew; currentTheme = req.brew;
splitTextStyleAndMetadata(currentTheme);
if(!currentTheme.tags.some((tag)=>tag === 'meta:theme' || tag === 'meta:Theme')) if(!currentTheme.tags.some((tag)=>tag === 'meta:theme' || tag === 'meta:Theme'))
throw { brewId: req.params.id, name: 'Invalid Theme Selected', message: 'Selected theme does not have the meta:theme tag', status: 422, HBErrorCode: '10' }; throw { brewId: req.params.id, name: 'Invalid Theme Selected', message: 'Selected theme does not have the meta:theme tag', status: 422, HBErrorCode: '10' };
themeName ??= currentTheme.title; themeName ??= currentTheme.title;
@@ -384,7 +383,6 @@ const api = {
// Initialize brew from request and body, destructure query params, and set the initial value for the after-save method // Initialize brew from request and body, destructure query params, and set the initial value for the after-save method
const brewFromClient = api.excludePropsFromUpdate(req.body); const brewFromClient = api.excludePropsFromUpdate(req.body);
const brewFromServer = req.brew; const brewFromServer = req.brew;
splitTextStyleAndMetadata(brewFromServer);
if(brewFromServer?.version !== brewFromClient?.version){ if(brewFromServer?.version !== brewFromClient?.version){
console.log(`Version mismatch on brew ${brewFromClient.editId}`); console.log(`Version mismatch on brew ${brewFromClient.editId}`);
+1 -4
View File
@@ -244,7 +244,6 @@ export default function pageRoutes({
}; };
sanitizeBrew(req.brew, 'edit'); sanitizeBrew(req.brew, 'edit');
splitTextStyleAndMetadata(req.brew);
res.header('Cache-Control', 'no-cache, no-store'); //reload the latest saved brew when pressing back button, not the cached version before save. res.header('Cache-Control', 'no-cache, no-store'); //reload the latest saved brew when pressing back button, not the cached version before save.
return next(); return next();
})); }));
@@ -252,7 +251,6 @@ export default function pageRoutes({
//New Page from ID //New Page from ID
app.get('/new/:id', asyncHandler(getBrew('share')), asyncHandler(async(req, res, next)=>{ app.get('/new/:id', asyncHandler(getBrew('share')), asyncHandler(async(req, res, next)=>{
sanitizeBrew(req.brew, 'share'); sanitizeBrew(req.brew, 'share');
splitTextStyleAndMetadata(req.brew);
const brew = { const brew = {
shareId : req.brew.shareId, shareId : req.brew.shareId,
title : `CLONE - ${req.brew.title}`, title : `CLONE - ${req.brew.title}`,
@@ -303,14 +301,13 @@ export default function pageRoutes({
const googleId = brew.googleId; const googleId = brew.googleId;
const shareId = brew.shareId; const shareId = brew.shareId;
await GoogleActions.increaseView(googleId, shareId, 'share', brew) await GoogleActions.increaseView(googleId, shareId, 'share', brew)
.catch((err)=>{next(err);}); .catch((err)=>{next(err);});
} else { } else {
await HomebrewModel.increaseView({ shareId: brew.shareId }); await HomebrewModel.increaseView({ shareId: brew.shareId });
} }
}; };
brew.authors.includes(req.account?.username) ? sanitizeBrew(req.brew, 'shareAuthor') : sanitizeBrew(req.brew, 'share'); brew.authors.includes(req.account?.username) ? sanitizeBrew(req.brew, 'shareAuthor') : sanitizeBrew(req.brew, 'share');
splitTextStyleAndMetadata(req.brew);
return next(); return next();
})); }));
+6 -6
View File
@@ -8,12 +8,12 @@ export default defineConfig({
plugins : [react(), generateAssetsPlugin()], plugins : [react(), generateAssetsPlugin()],
resolve : { resolve : {
alias : { alias : {
'@vitreum' : path.resolve(__dirname, './vitreum'), '@vitreum' : path.resolve(import.meta.dirname, './vitreum'),
'@shared' : path.resolve(__dirname, './shared'), '@shared' : path.resolve(import.meta.dirname, './shared'),
'@sharedStyles' : path.resolve(__dirname, './shared/naturalcrit/styles'), '@sharedStyles' : path.resolve(import.meta.dirname, './shared/naturalcrit/styles'),
'@navbar' : path.resolve(__dirname, './client/homebrew/navbar'), '@navbar' : path.resolve(import.meta.dirname, './client/homebrew/navbar'),
'@themes' : path.resolve(__dirname, './themes'), '@themes' : path.resolve(import.meta.dirname, './themes'),
'@components' : path.resolve(__dirname, './client/components') '@components' : path.resolve(import.meta.dirname, './client/components')
}, },
}, },
build : { build : {