92 lines
3.6 KiB
JavaScript
92 lines
3.6 KiB
JavaScript
import cfg from "./config.mjs";
|
|
|
|
let manual_approval = true;
|
|
let min_tags = 3;
|
|
let registration_open = false;
|
|
let trusted_uploads = 0;
|
|
let bypass_duplicate_check = false;
|
|
let protect_files = false;
|
|
let private_messages = true;
|
|
let dm_attachments = true;
|
|
let dm_unencrypted = false;
|
|
let default_layout = 'modern';
|
|
let enable_pdf = false;
|
|
let enable_cleanup = false;
|
|
let cleanup_start_date = '';
|
|
let cleanup_end_date = '';
|
|
export const getShitpostMode = () => !!cfg.websrv.shitpost_mode;
|
|
export const setShitpostMode = (val) => {}; // No-op, strictly config-based
|
|
|
|
export const getEnableCleanup = () => {
|
|
if (cfg.websrv.enable_cleanup === false) return false;
|
|
return enable_cleanup;
|
|
};
|
|
export const setEnableCleanup = (val) => enable_cleanup = !!val;
|
|
|
|
export const getCleanupStartDate = () => cleanup_start_date;
|
|
export const setCleanupStartDate = (val) => cleanup_start_date = val || '';
|
|
|
|
export const getCleanupEndDate = () => cleanup_end_date;
|
|
export const setCleanupEndDate = (val) => cleanup_end_date = val || '';
|
|
|
|
export const getEnablePdf = () => enable_pdf;
|
|
export const setEnablePdf = (val) => enable_pdf = !!val;
|
|
|
|
export const getManualApproval = () => manual_approval;
|
|
export const setManualApproval = (val) => manual_approval = !!val;
|
|
|
|
export const getMinTags = () => min_tags;
|
|
export const setMinTags = (val) => {
|
|
const parsed = parseInt(val);
|
|
min_tags = isNaN(parsed) ? 3 : Math.max(0, parsed);
|
|
};
|
|
|
|
export const getRegistrationOpen = () => {
|
|
if (cfg.websrv.open_registration_web_toggle === false) {
|
|
return !!cfg.websrv.open_registration;
|
|
}
|
|
return registration_open;
|
|
};
|
|
export const setRegistrationOpen = (val) => registration_open = !!val;
|
|
|
|
// When false (default): open_registration=true means anyone can register with just username+password, activated immediately.
|
|
// When true: even in open registration, a valid email OR invite token is required.
|
|
export const getRegistrationRequireMailAndorToken = () => !!cfg.websrv.open_registration_require_mail_andor_token;
|
|
export const setRegistrationRequireMailAndorToken = (val) => {}; // No-op, strictly config-based
|
|
|
|
export const getTrustedUploads = () => trusted_uploads;
|
|
export const setTrustedUploads = (val) => trusted_uploads = Math.max(0, parseInt(val) ?? 3);
|
|
|
|
export const getBypassDuplicateCheck = () => bypass_duplicate_check;
|
|
export const setBypassDuplicateCheck = (val) => bypass_duplicate_check = !!val;
|
|
|
|
export const getProtectFiles = () => protect_files;
|
|
export const setProtectFiles = (val) => protect_files = !!val;
|
|
|
|
export const getPrivateMessages = () => private_messages;
|
|
export const setPrivateMessages = (val) => private_messages = !!val;
|
|
|
|
export const getDmAttachments = () => dm_attachments;
|
|
export const setDmAttachments = (val) => dm_attachments = !!val;
|
|
|
|
export const getDmUnencrypted = () => dm_unencrypted;
|
|
export const setDmUnencrypted = (val) => dm_unencrypted = !!val;
|
|
|
|
export const getDmAttachmentExpiryDays = () => {
|
|
const v = parseInt(cfg.websrv.dm_attachment_expiry_days);
|
|
return (Number.isFinite(v) && v > 0) ? v : 90;
|
|
};
|
|
|
|
export const getDefaultLayout = () => default_layout;
|
|
export const setDefaultLayout = (val) => default_layout = (val === 'legacy' ? 'legacy' : 'modern');
|
|
|
|
export const getLogUserIps = () => !!cfg.websrv.log_user_ips;
|
|
export const setLogUserIps = (val) => {}; // No-op, strictly config-based
|
|
|
|
export const getHashUserIps = () => !!cfg.websrv.hash_user_ips;
|
|
export const setHashUserIps = (val) => {}; // No-op, strictly config-based
|
|
|
|
export const getAllowCommentDeletion = () => !!cfg.websrv.allow_comment_deletion;
|
|
export const setAllowCommentDeletion = (val) => {}; // No-op, strictly config-based
|
|
|