Files
meanTorrent/app/controllers/users.js
2013-05-22 17:03:50 +03:00

106 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
})
}
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()
})
}