Update .gitignore and add new dependencies and routes
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-04-02 20:59:13 +02:00
parent aa75d50361
commit 8f3e604774
16 changed files with 823 additions and 187 deletions

View File

@@ -6,7 +6,7 @@ const fileUpload = require('express-fileupload');
const authMiddleware = require('../Middlewares/authMiddleware');
const { loggers } = require('winston');
const ncp = require('ncp').ncp;
const configFile = fs.readFileSync('setup.json');
const configFile = fs.readFileSync(path.join(__dirname, '../data', 'setup.json'), 'utf-8')
const config = JSON.parse(configFile);
const bodyParser = require('body-parser');
const crypto = require('crypto');
@@ -42,8 +42,10 @@ router.get('/dashboard', authMiddleware, async (req, res) => {
let fileInfoNames = [];
try {
const fileInfo = JSON.parse(fs.readFileSync('file_info.json', 'utf8'));
const fileInfo = JSON.parse(fs.readFileSync(path.join(__dirname, '../data', 'setup.json'), 'utf-8'))
fileInfoNames = fileInfo.map(file => file.fileName);
fileInfo.map(/* ... */);
} catch (err) {
console.error('Error reading file_info.json:', err);
}
@@ -88,8 +90,20 @@ router.get('/dashboard/folder/:folderName', authMiddleware, async (req, res) =>
const domain = config.domain || 'mydomain.com';
const currentFolderName = folderName || '';
const data = await fs.promises.readFile('user.json', 'utf8');
const users = JSON.parse(data);
const data = await fs.readFileSync(path.join(__dirname, '../data', 'setup.json'), 'utf-8')
let users;
try {
users = JSON.parse(data);
} catch (error) {
console.error('Error parsing setup.json:', error);
users = [];
}
if (!Array.isArray(users)) {
console.error('Error: users is not an array. Check the contents of setup.json');
users = [];
}
const user = users.find(user => user.name === userId);
if (!user) {
@@ -98,8 +112,20 @@ router.get('/dashboard/folder/:folderName', authMiddleware, async (req, res) =>
const userRealId = user.id;
const fileInfoData = await fs.promises.readFile('file_info.json', 'utf8');
const fileInfo = JSON.parse(fileInfoData);
const fileInfoData = await fs.readFileSync(path.join(__dirname, '../data', 'file_info.json'), 'utf-8')
let fileInfo;
try {
fileInfo = JSON.parse(fileInfoData);
} catch (error) {
console.error('Error parsing file_info.json:', error);
fileInfo = [];
}
// Check if fileInfo is an array
if (!Array.isArray(fileInfo)) {
console.error('Error: fileInfo is not an array. Check the contents of file_info.json');
fileInfo = []; // Default to an empty array to prevent further errors
}
const fileInfoNames = fileInfo.map(file => file.fileName);
@@ -219,7 +245,7 @@ router.post('/dashboard/rename', authMiddleware, async (req, res) => {
try {
await fs.promises.rename(currentPath, newPath);
const data = await fs.promises.readFile('file_info.json', 'utf8');
const data = await fs.promise.readFileSync(path.join(__dirname, '../data', 'file_info.json'), 'utf-8')
let fileInfo = JSON.parse(data);
let found = false;
@@ -232,7 +258,7 @@ router.post('/dashboard/rename', authMiddleware, async (req, res) => {
}
if (found) {
await fs.promises.writeFile('file_info.json', JSON.stringify(fileInfo, null, 2), 'utf8');
await fs.promises.writeFile(path.join(__dirname, '../data', 'file_info.json'), JSON.stringify(fileInfo, null, 2), 'utf8');
}
res.status(200).send('L\'opération a été effectuée avec succès.');
@@ -257,7 +283,7 @@ router.post('/dashboard/rename/:filePath*', authMiddleware, async (req, res) =>
try {
await fs.promises.rename(currentPath, newPath);
const data = await fs.promises.readFile('file_info.json', 'utf8');
const data = await fs.promises.readFile(path.join(__dirname, '../data', 'file_info.json'), 'utf8');
let fileInfo = JSON.parse(data);
let found = false;
@@ -270,7 +296,7 @@ router.post('/dashboard/rename/:filePath*', authMiddleware, async (req, res) =>
}
if (found) {
await fs.promises.writeFile('file_info.json', JSON.stringify(fileInfo, null, 2), 'utf8');
await fs.promises.writeFile(path.join(__dirname, '../data', 'file_info.json'), JSON.stringify(fileInfo, null, 2), 'utf8');
}
res.status(200).send('L\'opération a été effectuée avec succès.');
@@ -338,7 +364,7 @@ router.post('/dashboard/movefile', authMiddleware, async (req, res) => {
const fileName = req.body.fileName;
const folderName = req.body.folderName;
const data = await fs.promises.readFile('user.json', 'utf8');
const data = await fs.readFileSync(path.join(__dirname, '../data', 'user.json.json'), 'utf-8')
const users = JSON.parse(data);
const user = users.find(user => user.id === req.user.id);
@@ -526,12 +552,12 @@ router.post('/upload', authMiddleware, async (req, res) => {
if (expiryDate || password) {
let data = [];
if (fs.existsSync('file_info.json')) {
const existingData = await fs.promises.readFile('file_info.json', 'utf8');
if (fs.existsSync(path.join(__dirname, '../data', 'file_info.json'))) {
const existingData = await fs.promises.readFile(path.join(__dirname, '../data', 'file_info.json'), 'utf8');
data = JSON.parse(existingData);
}
data.push(fileInfo);
await fs.promises.writeFile('file_info.json', JSON.stringify(data, null, 2));
await fs.promises.writeFile(path.join(__dirname, '../data', 'file_info.json'), JSON.stringify(data, null, 2));
}
res.redirect('/dpanel/dashboard');
@@ -542,8 +568,8 @@ router.post('/upload', authMiddleware, async (req, res) => {
}
});
const User = require('../user.json');
const setup = JSON.parse(fs.readFileSync(path.join(__dirname, '../setup.json'), 'utf8'));
const User = require('../data/user.json');
const setup = JSON.parse(fs.readFileSync(path.join(__dirname, '../data', 'setup.json'), 'utf-8'));
router.get('/dashboard/admin', authMiddleware, async (req, res) => {
try {
@@ -560,7 +586,7 @@ router.get('/dashboard/admin/users', authMiddleware, async (req, res) => {
let currentPage = Number(req.query.page) || 1;
let limit = Number(req.query.limit) || 10;
let rawdata = fs.readFileSync(path.join(__dirname, '../user.json'));
let rawdata = fs.readFileSync(path.join(__dirname, '../data/user.json'));
let users = JSON.parse(rawdata);
let totalUsers = users.length;
@@ -591,7 +617,7 @@ const osUtils = require('os-utils');
const Convert = require('ansi-to-html');
const convert = new Convert();
router.get('/dashboard/admin/stats&logs', authMiddleware, async (req, res) => {
router.get('/dashboard/admin/stats-logs', authMiddleware, async (req, res) => {
try {
const uptime = os.uptime();
const memoryUsage = process.memoryUsage().heapUsed / 1024 / 1024;
@@ -626,7 +652,7 @@ router.get('/dashboard/admin/stats&logs', authMiddleware, async (req, res) => {
}
});
router.get('/dashboard/admin/Privacy&Security', authMiddleware, async (req, res) => {
router.get('/dashboard/admin/Privacy-Security', authMiddleware, async (req, res) => {
try {
const files = await fs.promises.readdir('./report');
const reports = files.filter(file => file.endsWith('.json')).map(file => {
@@ -658,7 +684,7 @@ router.post('/dashboard/update-role', authMiddleware, async (req, res) => {
user.role = role;
}
fs.writeFileSync(path.join(__dirname, '../user.json'), JSON.stringify(User, null, 2));
fs.writeFileSync(path.join(__dirname, '../data/user.json'), JSON.stringify(User, null, 2));
res.redirect('/dpanel/dashboard/admin');
} catch (err) {
@@ -669,7 +695,7 @@ router.post('/dashboard/update-role', authMiddleware, async (req, res) => {
router.post('/dashboard/update-setup', authMiddleware, async (req, res) => {
try {
let setup = JSON.parse(fs.readFileSync(path.join(__dirname, '../setup.json')));
let setup = JSON.parse(fs.readFileSync(path.join(__dirname, '../data', 'setup.json'), 'utf-8'));
if (!req.body.ldap || !req.body.ldap.enabled) {
delete setup.ldap;
@@ -686,7 +712,7 @@ router.post('/dashboard/update-setup', authMiddleware, async (req, res) => {
setup.domain = req.body.domain;
setup.uptime = req.body.uptime;
fs.writeFileSync(path.join(__dirname, '../setup.json'), JSON.stringify(setup, null, 2));
fs.writeFileSync(path.join(__dirname, '../data', 'setup.json'), 'utf-8'), JSON.stringify(setup, null, 2);
res.redirect('/dpanel/dashboard/admin');
} catch (err) {