f9a918484a3087ba4ef37a6dae33f072349e437c
[motion.git] / server / auth / local / passport.js
1 var passport = require('passport');
2 var LocalStrategy = require('passport-local').Strategy;
3
4 exports.setup = function(User, config) {
5
6   passport.use('local-login', new LocalStrategy({
7       usernameField: 'name',
8       passwordField: 'password' // this is the virtual field on the model
9     },
10     function(name, password, done) {
11
12       User.findOne({
13         where: {
14           name: name
15         }
16       }).then(function(user) {
17
18         if (!user) {
19           return done(null, false, {
20             message: 'This username is not registered.'
21           });
22         }
23         if (!user.authenticate(password)) {
24           return done(null, false, {
25             message: 'This password is not correct.'
26           });
27         }
28         // if (user.online && user.role !== 'admin') {
29         //   console.log('User is already logged in');
30         //   return done(null, false, {
31         //     message: 'User is already logged in.'
32         //   });
33         // }
34
35         // user
36         //   .updateAttributes({
37         //     online: true
38         //   })
39         //   .then(function(user) {
40         return done(null, user);
41         //   })
42         //   .catch(function(err) {
43         //     return done(null, false, {
44         //       message: 'Unable to set up online parameters.'
45         //     });
46         //   });
47       }).catch(function(err) {
48         return done(err);
49       });
50     }
51   ));
52
53   // passport.use('local-signup', new LocalStrategy({
54   //     usernameField: 'name',
55   //     passwordField: 'password',
56   //     passReqToCallback: true
57   //   },
58   //   function(req, name, password, done) {
59   //
60   //     if (!req.user) {
61   //       User
62   //         .findOne({
63   //           where: {
64   //             name: name
65   //           }
66   //         })
67   //         .then(function(user) {
68   //           if (user) {
69   //             return done(null, false, {
70   //               message: 'That email is already taken.'
71   //             });
72   //           } else {
73   //             var newUser = User.build(req.body);
74   //             newUser.provider = 'local';
75   //             newUser.online = true;
76   //             newUser
77   //               .save()
78   //               .then(function() {
79   //                 return done(null, newUser);
80   //               })
81   //               .catch(function(err) {
82   //                 return done(err);
83   //               });
84   //           }
85   //         })
86   //         .catch(function(err) {
87   //           return done(err);
88   //         });
89   //     } else {
90   //       // user is logged in and already has a local account. Ignore signup. (You should log out before trying to create a new account, user!)
91   //       return done(null, req.user);
92   //     }
93   //   }
94   // ));
95
96 };