fix undefined username and remove old function

fix many bugs and undefined
fix linting errors
This commit is contained in:
Berkeley Martinez
2015-10-01 20:55:55 -07:00
parent d8fd63fb87
commit 8a1a7f238d

View File

@ -1,12 +1,12 @@
import _ from 'lodash'; import dedent from 'dedent';
import async from 'async';
import moment from 'moment'; import moment from 'moment';
import debugFactory from 'debug'; import debugFactory from 'debug';
import { ifNoUser401 } from '../utils/middleware'; import { ifNoUser401, ifNoUserRedirectTo } from '../utils/middleware';
const debug = debugFactory('freecc:boot:user'); const debug = debugFactory('freecc:boot:user');
const daysBetween = 1.5; const daysBetween = 1.5;
const sendNonUserToMap = ifNoUserRedirectTo('/map');
function calcCurrentStreak(cals) { function calcCurrentStreak(cals) {
const revCals = cals.concat([Date.now()]).slice().reverse(); const revCals = cals.concat([Date.now()]).slice().reverse();
@ -52,7 +52,7 @@ function dayDiff([head, tail]) {
module.exports = function(app) { module.exports = function(app) {
var router = app.loopback.Router(); var router = app.loopback.Router();
var User = app.models.User; var User = app.models.User;
var Story = app.models.Story; // var Story = app.models.Story;
router.get('/login', function(req, res) { router.get('/login', function(req, res) {
res.redirect(301, '/signin'); res.redirect(301, '/signin');
@ -68,14 +68,21 @@ module.exports = function(app) {
router.post('/reset-password', postReset); router.post('/reset-password', postReset);
router.get('/email-signup', getEmailSignup); router.get('/email-signup', getEmailSignup);
router.get('/email-signin', getEmailSignin); router.get('/email-signin', getEmailSignin);
router.get('/toggle-lockdown-mode', toggleLockdownMode); router.get(
'/toggle-lockdown-mode',
sendNonUserToMap,
toggleLockdownMode
);
router.post( router.post(
'/account/delete', '/account/delete',
ifNoUser401, ifNoUser401,
postDeleteAccount postDeleteAccount
); );
router.get('/account/unlink/:provider', getOauthUnlink); router.get(
router.get('/account', getAccount); '/account',
sendNonUserToMap,
getAccount
);
router.get('/vote1', vote1); router.get('/vote1', vote1);
router.get('/vote2', vote2); router.get('/vote2', vote2);
// Ensure this is the last route! // Ensure this is the last route!
@ -116,7 +123,8 @@ module.exports = function(app) {
} }
function getAccount(req, res) { function getAccount(req, res) {
return res.redirect('/' + user.username); const { username } = req.user;
return res.redirect('/' + username);
} }
function returnUser(req, res, next) { function returnUser(req, res, next) {
@ -196,33 +204,35 @@ module.exports = function(app) {
); );
} }
function toggleLockdownMode(req, res, next) {
function toggleLockdownMode(req, res) {
if (req.user) {
if (req.user.lockdownMode === true) { if (req.user.lockdownMode === true) {
req.user.lockdownMode = false; req.user.lockdownMode = false;
req.user.save(function (err) { return req.user.save(function(err) {
if (err) { if (err) { return next(err); }
return next(err);
} req.flash('success', {
req.flash('success', {msg: 'Other people can now view all your challenge solutions. You can change this back at any time in the "Manage My Account" section at the bottom of this page.'}); msg: dedent`
res.redirect(req.user.username); Other people can now view all your challenge solutions.
You can change this back at any time in the "Manage My Account"
section at the bottom of this page.
`
}); });
} else { res.redirect('/' + req.user.username);
});
}
req.user.lockdownMode = true; req.user.lockdownMode = true;
req.user.save(function (err) { return req.user.save(function(err) {
if (err) { if (err) { return next(err); }
return next(err);
} req.flash('success', {
req.flash('success', {msg: 'All your challenge solutions are now hidden from other people. You can change this back at any time in the "Manage My Account" section at the bottom of this page.'}); msg: dedent`
res.redirect(req.user.username); All your challenge solutions are now hidden from other people.
You can change this back at any time in the "Manage My Account"
section at the bottom of this page.
`
});
res.redirect('/' + req.user.username);
}); });
}
} else {
req.flash('error', {msg: 'You must be signed in to change your account settings.'});
res.redirect('/');
}
} }
function postDeleteAccount(req, res, next) { function postDeleteAccount(req, res, next) {
@ -234,25 +244,6 @@ module.exports = function(app) {
}); });
} }
function getOauthUnlink(req, res, next) {
var provider = req.params.provider;
User.findById(req.user.id, function(err, user) {
if (err) { return next(err); }
user[provider] = null;
user.tokens =
_.reject(user.tokens, function(token) {
return token.kind === provider;
});
user.save(function(err) {
if (err) { return next(err); }
req.flash('info', { msg: provider + ' account has been unlinked.' });
res.redirect('/account');
});
});
}
function getReset(req, res) { function getReset(req, res) {
if (!req.accessToken) { if (!req.accessToken) {
req.flash('errors', { msg: 'access token invalid' }); req.flash('errors', { msg: 'access token invalid' });
@ -325,6 +316,7 @@ module.exports = function(app) {
}); });
} }
/*
function updateUserStoryPictures(userId, picture, username, cb) { function updateUserStoryPictures(userId, picture, username, cb) {
Story.find({ 'author.userId': userId }, function(err, stories) { Story.find({ 'author.userId': userId }, function(err, stories) {
if (err) { return cb(err); } if (err) { return cb(err); }
@ -345,31 +337,30 @@ module.exports = function(app) {
}); });
}); });
} }
*/
function vote1(req, res) { function vote1(req, res, next) {
if (req.user) { if (req.user) {
req.user.tshirtVote = 1; req.user.tshirtVote = 1;
req.user.save(function (err) { req.user.save(function(err) {
if (err) { if (err) { return next(err); }
return next(err);
} req.flash('success', { msg: 'Thanks for voting!' });
req.flash('success', {msg: 'Thanks for voting!'});
res.redirect('/map'); res.redirect('/map');
}); });
} else { } else {
req.flash('error', {msg: 'You must be signed in to vote.'}); req.flash('error', { msg: 'You must be signed in to vote.' });
res.redirect('/map'); res.redirect('/map');
} }
} }
function vote2(req, res) { function vote2(req, res, next) {
if (req.user) { if (req.user) {
req.user.tshirtVote = 2; req.user.tshirtVote = 2;
req.user.save(function (err) { req.user.save(function(err) {
if (err) { if (err) { return next(err); }
return next(err);
} req.flash('success', { msg: 'Thanks for voting!' });
req.flash('success', {msg: 'Thanks for voting!'});
res.redirect('/map'); res.redirect('/map');
}); });
} else { } else {