diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/Initialization.ts | 6 | ||||
-rw-r--r-- | src/server/RouteManager.ts | 5 | ||||
-rw-r--r-- | src/server/authentication/config/passport.ts | 21 | ||||
-rw-r--r-- | src/server/index.ts | 11 |
4 files changed, 13 insertions, 30 deletions
diff --git a/src/server/Initialization.ts b/src/server/Initialization.ts index a41e2fea0..2e87c7a1a 100644 --- a/src/server/Initialization.ts +++ b/src/server/Initialization.ts @@ -39,8 +39,8 @@ export default async function InitializeServer(options: InitializationOptions) { app.use("/images", express.static(publicDirectory)); app.use("*", ({ user, originalUrl }, _res, next) => { - if (!originalUrl.includes("Heartbeat")) { - const userEmail = user && ("email" in user) ? user["email"] : undefined; + if (user && !originalUrl.includes("Heartbeat")) { + const userEmail = user.email; if (userEmail) { timeMap[userEmail] = Date.now(); } @@ -55,6 +55,7 @@ export default async function InitializeServer(options: InitializationOptions) { registerCorsProxy(app); const isRelease = determineEnvironment(); + routeSetter(new RouteManager(app, isRelease)); const server = app.listen(serverPort, () => { @@ -62,6 +63,7 @@ export default async function InitializeServer(options: InitializationOptions) { console.log(); }); addBeforeExitHandler(async () => { await new Promise<Error>(resolve => server.close(resolve)); }); + return isRelease; } diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts index 41204964e..9e84b3687 100644 --- a/src/server/RouteManager.ts +++ b/src/server/RouteManager.ts @@ -67,9 +67,8 @@ export default class RouteManager { console.log('please remove all duplicate routes before continuing'); } if (malformedCount) { - console.log(`please ensure all routes adhere to ^\/[A-Za-z]+(\/\:[A-Za-z]+)*$`); + console.log(`please ensure all routes adhere to ^\/$|^\/[A-Za-z]+(\/\:[A-Za-z]+)*$`); } - console.log(); process.exit(0); } else { console.log(green("all server routes have been successfully registered:")); @@ -128,7 +127,7 @@ export default class RouteManager { } else { route = subscriber.build; } - if (!/^\/[A-Za-z]+(\/\:[A-Za-z]+)*$/g.test(route)) { + if (!/^\/$|^\/[A-Za-z]+(\/\:[A-Za-z]+)*$/g.test(route)) { this.failedRegistrations.push({ reason: RegistrationError.Malformed, route diff --git a/src/server/authentication/config/passport.ts b/src/server/authentication/config/passport.ts index 0ced99b0d..286209b20 100644 --- a/src/server/authentication/config/passport.ts +++ b/src/server/authentication/config/passport.ts @@ -1,8 +1,6 @@ import * as passport from 'passport'; import * as passportLocal from 'passport-local'; -import _ from "lodash"; import { default as User } from '../models/user_model'; -import { Request, Response, NextFunction } from "express"; const LocalStrategy = passportLocal.Strategy; @@ -28,21 +26,4 @@ passport.use(new LocalStrategy({ usernameField: 'email', passReqToCallback: true return done(undefined, user); }); }); -})); - -export let isAuthenticated = (req: Request, res: Response, next: NextFunction) => { - if (req.isAuthenticated()) { - return next(); - } - return res.redirect("/login"); -}; - -export let isAuthorized = (req: Request, res: Response, next: NextFunction) => { - const provider = req.path.split("/").slice(-1)[0]; - - if (_.find(req.user && "tokens" in req.user ? req.user["tokens"] : undefined, { kind: provider })) { - next(); - } else { - res.redirect(`/auth/${provider}`); - } -};
\ No newline at end of file +}));
\ No newline at end of file diff --git a/src/server/index.ts b/src/server/index.ts index cef6ff476..551ce3898 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -69,11 +69,6 @@ function routeSetter({ isRelease, addSupervisedRoute, logRegistrationOutcome }: // initialize API Managers console.log(yellow("\nregistering server routes...")); managers.forEach(manager => manager.register(addSupervisedRoute)); - logRegistrationOutcome(); - - // initialize the web socket (bidirectional communication: if a user changes - // a field on one client, that change must be broadcast to all other clients) - WebSocket.initialize(serverPort, isRelease); /** * Accessing root index redirects to home @@ -103,6 +98,12 @@ function routeSetter({ isRelease, addSupervisedRoute, logRegistrationOutcome }: } } }); + + logRegistrationOutcome(); + + // initialize the web socket (bidirectional communication: if a user changes + // a field on one client, that change must be broadcast to all other clients) + WebSocket.initialize(serverPort, isRelease); } (async function start() { |