Untitled
unknown
plain_text
a year ago
6.7 kB
2
Indexable
Never
"use strict"; const RoomFunction = require("../class/classFunction"); const express = require('express'); const multer = require('multer') const maxSize = 10 * 1024 * 1024; // 10 MB en octets const upload = multer({ dest: 'public/uploads/' }) const routes = express.Router(); const fs = require('fs'); const Imageutil = require("../util/imageUtil"); const environment = process.env.MODE; const serverOptions = require('../config.json')[environment]; const urlFilePathServer = 'https://' + serverOptions.hostName + ':' + serverOptions.listenPort //const Player = require('../modules/player/playerBuilder') const jwt = require('jsonwebtoken'); const secretKey = 'your_secret_key'; const { RateLimiterMemory } = require('rate-limiter-flexible'); const { TIMEOUT } = require("dns"); const imageUtil = require("../util/imageUtil"); const rateLimiterMessages = new RateLimiterMemory( { points: 5, // 5 points duration: 1, // per second }); module.exports = function async(Db, DbAdmin, Room, io) { const verifyToken = (req, res, next) => { const authHeader = req.headers.authorization; if (authHeader) { const token = authHeader.split(' ')[1]; jwt.verify(token, secretKey, (err, decoded) => { if (err) { res.sendStatus(403); } else { req.user = decoded; next(); } }); } else { res.sendStatus(401); } }; routes.post('/updateRole', verifyToken, async (req, res) => { try { const userRole = req.user.role; const checkPermit = await DbAdmin.checkPermit(userRole, 'modify_user_role') if (checkPermit.modify_user_role != 0) { const data = await DbAdmin.updateRole(req.body); if (data) { res.send(data.message); } } else { res.send('Vous ne possédez pas les droits pour cette action.'); } } catch (err) { console.log(err); res.status(500).send('Une erreur est survenue lors de la mise à jour de role.'); } }); routes.post('/updateUser', verifyToken, async (req, res) => { try { const userRole = req.user.role; const checkPermit = await DbAdmin.checkPermit(userRole, 'modify_user_list') console.log(checkPermit.modify_user_list) if (checkPermit.modify_user_list != 0) { const data = await DbAdmin.updateUser(req.body); if (data) { res.send(data.message); } } else { res.send('Vous ne possédez pas les droits pour cette action.'); } } catch (err) { console.log(err); res.status(500).send('Une erreur est survenue lors de la mise à jour de role.'); } }); routes.post('/updateRoom', verifyToken, async (req, res) => { try { if (req.body.data.upload) { req.body.data.logo = req.body.data.upload[0].uid } const userRole = req.user.role; const checkPermit = await DbAdmin.checkPermit(userRole, 'modify_room_list') if (checkPermit.modify_room_list != 0) { const data = await DbAdmin.updateRoom(req.body); if (data) { res.send(data.message); } } else { res.send('Vous ne possédez pas les droits pour cette action.'); } } catch (err) { console.log(err); res.status(500).send('Une erreur est survenue lors de la mise à jour de role.'); } }); routes.post('/adminAddUserApi', verifyToken, async (req, res) => { try { const userRole = req.user.role; const checkPermit = await DbAdmin.checkPermit(userRole, 'modify_user_list') if (checkPermit.modify_user_list != 0) { const data = await DbAdmin.AddUser(req.body); if (data) { res.send(data.message); } } else { res.send('Vous ne possédez pas les droits pour cette action.'); } } catch (err) { console.log(err); res.status(500).send('Une erreur est survenue lors de l"ajout de l"utilisateur.'); } }); routes.post('/adminAddRoleApi', verifyToken, async (req, res) => { try { const userRole = req.user.role; const checkPermit = await DbAdmin.checkPermit(userRole, 'modify_role_list') if (checkPermit.modify_role_list != 0) { const data = await DbAdmin.Addrole(req.body); if (data) { res.send(data.message); } } else { res.send('Vous ne possédez pas les droits pour cette action.'); } } catch (err) { console.log(err); res.status(500).send('Une erreur est survenue lors de l"ajout du role.'); } }); routes.post('/adminAddRoomApi', verifyToken, upload.single('upload'), async (req, res) => { try { let imageName = 'test' if (req.file) { if (req.file.size > maxSize) { return res.send('Le fichier dépasse la taille maximale autorisée.'); } } const userRole = req.user.role; const checkPermit = await DbAdmin.checkPermit(userRole, 'modify_room_list') if (checkPermit.modify_room_list != 0) { const ext = imageUtil.CheckImageExtension(req.file.mimetype) fs.rename(req.file.path, `public/uploads/${req.file.fieldname}.${ext}`, async () => { console.log('File Renamed!'); }) const data = await DbAdmin.AddRoom(req.body, imageName); if (data) { res.send(data.message); } } else { res.send('Vous ne possédez pas les droits pour cette action.'); } } catch (err) { console.log(err); res.status(500).send('Une erreur est survenue lors de l"ajout de l"utilisateur.'); } }); return routes; }