gdfgd
This commit is contained in:
@@ -18,16 +18,12 @@ const computeBaseMode = (mode, ratings, session) => {
|
||||
let effMode = Number(mode ?? 0);
|
||||
const ratingsArr = (Array.isArray(ratings) && ratings.length > 0) ? ratings : null;
|
||||
|
||||
// For guest sessions, sanitize ratingsArr to only allow permitted ratings
|
||||
// For guest sessions, strictly force SFW mode and SFW rating
|
||||
let safeRatingsArr = ratingsArr;
|
||||
if (!session && ratingsArr) {
|
||||
const allowedRatings = ['sfw'];
|
||||
if (cfg.websrv.public_nsfw) allowedRatings.push('nsfw');
|
||||
if (cfg.websrv.public_untagged) allowedRatings.push('untagged');
|
||||
safeRatingsArr = ratingsArr.filter(r => allowedRatings.includes(r));
|
||||
if (safeRatingsArr.length === 0) {
|
||||
return "1 = 0";
|
||||
}
|
||||
const isGuest = !session || !session.user;
|
||||
if (isGuest) {
|
||||
effMode = 0;
|
||||
safeRatingsArr = ['sfw'];
|
||||
} else if (isAnonSession(session)) {
|
||||
const allowedModes = getAnonAllowedModes();
|
||||
const canFilter = canAnonDo('filter');
|
||||
@@ -35,10 +31,14 @@ const computeBaseMode = (mode, ratings, session) => {
|
||||
if (!canFilter) {
|
||||
safeRatingsArr = null;
|
||||
effMode = 0;
|
||||
} else if (safeRatingsArr) {
|
||||
safeRatingsArr = safeRatingsArr.filter(r => allowedModes.includes(r));
|
||||
if (safeRatingsArr.length === 0) {
|
||||
return "1 = 0";
|
||||
} else {
|
||||
if (safeRatingsArr) {
|
||||
safeRatingsArr = safeRatingsArr.filter(r => allowedModes.includes(r));
|
||||
if (safeRatingsArr.length === 0) {
|
||||
safeRatingsArr = (allowedModes.length === 1 && !allowedModes.includes('all'))
|
||||
? [allowedModes[0]]
|
||||
: (allowedModes.length < 5 ? [...allowedModes] : null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,11 +84,11 @@ const computeBaseMode = (mode, ratings, session) => {
|
||||
}
|
||||
} else if (effMode === 2) {
|
||||
if (!cfg.websrv.public_untagged) {
|
||||
baseMode = "1 = 0";
|
||||
baseMode = "items.id in (select item_id from tags_assign where tag_id = 1)";
|
||||
}
|
||||
} else if (effMode === 1) {
|
||||
if (!cfg.websrv.public_nsfw) {
|
||||
baseMode = "1 = 0";
|
||||
baseMode = "items.id in (select item_id from tags_assign where tag_id = 1)";
|
||||
}
|
||||
} else if (effMode === 4) {
|
||||
baseMode = "1 = 0";
|
||||
|
||||
Reference in New Issue
Block a user