feat(users): forbid user login when banned from server

This commit is contained in:
OldHawk
2017-07-04 17:49:11 +08:00
parent a256d60064
commit 9ea721ec29

View File

@@ -10,32 +10,33 @@ var passport = require('passport'),
module.exports = function () {
// Use local strategy
passport.use(new LocalStrategy({
usernameField: 'usernameOrEmail',
passwordField: 'password'
},
function (usernameOrEmail, password, done) {
User.findOne({
$or: [{
username: usernameOrEmail.toLowerCase()
}, {
email: usernameOrEmail.toLowerCase()
}]
}, function (err, user) {
if (err) {
return done(err);
}
if (!user || !user.authenticate(password)) {
return done(null, false, {
message: 'Invalid username or password (' + (new Date()).toLocaleTimeString() + ')'
});
}
if(user.status === 'banned'){
return done(null, false, {
message: 'You are banned from the server!'
});
}
usernameField: 'usernameOrEmail',
passwordField: 'password'
},
function (usernameOrEmail, password, done) {
User.findOne({
$or: [{
username: usernameOrEmail.toLowerCase()
}, {
email: usernameOrEmail.toLowerCase()
}]
}, function (err, user) {
if (err) {
return done(err);
}
if (!user || !user.authenticate(password)) {
return done(null, false, {
message: 'Invalid username or password (' + (new Date()).toLocaleTimeString() + ')'
});
}
if (user.status === 'banned') {
return done(null, false, {
message: 'You are banned from the server!'
});
}
return done(null, user);
});
}));
return done(null, user);
});
}
));
};