From 17e849792c97f459cd69b9ccbd34c272b5df1b52 Mon Sep 17 00:00:00 2001 From: James Allen Date: Wed, 9 Aug 2017 11:50:05 +0200 Subject: [PATCH] Pull out logic into module --- .../OverleafAuthenticationController.coffee | 33 ------------------- .../OverleafAuthenticationManager.coffee | 0 .../app/coffee/infrastructure/Server.coffee | 25 -------------- services/web/app/coffee/models/User.coffee | 1 + services/web/app/coffee/router.coffee | 4 --- 5 files changed, 1 insertion(+), 62 deletions(-) delete mode 100644 services/web/app/coffee/Features/Authentication/OverleafAuthenticationController.coffee delete mode 100644 services/web/app/coffee/Features/Authentication/OverleafAuthenticationManager.coffee diff --git a/services/web/app/coffee/Features/Authentication/OverleafAuthenticationController.coffee b/services/web/app/coffee/Features/Authentication/OverleafAuthenticationController.coffee deleted file mode 100644 index 8cc11c65c0..0000000000 --- a/services/web/app/coffee/Features/Authentication/OverleafAuthenticationController.coffee +++ /dev/null @@ -1,33 +0,0 @@ -logger = require("logger-sharelatex") -settings = require "settings-sharelatex" -{User} = require "../../models/User" -UserCreator = require "../User/UserCreator" -AuthenticationController = require "./AuthenticationController" - -passport = require "passport" - -module.exports = OverleafAuthenticationController = - passportLogin: passport.authenticate("oauth2") - - passportCallback: passport.authenticate("oauth2") - - afterPassportLogin: (req, res, next) -> - logger.log {user: req.user}, "successful log in!" - AuthenticationController.afterLoginSessionSetup req, req.user, (err) -> - return next(err) if err? - res.redirect("/") - - doPassportLogin: (accessToken, refreshToken, profile, cb) -> - logger.log {accessToken, refreshToken, profile}, "authing user via overleaf oauth" - OverleafAuthenticationController._findOrCreateUser profile, (err, user) -> - return cb(err) if err? - user.overleaf.accessToken = accessToken - user.save (err) -> - return cb(err) if err? - return cb(null, user) - - _findOrCreateUser: (profile, cb) -> - User.findOne { "overleaf.id": profile.id }, (err, user) -> - return cb(err) if err? - return cb(null, user) if user? - UserCreator.createNewUser { overleaf: { id: profile.id }, email: profile.email }, cb diff --git a/services/web/app/coffee/Features/Authentication/OverleafAuthenticationManager.coffee b/services/web/app/coffee/Features/Authentication/OverleafAuthenticationManager.coffee deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/services/web/app/coffee/infrastructure/Server.coffee b/services/web/app/coffee/infrastructure/Server.coffee index f159523379..e82f8c5215 100644 --- a/services/web/app/coffee/infrastructure/Server.coffee +++ b/services/web/app/coffee/infrastructure/Server.coffee @@ -25,7 +25,6 @@ sessionStore = new RedisStore(client:sessionsRedisClient) passport = require('passport') LocalStrategy = require('passport-local').Strategy -OAuth2Strategy = require('passport-oauth2').Strategy Mongoose = require("./Mongoose") @@ -39,7 +38,6 @@ Modules = require "./Modules" ErrorController = require "../Features/Errors/ErrorController" UserSessionsManager = require "../Features/User/UserSessionsManager" AuthenticationController = require "../Features/Authentication/AuthenticationController" -OverleafAuthenticationController = require "../Features/Authentication/OverleafAuthenticationController" metrics.event_loop?.monitor(logger) @@ -106,29 +104,6 @@ passport.use(new LocalStrategy( passport.serializeUser(AuthenticationController.serializeUser) passport.deserializeUser(AuthenticationController.deserializeUser) -overleafOAuth2Strategy = new OAuth2Strategy( - { - authorizationURL: 'http://localhost:5000/oauth/authorize', - tokenURL: 'http://localhost:5000/oauth/token', - clientID: "0479498de20727971b5f40f86dc558264fe7a5021ae74c3e0e03f7dccfeaf0ab", - clientSecret: "ecb446d53bb9a1555fecd74b5e3faabefe1345ca6a9228da0c1fbdac2338c502", - callbackURL: "http://www.sharelatex.dev:3000/overleaf/callback" - }, - OverleafAuthenticationController.doPassportLogin -) -overleafOAuth2Strategy.userProfile = (accessToken, cb) -> - require("request").get { - url: "http://localhost:5000/api/v1/sharelatex/profile" - json: true - headers: - Authorization: "Bearer #{accessToken}" - }, (err, response, body) -> - console.log {err, response, body} - return cb(err) if err? - cb(null, body) -passport.use(overleafOAuth2Strategy) - - Modules.hooks.fire 'passportSetup', passport, (err) -> if err? logger.err {err}, "error setting up passport in modules" diff --git a/services/web/app/coffee/models/User.coffee b/services/web/app/coffee/models/User.coffee index b5de12919c..4dfea8b9cf 100644 --- a/services/web/app/coffee/models/User.coffee +++ b/services/web/app/coffee/models/User.coffee @@ -62,6 +62,7 @@ UserSchema = new Schema overleaf: id: { type: Number } accessToken: { type: String } + refreshToken: { type: String } conn = mongoose.createConnection(Settings.mongo.url, server: poolSize: 10) diff --git a/services/web/app/coffee/router.coffee b/services/web/app/coffee/router.coffee index e3a90d3431..2ebde53748 100644 --- a/services/web/app/coffee/router.coffee +++ b/services/web/app/coffee/router.coffee @@ -12,7 +12,6 @@ UploadsRouter = require './Features/Uploads/UploadsRouter' metrics = require('metrics-sharelatex') ReferalController = require('./Features/Referal/ReferalController') AuthenticationController = require('./Features/Authentication/AuthenticationController') -OverleafAuthenticationController = require('./Features/Authentication/OverleafAuthenticationController') TagsController = require("./Features/Tags/TagsController") NotificationsController = require("./Features/Notifications/NotificationsController") CollaboratorsRouter = require('./Features/Collaborators/CollaboratorsRouter') @@ -59,9 +58,6 @@ module.exports = class Router AuthenticationController.addEndpointToLoginWhitelist '/login' webRouter.post '/login', AuthenticationController.passportLogin - - webRouter.get '/overleaf/login', OverleafAuthenticationController.passportLogin - webRouter.get '/overleaf/callback', OverleafAuthenticationController.passportCallback, OverleafAuthenticationController.afterPassportLogin webRouter.get '/logout', UserController.logout webRouter.get '/restricted', AuthorizationMiddlewear.restricted