aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-12-03 20:14:21 -0500
committerSam Wilkins <samwilkins333@gmail.com>2019-12-03 20:14:21 -0500
commit018514e53f3d079780f5a9e559e75820af756975 (patch)
treed252685937047b66af40043c19ec3c087aa5ca08 /src
parent213962406327cc2f7267064f3016fabf0fd16872 (diff)
fixed routing
Diffstat (limited to 'src')
-rw-r--r--src/server/Initialization.ts6
-rw-r--r--src/server/RouteManager.ts5
-rw-r--r--src/server/authentication/config/passport.ts21
-rw-r--r--src/server/index.ts11
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() {