-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathapp.js
More file actions
74 lines (61 loc) · 2.38 KB
/
app.js
File metadata and controls
74 lines (61 loc) · 2.38 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
/**
* Module dependencies.
*/
var express = require('express'),
http = require('http'),
app = express(),
cookie = require('cookie'),
connect = require('connect');
require('./config')(app);
utils = require(__dirname + '/lib/utils');
_ = require('underscore');
auth = require(__dirname + '/lib/authentication');
//process.on('uncaughtException', function (err) {
//console.error(err);
//console.log("Node NOT Exiting...");
//});
var server = app.listen(app.get('port'), function() {
console.log("Express server listening on port " + app.get('port'));
});
io = require('socket.io').listen(server);
io.set('authorization', function (handshakeData, accept) {
if (handshakeData.headers.cookie) {
handshakeData.cookie = cookie.parse(handshakeData.headers.cookie);
handshakeData.sessionID = connect.utils.parseSignedCookie(handshakeData.cookie['express.sid'], config.app_secret);
if (handshakeData.cookie['express.sid'] == handshakeData.sessionID) {
return accept('Cookie is invalid.', false);
}
} else {
return accept('No cookie transmitted.', false);
}
accept(null, true);
});
// Needed for Heroku, which does not yet support websockets,
// must use long polling.
io.set("transports", ["xhr-polling"]);
io.set("polling duration", 10);
app.configure('production', function(){
io.set('log level', 1); // reduce logging
});
// Load models
var models = require(__dirname + '/app/models');
// Load controllers, passing `app` context
var controllers = require(__dirname + '/app/controllers')(app);
// Load widgets
var active_widgets = ['cashboard_global_billable_time', 'cashboard_global_receivable', 'cashboard_uninvoiced_amounts', 'errbit_unresolved_exceptions', 'redmine_open_issues', 'github_open_issues', 'github_open_cards', 'aremysitesup_instant_status', 'semaphore_build_status', 'redmine_documents'];
widgets = require(__dirname + '/app/widgets')(active_widgets);
app.get('/widgets/:widget', function(req, res) {
var widget = req.params.widget;
res.sendfile('./app/widgets/' + widget + '/' + widgets[widget].update);
});
module.exports.commandResetPassword = function(email, password) {
var User = mongoose.model('User');
User.findOne({"email": email}, function(err, user) {
console.log(user);
user.hashedPassword = passwordHash.generate(password);
user.save(function(err, savedUser) {
console.log("Saved!");
return true;
});
});
};