Tied consent warning to session.
This commit is contained in:
@@ -8,5 +8,5 @@ module.exports = knex({
|
||||
connection: config.database,
|
||||
// performance overhead, don't use asyncStackTraces in production
|
||||
asyncStackTraces: process.env.NODE_ENV === 'development',
|
||||
debug: process.env.NODE_ENV === 'development',
|
||||
// debug: process.env.NODE_ENV === 'development',
|
||||
});
|
||||
|
||||
10
src/media.js
10
src/media.js
@@ -126,7 +126,7 @@ function toBaseSource(rawSource) {
|
||||
return null;
|
||||
}
|
||||
|
||||
function baseSourceToBaseMedia(baseSource, role, metadata) {
|
||||
function baseSourceToBaseMedia(baseSource, role, metadata, options) {
|
||||
if (Array.isArray(baseSource)) {
|
||||
if (baseSource.length > 0) {
|
||||
return {
|
||||
@@ -134,6 +134,7 @@ function baseSourceToBaseMedia(baseSource, role, metadata) {
|
||||
id: nanoid(),
|
||||
role,
|
||||
sources: baseSource,
|
||||
...options,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -146,6 +147,7 @@ function baseSourceToBaseMedia(baseSource, role, metadata) {
|
||||
id: nanoid(),
|
||||
role,
|
||||
sources: [baseSource],
|
||||
...options,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -299,6 +301,8 @@ async function storeImageFile(media, hashDir, hashSubDir, filename, filedir, fil
|
||||
const info = await image.metadata();
|
||||
const isProcessed = media.meta.subtype !== 'jpeg' || media.process;
|
||||
|
||||
console.log(media);
|
||||
|
||||
if (media.process) {
|
||||
Object.entries(media.process).forEach(([operation, options]) => {
|
||||
if (image[operation]) {
|
||||
@@ -727,9 +731,9 @@ async function associateAvatars(profiles) {
|
||||
? {
|
||||
...profile,
|
||||
avatarBaseMedia: toBaseMedias([profile.avatar], 'avatars', {
|
||||
credit: (profile.credit !== undefined && (profile.network?.name || profile.site?.name)) || null,
|
||||
credit: profile.credit || profile.entity?.name || null,
|
||||
scraper: profile.scraper || null,
|
||||
})[0],
|
||||
}, { stats: true })[0],
|
||||
}
|
||||
: profile
|
||||
));
|
||||
|
||||
8
src/web/consent.js
Normal file
8
src/web/consent.js
Normal file
@@ -0,0 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
function setConsent(req, res) {
|
||||
req.session.consent = !!req.body;
|
||||
res.status(204).send();
|
||||
}
|
||||
|
||||
module.exports = setConsent;
|
||||
@@ -6,12 +6,15 @@ const express = require('express');
|
||||
const { postgraphile } = require('postgraphile');
|
||||
const Router = require('express-promise-router');
|
||||
const bodyParser = require('body-parser');
|
||||
const session = require('express-session');
|
||||
const KnexSessionStore = require('connect-session-knex')(session);
|
||||
|
||||
const PgConnectionFilterPlugin = require('postgraphile-plugin-connection-filter');
|
||||
const PgSimplifyInflectorPlugin = require('@graphile-contrib/pg-simplify-inflector');
|
||||
const PgOrderByRelatedPlugin = require('@graphile-contrib/pg-order-by-related');
|
||||
|
||||
const logger = require('../logger')(__filename);
|
||||
const knex = require('../knex');
|
||||
const { ActorPlugins, SitePlugins, ReleasePlugins } = require('./plugins/plugins');
|
||||
|
||||
const {
|
||||
@@ -35,9 +38,12 @@ const {
|
||||
fetchTags,
|
||||
} = require('./tags');
|
||||
|
||||
const setConsent = require('./consent');
|
||||
|
||||
async function initServer() {
|
||||
const app = express();
|
||||
const router = Router();
|
||||
const store = new KnexSessionStore({ knex });
|
||||
|
||||
const connectionString = `postgres://${config.database.user}:${config.database.password}@${config.database.host}:5432/${config.database.database}`;
|
||||
|
||||
@@ -77,6 +83,7 @@ async function initServer() {
|
||||
});
|
||||
|
||||
router.use(bodyParser.json({ strict: false }));
|
||||
router.use(session({ ...config.web.session, store }));
|
||||
|
||||
router.get('/api/scenes', fetchScenes);
|
||||
router.get('/api/scenes/:releaseId', fetchScene);
|
||||
@@ -103,10 +110,13 @@ async function initServer() {
|
||||
router.get('/api/tags', fetchTags);
|
||||
router.get('/api/tags/:tagId', fetchTag);
|
||||
|
||||
router.post('/api/consent', setConsent);
|
||||
|
||||
router.get('*', (req, res) => {
|
||||
res.render(path.join(__dirname, '../../assets/index.ejs'), {
|
||||
env: JSON.stringify({
|
||||
sfw: !!req.headers.sfw || Object.prototype.hasOwnProperty.call(req.query, 'sfw'),
|
||||
consent: !!req.session.consent,
|
||||
}),
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user