aboutsummaryrefslogtreecommitdiff
path: root/src/server/authentication/controllers/user_controller.ts
diff options
context:
space:
mode:
authorSam Wilkins <abdullah_ahmed@brown.edu>2019-03-12 16:28:28 -0400
committerSam Wilkins <abdullah_ahmed@brown.edu>2019-03-12 16:28:28 -0400
commit884647be52cf6b3c7e3132dce7d9133875d9a9cd (patch)
treeaf5041ec3ec76fb45944c2a81e3716b3a866c3dd /src/server/authentication/controllers/user_controller.ts
parentd2383acb7123c0c032822745171f7df8baa77518 (diff)
parent91338b2cea4f006e5813145009cb471b17679cd7 (diff)
Merged with master, refactor with route store
Diffstat (limited to 'src/server/authentication/controllers/user_controller.ts')
-rw-r--r--src/server/authentication/controllers/user_controller.ts47
1 files changed, 16 insertions, 31 deletions
diff --git a/src/server/authentication/controllers/user_controller.ts b/src/server/authentication/controllers/user_controller.ts
index 7b89b5152..2cef958e8 100644
--- a/src/server/authentication/controllers/user_controller.ts
+++ b/src/server/authentication/controllers/user_controller.ts
@@ -10,18 +10,7 @@ import * as pug from 'pug';
import * as async from 'async';
import * as nodemailer from 'nodemailer';
import c = require("crypto");
-
-
-/**
- * GET /
- * Whenever a user navigates to the root of Dash
- * (doesn't specify a sub-route), redirect to login.
- * If the user is already signed in, it will effectively
- * automatically redirect them to /home instead
- */
-export let getEntry = (req: Request, res: Response) => {
- res.redirect("/login");
-}
+import { RouteStore } from "../../RouteStore";
/**
* GET /signup
@@ -31,7 +20,7 @@ export let getEntry = (req: Request, res: Response) => {
export let getSignup = (req: Request, res: Response) => {
if (req.user) {
let user = req.user;
- return res.redirect("/home");
+ return res.redirect(RouteStore.home);
}
res.render("signup.pug", {
title: "Sign Up",
@@ -56,7 +45,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
title: "Sign Up",
user: req.user,
});
- return res.redirect("/signup");
+ return res.redirect(RouteStore.signup);
}
const email = req.body.email;
@@ -71,7 +60,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
User.findOne({ email }, (err, existingUser) => {
if (err) { return next(err); }
if (existingUser) {
- return res.redirect("/login");
+ return res.redirect(RouteStore.login);
}
user.save((err) => {
if (err) { return next(err); }
@@ -79,7 +68,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
if (err) {
return next(err);
}
- res.redirect("/home");
+ res.redirect(RouteStore.home);
});
});
});
@@ -93,7 +82,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
*/
export let getLogin = (req: Request, res: Response) => {
if (req.user) {
- return res.redirect("/home");
+ return res.redirect(RouteStore.home);
}
res.render("login.pug", {
title: "Log In",
@@ -104,7 +93,7 @@ export let getLogin = (req: Request, res: Response) => {
/**
* POST /login
* Sign in using email and password.
- * On failure, redirect to login page
+ * On failure, redirect to signup page
*/
export let postLogin = (req: Request, res: Response, next: NextFunction) => {
req.assert("email", "Email is not valid").isEmail();
@@ -115,17 +104,17 @@ export let postLogin = (req: Request, res: Response, next: NextFunction) => {
if (errors) {
req.flash("errors", "Unable to login at this time. Please try again.");
- return res.redirect("/signup");
+ return res.redirect(RouteStore.signup);
}
passport.authenticate("local", (err: Error, user: DashUserModel, info: IVerifyOptions) => {
if (err) { return next(err); }
if (!user) {
- return res.redirect("/signup");
+ return res.redirect(RouteStore.signup);
}
req.logIn(user, (err) => {
if (err) { return next(err); }
- res.redirect("/home");
+ res.redirect(RouteStore.home);
});
})(req, res, next);
};
@@ -136,16 +125,12 @@ export let postLogin = (req: Request, res: Response, next: NextFunction) => {
* and destroys the user's current session.
*/
export let getLogout = (req: Request, res: Response) => {
- const dashUser: DashUserModel | undefined = req.user;
- if (dashUser) {
- dashUser.update({ $set: { didSelectSessionWorkspace: false } }, () => { })
- }
req.logout();
const sess = req.session;
if (sess) {
sess.destroy((err) => { if (err) { console.log(err); } });
}
- res.redirect('/login');
+ res.redirect(RouteStore.login);
}
export let getForgot = function (req: Request, res: Response) {
@@ -172,7 +157,7 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
User.findOne({ email }, function (err, user: DashUserModel) {
if (!user) {
// NO ACCOUNT WITH SUBMITTED EMAIL
- return res.redirect('/forgot');
+ return res.redirect(RouteStore.forgot);
}
user.passwordResetToken = token;
user.passwordResetExpires = new Date(Date.now() + 3600000); // 1 HOUR
@@ -205,14 +190,14 @@ export let postForgot = function (req: Request, res: Response, next: NextFunctio
}
], function (err) {
if (err) return next(err);
- res.redirect('/forgot');
+ res.redirect(RouteStore.forgot);
})
}
export let getReset = function (req: Request, res: Response) {
User.findOne({ passwordResetToken: req.params.token, passwordResetExpires: { $gt: Date.now() } }, function (err, user: DashUserModel) {
if (!user || err) {
- return res.redirect('/forgot');
+ return res.redirect(RouteStore.forgot);
}
res.render("reset.pug", {
title: "Reset Password",
@@ -242,7 +227,7 @@ export let postReset = function (req: Request, res: Response) {
user.save(function (err) {
if (err) {
- return res.redirect("/login");
+ return res.redirect(RouteStore.login);
}
req.logIn(user, function (err) {
if (err) {
@@ -273,6 +258,6 @@ export let postReset = function (req: Request, res: Response) {
});
}
], function (err) {
- res.redirect('/login');
+ res.redirect(RouteStore.login);
});
} \ No newline at end of file