public profile accessible and start updating form

This commit is contained in:
Michael Q Larson
2015-01-05 16:38:56 -08:00
parent ba037abe53
commit db9622a2e5
6 changed files with 224 additions and 50 deletions

View File

@ -1,14 +1,16 @@
var _ = require('lodash');
var async = require('async');
var crypto = require('crypto');
var nodemailer = require('nodemailer');
var passport = require('passport');
var User = require('../models/User');
var secrets = require('../config/secrets');
var moment = require('moment');
var Challenge = require('./../models/Challenge');
var _ = require('lodash'),
async = require('async'),
crypto = require('crypto'),
nodemailer = require('nodemailer'),
passport = require('passport'),
User = require('../models/User'),
secrets = require('../config/secrets'),
moment = require('moment'),
Challenge = require('./../models/Challenge'),
debug = require('debug')('freecc:cntr:challenges');
//TODO(Berks): Refactor to use module.exports = {} pattern.
/**
* GET /login
* Login page.
@ -148,6 +150,50 @@ exports.getAccount = function(req, res) {
});
};
/**
* GET /users/:username
* Public Profile page.
*/
exports.returnUser = function(req, res, next) {
User.find({'profile.username': req.params.username}, function(err, user) {
if (err) { debug('Username err: ', err); next(err); }
if (user[0]) {
var user = user[0];
Challenge.find({}, null, {sort: {challengeNumber: 1}}, function (err, c) {
res.render('account/show', {
title: 'Code Camper: ',
username: user.profile.username,
name: user.profile.name,
location: user.profile.location,
coderbyteProfile: user.profile.linkedinProfile,
githubProfile: user.profile.githubProfile,
linkedinProfile: user.profile.linkedinProfile,
website1: user.portfolio.website1Link,
website1Title: user.portfolio.website1Title,
website1Image: user.portfolio.website1Image,
website2: user.portfolio.website2Link,
website2Title: user.portfolio.website2Title,
website2Image: user.portfolio.website2Image,
website3: user.portfolio.website3Link,
website3Title: user.portfolio.website3Title,
website3Image: user.portfolio.website3Image,
picture: user.profile.picture,
challenges: c,
ch: user.challengesHash,
moment: moment
});
});
} else {
req.flash('errors', {
msg: "We couldn't find a Code Camper with that username."
});
return res.redirect('/');
}
});
};
/**
* POST /update-progress
* Update profile information.
@ -217,6 +263,16 @@ exports.postUpdateProfile = function(req, res, next) {
user.profile.username = req.body.username || '';
user.profile.location = req.body.location || '';
user.profile.website = req.body.website || '';
user.portfolio.website1Title = req.body.website1Title || '';
user.portfolio.website1Link = req.body.website1Link || '';
user.portfolio.website1Image = req.body.website1Image || '';
user.portfolio.website2Title = req.body.website2Title || '';
user.portfolio.website2Link = req.body.website2Link || '';
user.portfolio.website2Image = req.body.website2Image || '';
user.portfolio.website3Title = req.body.website3Title || '';
user.portfolio.website3Link = req.body.website3Link || '';
user.portfolio.website3Image = req.body.website3Image || '';
user.save(function (err) {
if (err) return next(err);