Files
meanTorrent/app/controllers/users.js

102 lines
1.6 KiB
JavaScript
Executable File

/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
User = mongoose.model('User');
//exports.signin = function (req, res) {}
/**
* Auth callback
*/
exports.authCallback = function (req, res, next) {
res.redirect('/');
};
/**
* Show login form
*/
exports.signin = function (req, res) {
res.render('users/signin', {
title: 'Signin',
message: req.flash('error')
});
};
/**
* Show sign up form
*/
exports.signup = function (req, res) {
res.render('users/signup', {
title: 'Sign up',
user: new User()
});
};
/**
* Logout
*/
exports.signout = function (req, res) {
req.logout();
res.redirect('/');
};
/**
* Session
*/
exports.session = function (req, res) {
res.redirect('/');
};
/**
* Create user
*/
exports.create = function (req, res) {
var user = new User(req.body);
user.provider = 'local';
user.save(function (err) {
if (err) {
return res.render('users/signup', { errors: err.errors, user: user });
}
req.logIn(user, function(err) {
if (err) return next(err);
return res.redirect('/');
});
});
};
/**
* Show profile
*/
exports.show = function (req, res) {
var user = req.profile;
res.render('users/show', {
title: user.name,
user: user
});
};
/**
* Send User
*/
exports.me = function (req, res) {
res.jsonp(req.user || null);
};
/**
* Find user by id
*/
exports.user = function (req, res, next, id) {
User
.findOne({ _id : id })
.exec(function (err, user) {
if (err) return next(err);
if (!user) return next(new Error('Failed to load User ' + id));
req.profile = user;
next();
});
};