|
|
@@ -6,11 +6,12 @@ const http = require("http")
|
|
|
,config = require("../config.js")
|
|
|
,sessionManager = require("./session.js").SessionManager
|
|
|
,MultiChatManager = require("./multichatManager.js").MultiChatManager
|
|
|
+ ,AccountManager = require("./accounts.js").accountManager
|
|
|
,Slack = require("./slack.js").Slack
|
|
|
,slackManager = require("./slackManager.js").SlackManager
|
|
|
,FaviconWriter = require("./faviconWriter.js").FaviconWriter;
|
|
|
|
|
|
-function Server(port) {
|
|
|
+function Server() {
|
|
|
var ctx = this;
|
|
|
|
|
|
this.httpServ = http.createServer(function(req, res) {
|
|
|
@@ -20,7 +21,7 @@ function Server(port) {
|
|
|
});
|
|
|
ctx.onRequest(req, res);
|
|
|
});
|
|
|
- this.httpServ.listen(port, ctx.onListen);
|
|
|
+ this.httpServ.listen(config.port, ctx.onListen);
|
|
|
}
|
|
|
|
|
|
Server.parseCookies = function(req) {
|
|
|
@@ -93,13 +94,7 @@ function recursiveGet(url, cb, redirectLoop) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
-Server.prototype.onRequest = function(req, res) {
|
|
|
- req.reqT = Date.now();
|
|
|
- req.cookies = Server.parseCookies(req);
|
|
|
- req.session = sessionManager.forRequest(req);
|
|
|
- //TODO req.account = req.session ? AccountManager.forId(req.session.accountId);
|
|
|
- req.urlObj = new Url(req.url);
|
|
|
-
|
|
|
+Server.prototype.execRequest = function(req, res) {
|
|
|
if (req.urlObj.isTemplate() && req.urlObj.template.needLogin === false) {
|
|
|
return this.execTemplate(req.urlObj.template, req, res);
|
|
|
} else if (req.urlObj.isPublic()) {
|
|
|
@@ -110,7 +105,7 @@ Server.prototype.onRequest = function(req, res) {
|
|
|
req.urlObj.getReadStream().pipe(res, { end: true });
|
|
|
sessionManager.saveSession(req.session);
|
|
|
return; // async pipe will close when finished
|
|
|
- } else if (!req.session) {
|
|
|
+ } else if (!req.account) {
|
|
|
res.writeHeader("302", { Location: "login" });
|
|
|
res.end();
|
|
|
} else if (req.urlObj.isTemplate()) {
|
|
|
@@ -386,5 +381,22 @@ Server.prototype.onRequest = function(req, res) {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+Server.prototype.onRequest = function(req, res) {
|
|
|
+ req.reqT = Date.now();
|
|
|
+ req.cookies = Server.parseCookies(req);
|
|
|
+ req.session = sessionManager.forRequest(req);
|
|
|
+ req.urlObj = new Url(req.url);
|
|
|
+ req.account = null;
|
|
|
+ if (req.session) {
|
|
|
+ var self = this;
|
|
|
+ AccountManager.fromId(req.session.accountId, (acc) => {
|
|
|
+ req.account = acc;
|
|
|
+ self.execRequest(req, res);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.execRequest(req, res);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
module.exports.HttpServ = Server;
|
|
|
|