feat(nodejs): control access to forgotten page using config variable

This commit is contained in:
Serik Ibragimov
2024-04-22 15:47:58 +05:00
parent 39a61835ea
commit a722b142bb
5 changed files with 28 additions and 6 deletions

View File

@ -37,6 +37,7 @@ const users = require('./helpers/users');
const configServer = config.get('server');
const siteUrl = configServer.get('siteUrl');
const enableForgotten = configServer.get('enableForgotten');
const fileChoiceUrl = configServer.has('fileChoiceUrl') ? configServer.get('fileChoiceUrl') : '';
const cfgSignatureEnable = configServer.get('token.enable');
const cfgSignatureUseForRequest = configServer.get('token.useforrequest');
@ -99,6 +100,7 @@ app.get('/', (req, res) => { // define a handler for default page
users,
languages: configServer.get('languages'),
serverVersion: config.get('version'),
enableForgotten,
});
} catch (ex) {
console.log(ex); // display error message in the console
@ -108,6 +110,15 @@ app.get('/', (req, res) => { // define a handler for default page
});
app.get('/forgotten', async (req, res) => {
if (!enableForgotten) {
res.status(403);
res.render(
'error',
{ message: 'The forgotten page is disabled.' }
);
return;
}
function getForgottenList() {
return new Promise((resolve, reject) => {
documentService.commandRequest('getForgottenList', '', (err, data, ress) => {
@ -152,6 +163,11 @@ app.get('/forgotten', async (req, res) => {
});
app.delete('/forgotten', (req, res) => { // define a handler for removing forgotten file
if (!enableForgotten) {
res.sendStatus(403);
return;
}
try {
const fileName = req.query.filename;
if (fileName && typeof fileName === 'string') { // if the forgotten file name is defined