mirror of
https://github.com/ONLYOFFICE/document-server-integration.git
synced 2026-02-10 18:05:10 +08:00
Merge pull request #561 from ONLYOFFICE/feature/forgotten-page
Feature/forgotten page
This commit is contained in:
@ -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
|
||||
@ -107,6 +109,79 @@ 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;
|
||||
}
|
||||
|
||||
let forgottenFiles = [];
|
||||
|
||||
function getForgottenList() {
|
||||
return new Promise((resolve, reject) => {
|
||||
documentService.commandRequest('getForgottenList', '', (err, data, ress) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(JSON.parse(ress.data));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function getForgottenFile(key) {
|
||||
return new Promise((resolve, reject) => {
|
||||
documentService.commandRequest('getForgotten', key, (err, data) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
const parsedData = JSON.parse(data);
|
||||
resolve({
|
||||
name: parsedData.key,
|
||||
documentType: fileUtility.getFileType(parsedData.url),
|
||||
url: parsedData.url,
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const forgottenListResponse = await getForgottenList();
|
||||
|
||||
const { keys } = forgottenListResponse;
|
||||
forgottenFiles = await Promise.all(keys.map(getForgottenFile));
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
req.DocManager = new DocManager(req, res);
|
||||
res.render('forgotten', { forgottenFiles });
|
||||
});
|
||||
|
||||
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
|
||||
documentService.commandRequest('deleteForgotten', fileName);
|
||||
res.status(204).send();
|
||||
}
|
||||
} catch (ex) {
|
||||
console.log(ex);
|
||||
res.write('Server error');
|
||||
res.status(500).send();
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/download', (req, res) => { // define a handler for downloading files
|
||||
req.DocManager = new DocManager(req, res);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user