Files
roboto-promoto/lib/controllers/users.js
Fergal Moran d49dc8b3bf Initial Commit
2014-03-20 11:32:56 +00:00

65 lines
1.3 KiB
JavaScript

'use strict';
var mongoose = require('mongoose'),
User = mongoose.model('User'),
passport = require('passport');
/**
* Create user
*/
exports.create = function (req, res, next) {
var newUser = new User(req.body);
newUser.provider = 'local';
newUser.save(function(err) {
if (err) return res.json(400, err);
req.logIn(newUser, function(err) {
if (err) return next(err);
return res.json(req.user.userInfo);
});
});
};
/**
* Get profile of specified user
*/
exports.show = function (req, res, next) {
var userId = req.params.id;
User.findById(userId, function (err, user) {
if (err) return next(err);
if (!user) return res.send(404);
res.send({ profile: user.profile });
});
};
/**
* Change password
*/
exports.changePassword = function(req, res, next) {
var userId = req.user._id;
var oldPass = String(req.body.oldPassword);
var newPass = String(req.body.newPassword);
User.findById(userId, function (err, user) {
if(user.authenticate(oldPass)) {
user.password = newPass;
user.save(function(err) {
if (err) return res.send(400);
res.send(200);
});
} else {
res.send(403);
}
});
};
/**
* Get current user
*/
exports.me = function(req, res) {
res.json(req.user || null);
};