Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- // Requires
- var express=require('express'), // Express Framework
- router=express.Router(), // Router object
- logger=require('winston'), // Logger
- countries=require('country-list')(); // Module with countries information
- module.exports=function(passport){
- // *****************************************************************************
- // /signup
- // *****************************************************************************
- router.route('/signup')
- .get(function(req,res){
- res.locals.pageName='signup';
- res.locals.pageTitle='Sign Up';
- res.locals.user=req.user;
- res.locals.error=req.flash('error');
- res.locals.countriesNames=countries.getNames();
- res.locals.countriesCodes=countries.getCodes();
- res.render('site/signup',{layout:'home'});
- })
- .post(function(req,res){
- var formData=req.body,
- city='',zip='',username='';
- // Comform values depending on the country of origin
- if(formData.country=='US'){
- city=formData.city_us;
- zip=formData.zip;
- }else{
- city=formData.city_other;
- zip='';
- }
- // Get id last user created
- req.app.get('models').User.findOne({order:'id DESC'}).then(function(user){
- // Create temporal username
- username=formData.email.split('@')[0]+'_'+(user.id+1);
- // Add record in the database
- req.app.get('models').User.create({
- username:username,
- password:req.app.get('models').User.generateHash(formData.password),
- firstname:'',
- lastname:'',
- email:formData.email,
- country:formData.country,
- city:city,
- zip:zip,
- gender:formData.gender,
- active:true,
- }).then(function(user){
- // Redirect to user's page
- res.redirect('/');
- logger.info('User "%s" created.',user.username);
- }).catch(function(error){
- logger.error('Could not create user "%s" (%s).',formData.username,error);
- });
- }).catch(function(error){
- console.log(error);
- });
- });
- // *****************************************************************************
- // /signin
- // *****************************************************************************
- // Local strategy
- router.route('/signin')
- .get(function(req,res){
- res.locals.pageName='signin';
- res.locals.pageTitle='Login';
- res.locals.user=req.user;
- res.locals.error=req.flash('error');
- res.render('site/signin',{layout:'home'});
- })
- .post(passport.authenticate('local',
- {
- successRedirect: '/',
- failureRedirect: '/signin',
- failureFlash: true
- }
- ));
- // Facebook strategy
- router.route('/signin-facebook')
- .get(passport.authenticate('facebook'));
- router.route('/signin-facebook/callback')
- .get(passport.authenticate('facebook',
- {
- successRedirect: '/',
- failureRedirect: '/signin'
- }
- )
- );
- // *****************************************************************************
- // /logout
- // *****************************************************************************
- router.get('/signoff',function(req,res){
- var username=req.user.username;
- logger.info('User "%s" logged out.',username);
- req.logout();
- res.redirect('/');
- });
- // *****************************************************************************
- // /locale
- // Sets the locale language and returns to the source URL
- // *****************************************************************************
- router.get('/locale/:language',function(req,res){
- var language=req.params.language;
- req.setLocale(language);
- req.session.locale=language;
- logger.info('Site language changed to "'+language+'".');
- res.redirect('back');
- });
- // *****************************************************************************
- // /
- // Home page
- // *****************************************************************************
- router.get('/',function(req,res){
- res.locals.pageName='home';
- res.locals.pageTitle='Home';
- res.locals.user=req.user;
- res.locals.error=req.flash('error');
- res.render('site/home',{layout:'home'});
- });
- return router;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement