|
@@ -5,17 +5,24 @@ const config = require("../config.js")
|
|
|
,FacebookOAuth = require("../src/facebookOAuth.js").FacebookOAuth
|
|
,FacebookOAuth = require("../src/facebookOAuth.js").FacebookOAuth
|
|
|
,slackManager = require("../src/slackManager.js").SlackManager
|
|
,slackManager = require("../src/slackManager.js").SlackManager
|
|
|
,accountManager = require("../src/accounts.js").accountManager
|
|
,accountManager = require("../src/accounts.js").accountManager
|
|
|
|
|
+ ,sessionManager = require("../src/session.js").SessionManager
|
|
|
,templates = require('./_templates.js');
|
|
,templates = require('./_templates.js');
|
|
|
|
|
|
|
|
function checkTokens(service, req, cb) {
|
|
function checkTokens(service, req, cb) {
|
|
|
switch (service) {
|
|
switch (service) {
|
|
|
case "slack":
|
|
case "slack":
|
|
|
if (req.urlObj.queryTokens.code) {
|
|
if (req.urlObj.queryTokens.code) {
|
|
|
- Slack.getUserMail(req.urlObj.queryTokens.code, config.login.slack.redirect_uri, (email) => {
|
|
|
|
|
- if (email) {
|
|
|
|
|
- console.log("from slack email " +email);
|
|
|
|
|
- var account = accountManager.fromSlackEmailAuth(email);
|
|
|
|
|
- cb(account);
|
|
|
|
|
|
|
+ Slack.getUserId(req.urlObj.queryTokens.code, config.login.slack.redirect_uri, (id) => {
|
|
|
|
|
+ if (id) {
|
|
|
|
|
+ accountManager.fromSlackIdAuth(id, (account) => {
|
|
|
|
|
+ if (account) {
|
|
|
|
|
+ cb(account);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ var account = accountManager.createAccount();
|
|
|
|
|
+ account.authSlackUserEmailAndTeam = id;
|
|
|
|
|
+ accountManager.save(account, () => { cb(account); });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
cb(null);
|
|
cb(null);
|
|
|
}
|
|
}
|
|
@@ -29,9 +36,16 @@ function checkTokens(service, req, cb) {
|
|
|
if (req.urlObj.queryTokens.code) {
|
|
if (req.urlObj.queryTokens.code) {
|
|
|
GoogleOAuth.getUserId(req.urlObj.queryTokens.code, (id) => {
|
|
GoogleOAuth.getUserId(req.urlObj.queryTokens.code, (id) => {
|
|
|
if (id) {
|
|
if (id) {
|
|
|
- console.log("from google id " +id);
|
|
|
|
|
- var account = accountManager.fromGoogleIdAuth(id);
|
|
|
|
|
- cb(account);
|
|
|
|
|
|
|
+ accountManager.fromGoogleIdAuth(id, (account) => {
|
|
|
|
|
+ if (account) {
|
|
|
|
|
+ cb(account);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ var account = accountManager.createAccount();
|
|
|
|
|
+ account.authGoogleUserId = id;
|
|
|
|
|
+ accountManager.save(account);
|
|
|
|
|
+ accountManager.save(account, () => { cb(account); });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
cb(null);
|
|
cb(null);
|
|
|
}
|
|
}
|
|
@@ -45,9 +59,15 @@ function checkTokens(service, req, cb) {
|
|
|
if (req.urlObj.queryTokens.code) {
|
|
if (req.urlObj.queryTokens.code) {
|
|
|
FacebookOAuth.getUserId(req.urlObj.queryTokens.code[0], (id) => {
|
|
FacebookOAuth.getUserId(req.urlObj.queryTokens.code[0], (id) => {
|
|
|
if (id) {
|
|
if (id) {
|
|
|
- console.log("from facebook id " +id);
|
|
|
|
|
- var account = accountManager.fromFacebookIdAuth(id);
|
|
|
|
|
- cb(account);
|
|
|
|
|
|
|
+ accountManager.fromFacebookIdAuth(id, (account) => {
|
|
|
|
|
+ if (account) {
|
|
|
|
|
+ cb(account);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ var account = accountManager.createAccount();
|
|
|
|
|
+ account.authFacebookUserId = id;
|
|
|
|
|
+ accountManager.save(account, () => { cb(account); });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
cb(null);
|
|
cb(null);
|
|
|
}
|
|
}
|
|
@@ -104,7 +124,7 @@ module.exports.exec = function(req, res) {
|
|
|
if (account) {
|
|
if (account) {
|
|
|
req.account = account;
|
|
req.account = account;
|
|
|
req.session = sessionManager.lazyForRequest(req);
|
|
req.session = sessionManager.lazyForRequest(req);
|
|
|
- req.session.setSlackToken(req.reqT, token);
|
|
|
|
|
|
|
+ req.session.setAccountId(req.reqT, account.id);
|
|
|
res.writeHeader("302", {
|
|
res.writeHeader("302", {
|
|
|
Location: config.rootUrl
|
|
Location: config.rootUrl
|
|
|
,"Set-Cookie": "sessID="+req.session.sessId
|
|
,"Set-Cookie": "sessID="+req.session.sessId
|