-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
113 lines (83 loc) · 4.26 KB
/
Copy pathserver.js
File metadata and controls
113 lines (83 loc) · 4.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
var serv = require("./lib/services");
var security = require("./lib/security");
var cron = require("./lib/cronjobs");
var ldap = require("./lib/ldap");
var schedule = require('node-schedule');
var express = require('express');
var bodyparser = require('body-parser');
var compression = require('compression');
var responsetime = require('response-time');
var config = require("./config.json");
var server = express();
server.enable('trust proxy');
var rule = new schedule.RecurrenceRule();
rule.hour = 5;
rule.minute = 0;
var j = schedule.scheduleJob(rule, function(){
console.log('Declenchement de l\'envoi' + new Date());
cron.notifyNewSchedules();
console.log('Fin de l\'envoi' + new Date());
});
// TODO: regler les occurences avec hour et minute
// TODO: passer de console.log a envoi de mail
function indexHandler(req, res, next) {
if (req.url == "/") {
res.redirect("/gui/index.html");
}
else {
next();
}
}
server.use(security.crossDomainHeaders);
server.use(indexHandler);
server.use(bodyparser());
server.use(compression());
server.use('/api', security.authParser);
server.use('/gui', express.static('gui'));
server.get('/api/newsched', cron.notifyNewSchedules);
// Methodes en acces libre
server.post('/api/login', serv.login);
server.get('/api/status', serv.getStatus);
server.get('/api/expireToken', serv.expireToken);
server.get('/api/setting/pic/:settingid', serv.getSettingPicture);
server.post('/api/secureStore', serv.storeSecureAction);
server.get('/api/securePerform/:actionid', serv.performSecureAction);
server.get('/api/planning', serv.fetchPlanning);
server.get('/api/setting', serv.fetchAllSettings);
// Methodes necessitant un compte standard
server.put('/api/password', security.requireLoggedIn, serv.setPassword);
server.get('/api/admins', security.requireLoggedIn, serv.fetchAdminList);
server.get('/api/relogin', security.requireLoggedIn, serv.relogin);
server.get('/api/resetPassword', security.requireLoggedIn, serv.resetPassword);
server.post('/api/setting', security.requireLoggedIn, serv.createSetting);
server.put('/api/setting/pic/:settingid', security.requireLoggedIn, serv.storeSettingPicture);
server.get('/api/watch', security.requireLoggedIn, serv.fetchMyWatches);
server.put('/api/watch/:idsetting', security.requireLoggedIn, serv.setWatch);
server.del('/api/watch/:idsetting', security.requireLoggedIn, serv.clearWatch);
server.post('/api/schedule', security.requireLoggedIn, serv.createSchedule);
server.del('/api/schedule/:idschedule', security.requireLoggedIn, serv.deleteSchedule);
server.get('/api/comment', security.requireLoggedIn, serv.fetchComments);
server.post('/api/comment', security.requireLoggedIn, serv.createComment);
server.put('/api/comment/:idcomment', security.requireLoggedIn, serv.setComment);
server.del('/api/comment/:idcomment', security.requireLoggedIn, serv.deleteComment);
server.post('/api/game', security.requireLoggedIn, serv.createGame);
server.put('/api/game/:idgame', security.requireLoggedIn, serv.reformGame);
server.get('/api/updates', security.requireLoggedIn, serv.fetchUpdates);
server.get('/api/history', security.requireLoggedIn, serv.fetchHistory);
server.get('/api/history/user/:user', security.requireLoggedIn, serv.fetchUserHistory);
server.get('/api/history/setting/:setting', security.requireLoggedIn, serv.fetchSettingHistory);
// Methodes necessitant un compte admin
server.del('/api/setting/:id', security.requireAdmin, serv.deleteSetting);
server.del('/api/event/:dayid/:timeframe/:setting', security.requireAdmin, serv.cancelEvent);
server.put('/api/event/:id', security.requireAdmin, serv.updateEvent);
server.get('/api/user', security.requireAdmin, serv.fetchAllUsers);
server.post('/api/user', security.requireAdmin, serv.createUser);
server.put('/api/user/:id', security.requireAdmin, serv.updateUser);
server.del('/api/user/:id', security.requireAdmin, serv.deleteUser);
server.get('/api/resetPassword/:user', security.requireAdmin, serv.adminResetPassword);
server.put('/api/setting/:settingid', security.requireAdmin, serv.updateSetting);
server.get('/api/spoof/:user', security.requireAdmin, serv.spoofLogin);
server.del('/api/setting/pic/:settingid', security.requireAdmin, serv.deleteSettingPicture);
server.listen(5000, function() {
console.log('Démarrage de l\'écoute');
});