Advertisement
Guest User

Untitled

a guest
May 16th, 2016
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. 'use strict';
  3.  
  4. // Requires
  5. var express=require('express'),             // Express Framework
  6.     router=express.Router(),                // Router object
  7.     logger=require('winston'),              // Logger
  8.     countries=require('country-list')();    // Module with countries information
  9.  
  10. module.exports=function(passport){
  11.  
  12.     // *****************************************************************************
  13.     // /signup
  14.     // *****************************************************************************
  15.     router.route('/signup')
  16.         .get(function(req,res){
  17.             res.locals.pageName='signup';
  18.             res.locals.pageTitle='Sign Up';
  19.             res.locals.user=req.user;
  20.             res.locals.error=req.flash('error');
  21.             res.locals.countriesNames=countries.getNames();
  22.             res.locals.countriesCodes=countries.getCodes();
  23.             res.render('site/signup',{layout:'home'});
  24.         })
  25.         .post(function(req,res){
  26.             var formData=req.body,
  27.                 city='',zip='',username='';
  28.             // Comform values depending on the country of origin
  29.             if(formData.country=='US'){
  30.                 city=formData.city_us;
  31.                 zip=formData.zip;
  32.             }else{
  33.                 city=formData.city_other;
  34.                 zip='';
  35.             }
  36.             // Get id last user created
  37.             req.app.get('models').User.findOne({order:'id DESC'}).then(function(user){
  38.                 // Create temporal username
  39.                 username=formData.email.split('@')[0]+'_'+(user.id+1);
  40.                 // Add record in the database
  41.                 req.app.get('models').User.create({
  42.                     username:username,
  43.                     password:req.app.get('models').User.generateHash(formData.password),
  44.                     firstname:'',
  45.                     lastname:'',
  46.                     email:formData.email,
  47.                     country:formData.country,
  48.                     city:city,
  49.                     zip:zip,
  50.                     gender:formData.gender,
  51.                     active:true,
  52.                 }).then(function(user){
  53.                     // Redirect to user's page
  54.                     res.redirect('/');
  55.                     logger.info('User "%s" created.',user.username);
  56.                 }).catch(function(error){
  57.                     logger.error('Could not create user "%s" (%s).',formData.username,error);
  58.                 });
  59.             }).catch(function(error){
  60.                 console.log(error);
  61.             });
  62.            
  63.         });
  64.  
  65.     // *****************************************************************************
  66.     // /signin
  67.     // *****************************************************************************
  68.     // Local strategy
  69.     router.route('/signin')
  70.         .get(function(req,res){
  71.             res.locals.pageName='signin';
  72.             res.locals.pageTitle='Login';
  73.             res.locals.user=req.user;
  74.             res.locals.error=req.flash('error');
  75.             res.render('site/signin',{layout:'home'});
  76.         })
  77.         .post(passport.authenticate('local',
  78.             {
  79.                 successRedirect: '/',
  80.                 failureRedirect: '/signin',
  81.                 failureFlash: true
  82.             }
  83.         ));
  84.    
  85.     // Facebook strategy
  86.     router.route('/signin-facebook')
  87.         .get(passport.authenticate('facebook'));
  88.    
  89.     router.route('/signin-facebook/callback')
  90.         .get(passport.authenticate('facebook',
  91.             {
  92.                 successRedirect: '/',
  93.                 failureRedirect: '/signin'
  94.             }
  95.         )
  96.     );     
  97.  
  98.     // *****************************************************************************
  99.     // /logout
  100.     // *****************************************************************************
  101.     router.get('/signoff',function(req,res){
  102.         var username=req.user.username;
  103.         logger.info('User "%s" logged out.',username);
  104.         req.logout();
  105.         res.redirect('/');
  106.     });
  107.  
  108.     // *****************************************************************************
  109.     // /locale
  110.     // Sets the locale language and returns to the source URL
  111.     // *****************************************************************************
  112.     router.get('/locale/:language',function(req,res){
  113.         var language=req.params.language;
  114.         req.setLocale(language);
  115.         req.session.locale=language;
  116.         logger.info('Site language changed to "'+language+'".');
  117.         res.redirect('back');
  118.     });
  119.  
  120.     // *****************************************************************************
  121.     // /
  122.     // Home page
  123.     // *****************************************************************************
  124.     router.get('/',function(req,res){
  125.         res.locals.pageName='home';
  126.         res.locals.pageTitle='Home';
  127.         res.locals.user=req.user;
  128.         res.locals.error=req.flash('error');
  129.         res.render('site/home',{layout:'home'});
  130.     });
  131.  
  132.     return router;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement