This repository was archived by the owner on Jul 6, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapplication.js
More file actions
109 lines (87 loc) · 3.37 KB
/
Copy pathapplication.js
File metadata and controls
109 lines (87 loc) · 3.37 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
var checks = require(__dirname + '/../middleware/checks')
, Event = require(__dirname + '/../models/event')
, Member = require(__dirname + '/../models/member')
, header_parser = require(__dirname + '/../middleware/header-parser')
, settings = require(__dirname + '/../config/settings')
, moment = require('moment')
exports.join = function(req, res, next) {
var fleet = (req.session.isLinked) ? req.session.fleet : header_parser(req);
Member.prepare(req.params.fleetKey, fleet, function(member) {
req.session.fleetKey = member.fleetKey;
req.session.memberKey = member.key;
req.session.lastPollTs = moment().unix() - settings.minPollInterval;
req.session.lastStatusTs = moment().unix() - settings.minPollInterval;
req.session.fleet = fleet;
if (req.session.isLinked === true) {
req.session.fleet.trusted = 'Yes';
return res.redirect('/' + req.params.fleetKey);
}
member.saveQ()
.then(function(member) {
if (!member) { throw 'Unable to join member to fleet.'; }
Event.prepare('memberJoined', fleet.key, member.toObject()).saveQ();
return res.redirect('/' + req.params.fleetKey);
})
.catch(function(error) {
req.flash('error', 'Error joining fleet: ' + error.text);
return res.redirect('/');
})
.done();
});
};
exports.index = function(req, res, next) {
res.render('main', { user: req.user, is_trusted: checks.is_trusted(req) });
};
exports.login = function(req, res, next) {
if (req.isAuthenticated()) return res.redirect('/link');
res.render('login', { user: req.user, is_trusted: checks.is_trusted(req), error: req.flash('error') });
};
exports.authenticate = function(req, res, next) {
res.redirect('/link');
};
exports.logout = function(req, res, next) {
req.logout();
res.redirect('/');
};
exports.link = function(req, res, next) {
res.render('link', { user: req.user, linked: req.session.fleet, success: req.flash('success'), error: req.flash('error') });
};
exports.link_pilot = function(req, res, next) {
var member_key = req.body.key;
Member.findOne({key: member_key}, '-_id -__v')
.lean()
.cache(true, 5)
.execQ()
.then(function(member) {
if (!member) { throw 'Invalid Pilot Key \'' + member_key + '\''; }
req.flash('success', 'Linking pilot ' + member.characterName);
req.session.fleetKey = member.fleetKey;
req.session.memberKey = member.key;
req.session.lastPollTs = moment().unix() - settings.minPollInterval;
req.session.lastStatusTs = moment().unix() - settings.minPollInterval;
req.session.fleet = member;
req.session.fleet.trusted = 'Yes';
req.session.isLinked = true;
})
.catch(function(error) {
req.flash('error', error);
})
.done(function() {
return res.redirect('/link');
});
};
exports.unlink = function(req, res, next) {
if (req.session.isLinked) {
req.flash('error', 'Unlinking pilot ' + req.session.fleet.characterName);
delete req.session.fleetKey;
delete req.session.memberKey;
delete req.session.isLinked;
delete req.session.fleet;
delete req.session.lastPollTs;
delete req.session.lastStatusTs;
}
return res.redirect('/link');
};
exports.overview = function(req, res, next) {
res.render('overview', { user: req.user, success: req.flash('success'), error: req.flash('error') });
};