first commit
This commit is contained in:
100
dockers/quotas/html/express_webapp/routes/usersAdmin.js
Normal file
100
dockers/quotas/html/express_webapp/routes/usersAdmin.js
Normal file
@ -0,0 +1,100 @@
|
||||
|
||||
var express = require('express');
|
||||
var router = express.Router();
|
||||
const {Sequelize} = require("sequelize");
|
||||
|
||||
//___________________________________________________________________________________
|
||||
// Ce petit script permet de connaitre la taille memoire d'un utilisateur
|
||||
|
||||
// Auteur : Nathaniel Guiquerro Lauryne Gaultier
|
||||
//
|
||||
// GET : Quand on charge la page on tombe sur un formulaire
|
||||
// il faut alors renseigner le email et un nombre entre 1 et 30
|
||||
// ex : contact1@kaz.local et 25
|
||||
// POST: SI l'email existe ou le nombre n'est pas correcte alors on va rechercher si
|
||||
// il existe les quotas avec le script ../../quotas/UtilisateurTailleGlobal.sh
|
||||
// SINON on renvoie l'erreur du script ../../quotas/UtilisateurTailleGlobal.sh
|
||||
//___________________________________________________________________________________
|
||||
|
||||
//fonction de convertiseur d'uniter automatique
|
||||
function formatBytes(bytes, decimals = 2) {
|
||||
if (bytes === 0) return '0 Bytes';
|
||||
|
||||
const k = 1024;
|
||||
const dm = decimals < 0 ? 0 : decimals;
|
||||
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
||||
|
||||
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||
|
||||
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
|
||||
}
|
||||
|
||||
//fonction qui converti le timestamp en un objet Date
|
||||
function timeConverter(UNIX_timestamp){
|
||||
var date = new Date(UNIX_timestamp);
|
||||
|
||||
return (date.getDate()+
|
||||
"/"+(date.getMonth()+1)+
|
||||
"/"+date.getFullYear()+
|
||||
" "+date.getHours()+
|
||||
":"+date.getMinutes()+
|
||||
":"+date.getSeconds());
|
||||
}
|
||||
|
||||
/*
|
||||
GET users listing.
|
||||
Cette page affiche le formulaire avec l'email
|
||||
*/
|
||||
router.get('/', function(req, res, next) {
|
||||
res.render('users');
|
||||
});
|
||||
|
||||
/*
|
||||
ICI ce trouve le traitement du mail renseignée vvia le formulaire
|
||||
*/
|
||||
router.post('/', function(req, res, next) {
|
||||
myArray = req.body.email;
|
||||
var splits = myArray.split("@");
|
||||
|
||||
email=splits[0];
|
||||
|
||||
// XXX Felix
|
||||
// const sequelize = new Sequelize("quotas","root","tartelette",{
|
||||
// host: "db",
|
||||
// dialect:"mariadb"
|
||||
// });
|
||||
|
||||
(async ()=>{
|
||||
try{
|
||||
await sequelize.authenticate();
|
||||
//connecté
|
||||
const query ="SELECT * FROM Utilisateur ORDER BY date desc LIMIT 1;";
|
||||
sequelize.query(query).then(([results, metadata]) => {
|
||||
var i=0;
|
||||
var trouve =false;
|
||||
while(i<results.length && !trouve ){
|
||||
if(results[i].utilisateur==email){
|
||||
var R = {"Postfix: ":formatBytes(results[i].postfix),
|
||||
"NextCloud: ":formatBytes(results[i].nextcloud),
|
||||
"Total: ":formatBytes(results[i].total),
|
||||
"Date du prélevement: ":timeConverter(results[i].date)};
|
||||
res.render('usersfound',{data:R});
|
||||
trouve=true;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
if(!trouve){
|
||||
res.render('usersError');
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
} catch (error){
|
||||
//pas connecté
|
||||
console.log(error);
|
||||
}
|
||||
})();
|
||||
});
|
||||
|
||||
module.exports = router;
|
Reference in New Issue
Block a user