mirror of
https://github.com/fergalmoran/roboto-promoto.git
synced 2025-12-22 09:37:37 +00:00
65 lines
1.3 KiB
JavaScript
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);
|
|
}; |