You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2016/02/16 16:14:19 UTC
[02/50] ignite git commit: IGNITE-843 Refactor serve to es6.
IGNITE-843 Refactor serve to es6.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4220afa5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4220afa5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4220afa5
Branch: refs/heads/ignite-843-rc3
Commit: 4220afa5a2b3d1be680d0ea0126089303b321fd5
Parents: b1020f4
Author: Andrey <an...@gridgain.com>
Authored: Mon Feb 15 10:35:47 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Mon Feb 15 10:35:47 2016 +0700
----------------------------------------------------------------------
.../src/main/js/serve/mongo.js | 3 +
.../src/main/js/serve/routes/notebooks.js | 10 +-
.../src/main/js/serve/routes/profile.js | 2 +-
.../src/main/js/serve/routes/public.js | 191 ++++++++++---------
4 files changed, 105 insertions(+), 101 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4220afa5/modules/control-center-web/src/main/js/serve/mongo.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/mongo.js b/modules/control-center-web/src/main/js/serve/mongo.js
index c0d5228..f6ff790 100644
--- a/modules/control-center-web/src/main/js/serve/mongo.js
+++ b/modules/control-center-web/src/main/js/serve/mongo.js
@@ -27,6 +27,9 @@ module.exports = {
module.exports.factory = function(deepPopulatePlugin, passportMongo, settings, pluginMongo) {
const mongoose = require('mongoose');
+ // Use native promises
+ mongoose.Promise = global.Promise;
+
const deepPopulate = deepPopulatePlugin(mongoose);
// Connect to mongoDB database.
http://git-wip-us.apache.org/repos/asf/ignite/blob/4220afa5/modules/control-center-web/src/main/js/serve/routes/notebooks.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/notebooks.js b/modules/control-center-web/src/main/js/serve/routes/notebooks.js
index e700921..48e9a5c 100644
--- a/modules/control-center-web/src/main/js/serve/routes/notebooks.js
+++ b/modules/control-center-web/src/main/js/serve/routes/notebooks.js
@@ -33,19 +33,17 @@ module.exports.factory = function(express, mongo) {
* @param res Response.
*/
router.post('/list', function(req, res) {
- var user_id = req.currentUserId();
+ const user_id = req.currentUserId();
// Get owned space and all accessed space.
- mongo.Space.find({$or: [{owner: user_id}, {usedBy: {$elemMatch: {account: user_id}}}]}, function(err, spaces) {
+ mongo.Space.find({$or: [{owner: user_id}, {usedBy: {$elemMatch: {account: user_id}}}]}, (err, spaces) => {
if (err)
return res.status(500).send(err.message);
- var space_ids = spaces.map(function(value) {
- return value._id;
- });
+ const space_ids = spaces.map((value) => value._id);
// Get all metadata for spaces.
- mongo.Notebook.find({space: {$in: space_ids}}).select('_id name').sort('name').exec(function(err, notebooks) {
+ mongo.Notebook.find({space: {$in: space_ids}}).select('_id name').sort('name').exec((err, notebooks) => {
if (err)
return res.status(500).send(err.message);
http://git-wip-us.apache.org/repos/asf/ignite/blob/4220afa5/modules/control-center-web/src/main/js/serve/routes/profile.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/profile.js b/modules/control-center-web/src/main/js/serve/routes/profile.js
index 5a22010..e080ce3 100644
--- a/modules/control-center-web/src/main/js/serve/routes/profile.js
+++ b/modules/control-center-web/src/main/js/serve/routes/profile.js
@@ -24,7 +24,7 @@ module.exports = {
module.exports.factory = function(_, express, mongo) {
return new Promise((resolveFactory) => {
- const router = express.Router();
+ const router = new express.Router();
/**
* Save user profile.
http://git-wip-us.apache.org/repos/asf/ignite/blob/4220afa5/modules/control-center-web/src/main/js/serve/routes/public.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/routes/public.js b/modules/control-center-web/src/main/js/serve/routes/public.js
index 476ded2..9c06015 100644
--- a/modules/control-center-web/src/main/js/serve/routes/public.js
+++ b/modules/control-center-web/src/main/js/serve/routes/public.js
@@ -25,8 +25,8 @@ module.exports = {
};
module.exports.factory = function(express, passport, nodemailer, settings, mongo) {
- return new Promise(function(resolve) {
- const router = express.Router();
+ return new Promise(function(factoryResolve) {
+ const router = new express.Router();
const _randomString = () => {
const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
@@ -42,9 +42,9 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
// GET user.
router.post('/user', function(req, res) {
- var becomeUsed = req.session.viewedUser && req.user.admin;
+ const becomeUsed = req.session.viewedUser && req.user.admin;
- var user = req.user;
+ let user = req.user;
if (becomeUsed) {
user = req.session.viewedUser;
@@ -59,28 +59,28 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
* Register new account.
*/
router.post('/register', function(req, res) {
- mongo.Account.count(function(err, cnt) {
- if (err)
- return res.status(401).send(err.message);
+ mongo.Account.count(function(errCount, cnt) {
+ if (errCount)
+ return res.status(401).send(errCount.message);
req.body.admin = cnt === 0;
- var account = new mongo.Account(req.body);
+ const _account = new mongo.Account(req.body);
- account.token = _randomString();
+ _account.token = _randomString();
- mongo.Account.register(account, req.body.password, function(err, account) {
- if (err)
- return res.status(401).send(err.message);
+ mongo.Account.register(_account, req.body.password, function(errRegister, account) {
+ if (errRegister)
+ return res.status(401).send(errRegister.message);
if (!account)
return res.status(500).send('Failed to create account.');
new mongo.Space({name: 'Personal space', owner: account._id}).save();
- req.logIn(account, {}, function(err) {
- if (err)
- return res.status(401).send(err.message);
+ req.logIn(account, {}, function(errLogIn) {
+ if (errLogIn)
+ return res.status(401).send(errLogIn.message);
return res.sendStatus(200);
});
@@ -92,16 +92,16 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
* Login in exist account.
*/
router.post('/login', function(req, res, next) {
- passport.authenticate('local', function(err, user) {
- if (err)
- return res.status(401).send(err.message);
+ passport.authenticate('local', function(errAuth, user) {
+ if (errAuth)
+ return res.status(401).send(errAuth.message);
if (!user)
return res.status(401).send('Invalid email or password');
- req.logIn(user, {}, function(err) {
- if (err)
- return res.status(401).send(err.message);
+ req.logIn(user, {}, function(errLogIn) {
+ if (errLogIn)
+ return res.status(401).send(errLogIn.message);
return res.sendStatus(200);
});
@@ -121,7 +121,7 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
* Send e-mail to user with reset token.
*/
router.post('/password/forgot', function(req, res) {
- var transporter = {
+ const transporter = {
service: settings.smtp.service,
auth: {
user: settings.smtp.email,
@@ -132,26 +132,21 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
if (transporter.service === '' || transporter.auth.user === '' || transporter.auth.pass === '')
return res.status(401).send('Can\'t send e-mail with instructions to reset password. Please ask webmaster to setup SMTP server!');
- var token = _randomString();
+ const token = _randomString();
- mongo.Account.findOne({email: req.body.email}, function(err, user) {
- if (!user)
- return res.status(401).send('No account with that email address exists!');
-
- // TODO IGNITE-843 Send email to admin
- if (err)
- return res.status(401).send('Failed to reset password!');
+ mongo.Account.findOne({email: req.body.email}).exec()
+ .then((user) => {
+ if (!user)
+ return Promise.reject('Account with that email address does not exists!');
- user.resetPasswordToken = token;
-
- user.save(function(err) {
- // TODO IGNITE-843 Send email to admin
- if (err)
- return res.status(401).send('Failed to reset password!');
+ user.resetPasswordToken = token;
- var mailer = nodemailer.createTransport(transporter);
+ return user.save();
+ })
+ .then((user) => {
+ const mailer = nodemailer.createTransport(transporter);
- var mailOptions = {
+ const mailOptions = {
from: settings.smtp.address(settings.smtp.username, settings.smtp.email),
to: settings.smtp.address(user.username, user.email),
subject: 'Password Reset',
@@ -163,88 +158,96 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
settings.smtp.username + '\n'
};
- mailer.sendMail(mailOptions, function(err) {
- if (err)
- return res.status(401).send('Failed to send e-mail with reset link! ' + err);
+ return new Promise((resolve, reject) => {
+ mailer.sendMail(mailOptions, (err) => {
+ if (err)
+ return reject();
- return res.status(200).send('An e-mail has been sent with further instructions.');
+ resolve(res.status(200).send('An e-mail has been sent with further instructions.'));
+ });
});
+ })
+ .catch((err) => {
+ // TODO IGNITE-843 Send email to admin
+ return res.status(401).send('Failed to send e-mail with reset link!' + (err ? '<br>' + err : ''));
});
- });
});
/**
* Change password with given token.
*/
router.post('/password/reset', function(req, res) {
- mongo.Account.findOne({resetPasswordToken: req.body.token}, function(err, user) {
- if (!user)
- return res.status(500).send('Invalid token for password reset!');
+ mongo.Account.findOne({resetPasswordToken: req.body.token}).exec()
+ .then((user) => {
+ return new Promise((resolve, reject) => {
+ if (!user)
+ return reject();
- // TODO IGNITE-843 Send email to admin
- if (err)
- return res.status(500).send('Failed to reset password!');
+ user.setPassword(req.body.password, (err, _user) => {
+ if (err) {
+ console.log('Failed to reset password: ' + err.message);
- user.setPassword(req.body.password, function(err, updatedUser) {
- if (err)
- return res.status(500).send(err.message);
+ return reject();
+ }
- updatedUser.resetPasswordToken = undefined;
+ _user.resetPasswordToken = undefined;
- updatedUser.save(function(err) {
- if (err)
- return res.status(500).send(err.message);
+ resolve(_user.save());
+ });
+ });
+ })
+ .then((user) => {
+ const transporter = {
+ service: settings.smtp.service,
+ auth: {
+ user: settings.smtp.email,
+ pass: settings.smtp.password
+ }
+ };
- var transporter = {
- service: settings.smtp.service,
- auth: {
- user: settings.smtp.email,
- pass: settings.smtp.password
- }
- };
-
- var mailer = nodemailer.createTransport(transporter);
-
- var mailOptions = {
- from: settings.smtp.address(settings.smtp.username, settings.smtp.email),
- to: settings.smtp.address(user.username, user.email),
- subject: 'Your password has been changed',
- text: 'Hello,\n\n' +
- 'This is a confirmation that the password for your account ' + user.email + ' has just been changed.\n\n' +
- 'Now you can login: http://' + req.headers.host + '\n\n' +
- '--------------\n' +
- 'Apache Ignite Web Console\n'
- };
-
- mailer.sendMail(mailOptions, function(err) {
+ const mailer = nodemailer.createTransport(transporter);
+
+ const mailOptions = {
+ from: settings.smtp.address(settings.smtp.username, settings.smtp.email),
+ to: settings.smtp.address(user.username, user.email),
+ subject: 'Your password has been changed',
+ text: 'Hello,\n\n' +
+ 'This is a confirmation that the password for your account ' + user.email + ' has just been changed.\n\n' +
+ 'Now you can login: http://' + req.headers.host + '\n\n' +
+ '--------------\n' +
+ 'Apache Ignite Web Console\n'
+ };
+
+ return new Promise((resolve) => {
+ mailer.sendMail(mailOptions, (err) => {
if (err)
- return res.status(503).send('Password was changed, but failed to send confirmation e-mail!<br />' + err);
+ return resolve(res.status(500).send('Password was changed, but failed to send confirmation e-mail!'));
- return res.status(200).send(user.email);
+ resolve(res.status(200).send(user.email));
});
});
+ })
+ .catch(() => {
+ res.status(500).send('Failed to reset password! Please check link from e-mail.');
});
- });
});
/* GET reset password page. */
router.post('/validate/token', function(req, res) {
- var token = req.body.token;
-
- var data = {token};
+ const token = req.body.token;
- mongo.Account.findOne({resetPasswordToken: token}, function(err, user) {
- if (!user)
- data.error = 'Invalid token for password reset!';
- else if (err)
- data.error = err;
- else
- data.email = user.email;
+ mongo.Account.findOne({resetPasswordToken: token}).exec()
+ .then((user) => {
+ return new Promise((resolve, reject) => {
+ if (!user)
+ return reject('Invalid token for password reset!');
- res.json(data);
- });
+ resolve(res.json({token, email: user.email}));
+ });
+ })
+ .catch((error) => res.json({error}));
});
- resolve(router);
+ factoryResolve(router);
});
};