parent
a334b9870c
commit
c4d229e62d
|
@ -21,41 +21,6 @@ module.exports = function(User) {
|
|||
User.validatesUniquenessOf('username');
|
||||
|
||||
debug('setting up user hooks');
|
||||
// send verification email to new camper
|
||||
User.afterRemote('create', function(ctx, user, next) {
|
||||
debug('user created, sending email');
|
||||
if (!user.email) { return next(); }
|
||||
|
||||
var mailOptions = {
|
||||
type: 'email',
|
||||
to: user.email,
|
||||
from: 'Team@freecodecamp.com',
|
||||
subject: 'Welcome to Free Code Camp!',
|
||||
redirect: '/',
|
||||
text: [
|
||||
'Greetings from San Francisco!\n\n',
|
||||
'Thank you for joining our community.\n',
|
||||
'Feel free to email us at this address if you have ',
|
||||
'any questions about Free Code Camp.\n',
|
||||
'And if you have a moment, check out our blog: ',
|
||||
'blog.freecodecamp.com.\n',
|
||||
'Good luck with the challenges!\n\n',
|
||||
'- the Free Code Camp Volunteer Team'
|
||||
].join('')
|
||||
};
|
||||
user.verify(mailOptions, function(err) {
|
||||
if (err) { return next(err); }
|
||||
debug('verification email sent');
|
||||
ctx.req.flash('success', {
|
||||
msg: [
|
||||
'Please check your email and click on the verification link '
|
||||
+ 'before logging in.'
|
||||
]
|
||||
});
|
||||
ctx.res.redirect('/');
|
||||
});
|
||||
});
|
||||
|
||||
User.afterRemote('confirm', function(ctx) {
|
||||
ctx.req.flash('success', {
|
||||
msg: [
|
||||
|
@ -65,49 +30,28 @@ module.exports = function(User) {
|
|||
ctx.res.redirect('/email-signin');
|
||||
});
|
||||
|
||||
User.afterRemote('login', function(ctx, instance, next) {
|
||||
User.afterRemote('login', function(ctx, user, next) {
|
||||
var res = ctx.res;
|
||||
var req = ctx.req;
|
||||
// var args = ctx.args;
|
||||
|
||||
User.findOne({where: {email: ctx.args.credentials.email}},
|
||||
function(err, response) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
if (response.emailVerified !== true) {
|
||||
return res.redirect('/');
|
||||
}
|
||||
User.login({
|
||||
email: ctx.args.credentials.email,
|
||||
password: ctx.args.credentials.password,
|
||||
ttl: Infinity
|
||||
}, function(err, accessToken) {
|
||||
if (err) {
|
||||
req.flash('errors', {
|
||||
msg: [
|
||||
'Invalid username or password.'
|
||||
]
|
||||
});
|
||||
return res.redirect('/');
|
||||
}
|
||||
var config = {
|
||||
signed: !!req.signedCookies,
|
||||
maxAge: accessToken.ttl
|
||||
};
|
||||
if (accessToken && accessToken.id) {
|
||||
res.cookie('access_token', accessToken.id, config);
|
||||
res.cookie('userId', accessToken.userId, config);
|
||||
}
|
||||
req.logIn(response, function(err) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
req.flash('success', { msg: 'Success! You are logged in.' });
|
||||
return res.redirect('/');
|
||||
});
|
||||
});
|
||||
});
|
||||
return res.redirect('/');
|
||||
var accessToken = {};
|
||||
var config = {
|
||||
signed: !!req.signedCookies,
|
||||
maxAge: accessToken.ttl
|
||||
};
|
||||
if (accessToken && accessToken.id) {
|
||||
res.cookie('access_token', accessToken.id, config);
|
||||
res.cookie('userId', accessToken.userId, config);
|
||||
}
|
||||
|
||||
return req.logIn(user, function(err) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
req.flash('success', { msg: 'Success! You are logged in.' });
|
||||
return res.redirect('/');
|
||||
});
|
||||
});
|
||||
|
||||
User.afterRemote('logout', function(ctx, result, next) {
|
||||
|
|
|
@ -12,6 +12,7 @@ module.exports = function(app) {
|
|||
var User = app.models.User;
|
||||
var UserIdentity = app.models.UserIdentity;
|
||||
var UserCredential = app.models.UserCredential;
|
||||
var Email = app.models.Email;
|
||||
User.observe('before delete', function(ctx, next) {
|
||||
debug('removing user', ctx.where);
|
||||
var id = ctx.where && ctx.where.id ? ctx.where.id : null;
|
||||
|
@ -41,4 +42,51 @@ module.exports = function(app) {
|
|||
}
|
||||
);
|
||||
});
|
||||
|
||||
// set email varified false on user email signup
|
||||
// should not be set with oauth signin methods
|
||||
User.beforeRemote('create', function(ctx, user, next) {
|
||||
var body = ctx.req.body;
|
||||
if (body) {
|
||||
body.emailVerified = false;
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
// send welcome email to new camper
|
||||
User.afterRemote('create', function(ctx, user, next) {
|
||||
debug('user created, sending email');
|
||||
if (!user.email) { return next(); }
|
||||
|
||||
var mailOptions = {
|
||||
type: 'email',
|
||||
to: user.email,
|
||||
from: 'Team@freecodecamp.com',
|
||||
subject: 'Welcome to Free Code Camp!',
|
||||
redirect: '/',
|
||||
text: [
|
||||
'Greetings from San Francisco!\n\n',
|
||||
'Thank you for joining our community.\n',
|
||||
'Feel free to email us at this address if you have ',
|
||||
'any questions about Free Code Camp.\n',
|
||||
'And if you have a moment, check out our blog: ',
|
||||
'blog.freecodecamp.com.\n',
|
||||
'Good luck with the challenges!\n\n',
|
||||
'- the Free Code Camp Volunteer Team'
|
||||
].join('')
|
||||
};
|
||||
|
||||
debug('sending welcome email');
|
||||
Email.send(mailOptions, function(err) {
|
||||
if (err) { return next(err); }
|
||||
ctx.req.logIn(user, function(err) {
|
||||
if (err) { return next(err); }
|
||||
|
||||
ctx.req.flash('success', {
|
||||
msg: [ 'thanks for joining freecodecamp!' ]
|
||||
});
|
||||
ctx.res.redirect('/');
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue