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:23 UTC
[06/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/4f90db19
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4f90db19
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4f90db19
Branch: refs/heads/ignite-843-rc3
Commit: 4f90db196b350bb90d486c61f7b3935be421330e
Parents: 471ac27
Author: Andrey <an...@gridgain.com>
Authored: Mon Feb 15 15:08:11 2016 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Mon Feb 15 15:08:11 2016 +0700
----------------------------------------------------------------------
.../src/main/js/controllers/common-module.js | 2 +-
modules/control-center-web/src/main/js/serve.js | 2 +
.../control-center-web/src/main/js/serve/app.js | 2 +
.../src/main/js/serve/routes/notebooks.js | 2 +
.../src/main/js/serve/routes/profile.js | 2 +
.../src/main/js/serve/routes/public.js | 182 +++++++++----------
.../src/main/js/views/login.jade | 28 +--
7 files changed, 110 insertions(+), 110 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/4f90db19/modules/control-center-web/src/main/js/controllers/common-module.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/common-module.js b/modules/control-center-web/src/main/js/controllers/common-module.js
index 585cd1a..2686690 100644
--- a/modules/control-center-web/src/main/js/controllers/common-module.js
+++ b/modules/control-center-web/src/main/js/controllers/common-module.js
@@ -2020,7 +2020,7 @@ consoleModule.controller('resetPassword', [
'$scope', '$modal', '$http', '$common', '$focus', 'Auth', '$state',
function ($scope, $modal, $http, $common, $focus, Auth, $state) {
if ($state.params.token)
- $http.post('/api/v1/validate/token', {token: $state.params.token})
+ $http.post('/api/v1/password/validate/token', {token: $state.params.token})
.success(function (res) {
$scope.email = res.email;
$scope.token = res.token;
http://git-wip-us.apache.org/repos/asf/ignite/blob/4f90db19/modules/control-center-web/src/main/js/serve.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve.js b/modules/control-center-web/src/main/js/serve.js
index b5897a2..a962539 100644
--- a/modules/control-center-web/src/main/js/serve.js
+++ b/modules/control-center-web/src/main/js/serve.js
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+'use strict';
+
const http = require('http'),
https = require('https'),
path = require('path');
http://git-wip-us.apache.org/repos/asf/ignite/blob/4f90db19/modules/control-center-web/src/main/js/serve/app.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/serve/app.js b/modules/control-center-web/src/main/js/serve/app.js
index 6d19b44..5f4e4fb 100644
--- a/modules/control-center-web/src/main/js/serve/app.js
+++ b/modules/control-center-web/src/main/js/serve/app.js
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+'use strict';
+
// Fire me up!
module.exports = {
http://git-wip-us.apache.org/repos/asf/ignite/blob/4f90db19/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 a595303..a12dacf 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
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+'use strict';
+
// Fire me up!
module.exports = {
http://git-wip-us.apache.org/repos/asf/ignite/blob/4f90db19/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 e080ce3..7deff37 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
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+'use strict';
+
// Fire me up!
module.exports = {
http://git-wip-us.apache.org/repos/asf/ignite/blob/4f90db19/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 638bda6..6f78d73 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
@@ -40,6 +40,42 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
return res;
};
+ /**
+ * Send mail to user.
+ * @private
+ * @return {Promise}
+ */
+ const _sendMail = (user, subject, text, sendErrMsg) => {
+ const transporter = {
+ service: settings.smtp.service,
+ auth: {
+ user: settings.smtp.email,
+ pass: settings.smtp.password
+ }
+ };
+
+ if (transporter.service === '' || transporter.auth.user === '' || transporter.auth.pass === '')
+ return Promise.reject('Can\'t send e-mail because not configured SMTP server. Please ask webmaster to setup SMTP server!');
+
+ const mailer = nodemailer.createTransport(transporter);
+
+ const mail = {
+ from: settings.smtp.address(settings.smtp.username, settings.smtp.email),
+ to: settings.smtp.address(user.username, user.email),
+ subject,
+ text: text + (settings.smtp.username ? `\n\n--------------\n${settings.smtp.username}\n` : '')
+ };
+
+ return new Promise((resolve, reject) => {
+ mailer.sendMail(mail, (err) => {
+ if (err)
+ return reject(sendErrMsg || err.message);
+
+ resolve();
+ });
+ });
+ };
+
// GET user.
router.post('/user', function(req, res) {
const becomeUsed = req.session.viewedUser && req.user.admin;
@@ -58,40 +94,51 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
/**
* Register new account.
*/
- router.post('/register', function(req, res) {
- mongo.Account.count(function(errCount, cnt) {
- if (errCount)
- return res.status(401).send(errCount.message);
-
- req.body.admin = cnt === 0;
-
- const _account = new mongo.Account(req.body);
+ router.post('/signup', function(req, res) {
+ mongo.Account.count().exec()
+ .then((cnt) => {
+ req.body.admin = cnt === 0;
- _account.token = _randomString();
+ req.body.token = _randomString();
- mongo.Account.register(_account, req.body.password, function(errRegister, account) {
- if (errRegister)
- return res.status(401).send(errRegister.message);
+ const account = new mongo.Account(req.body);
- if (!account)
- return res.status(500).send('Failed to create account.');
+ return Promise.resolve(account);
+ })
+ .then((account) => {
+ return new Promise((resolve, reject) => {
+ mongo.Account.register(account, req.body.password, (err, _account) => {
+ if (err)
+ return reject(err.message);
- new mongo.Space({name: 'Personal space', owner: account._id}).save();
+ if (!account)
+ return reject('Failed to create account.');
- req.logIn(account, {}, function(errLogIn) {
- if (errLogIn)
- return res.status(401).send(errLogIn.message);
+ resolve(_account);
+ });
+ });
+ })
+ .then((account) => {
+ return new Promise((resolve, reject) => {
+ req.logIn(account, {}, (err) => {
+ if (err)
+ return reject(err.message);
- return res.sendStatus(200);
+ resolve(account);
+ });
});
+ })
+ .then((account) => new mongo.Space({name: 'Personal space', owner: account._id}).save())
+ .then(() => res.sendStatus(200))
+ .catch((errMsg) => {
+ res.status(401).send(errMsg);
});
- });
});
/**
* Login in exist account.
*/
- router.post('/login', function(req, res, next) {
+ router.post('/signin', function(req, res, next) {
passport.authenticate('local', function(errAuth, user) {
if (errAuth)
return res.status(401).send(errAuth.message);
@@ -121,55 +168,27 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
* Send e-mail to user with reset token.
*/
router.post('/password/forgot', function(req, res) {
- const transporter = {
- service: settings.smtp.service,
- auth: {
- user: settings.smtp.email,
- pass: settings.smtp.password
- }
- };
-
- 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!');
-
- const token = _randomString();
-
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.resetPasswordToken = _randomString();
return user.save();
})
.then((user) => {
- 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: 'Password Reset',
- text: 'You are receiving this because you (or someone else) have requested the reset of the password for your account.\n\n' +
+ return _sendMail(user, 'Password Reset',
+ 'You are receiving this because you (or someone else) have requested the reset of the password for your account.\n\n' +
'Please click on the following link, or paste this into your browser to complete the process:\n\n' +
- 'http://' + req.headers.host + '/password/reset?token=' + token + '\n\n' +
- 'If you did not request this, please ignore this email and your password will remain unchanged.\n\n' +
- '--------------\n' +
- settings.smtp.username + '\n'
- };
-
- return new Promise((resolve, reject) => {
- mailer.sendMail(mailOptions, (err) => {
- if (err)
- return reject();
-
- resolve(res.status(200).send('An e-mail has been sent with further instructions.'));
- });
- });
+ 'http://' + req.headers.host + '/password/reset?token=' + user.resetPasswordToken + '\n\n' +
+ 'If you did not request this, please ignore this email and your password will remain unchanged.',
+ 'Failed to send e-mail with reset link!');
})
- .catch((err) => {
+ .then(() => res.status(200).send('An e-mail has been sent with further instructions.'))
+ .catch((errMsg) => {
// TODO IGNITE-843 Send email to admin
- return res.status(401).send('Failed to send e-mail with reset link!' + (err ? '<br>' + err : ''));
+ return res.status(401).send(errMsg);
});
});
@@ -181,14 +200,11 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
.then((user) => {
return new Promise((resolve, reject) => {
if (!user)
- return reject();
+ return reject('Failed to find account with this token! Please check link from e-mail.');
user.setPassword(req.body.password, (err, _user) => {
- if (err) {
- console.log('Failed to reset password: ' + err.message);
-
- return reject();
- }
+ if (err)
+ return reject('Failed to reset password: ' + err.message);
_user.resetPasswordToken = undefined; // eslint-disable-line no-undefined
@@ -197,43 +213,19 @@ module.exports.factory = function(express, passport, nodemailer, settings, mongo
});
})
.then((user) => {
- const transporter = {
- service: settings.smtp.service,
- auth: {
- user: settings.smtp.email,
- pass: settings.smtp.password
- }
- };
-
- 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' +
+ return _sendMail(user, 'Your password has been changed',
+ '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 resolve(res.status(500).send('Password was changed, but failed to send confirmation e-mail!'));
-
- resolve(res.status(200).send(user.email));
- });
- });
+ 'Now you can login: http://' + req.headers.host,
+ 'Password was changed, but failed to send confirmation e-mail!');
})
- .catch(() => {
- res.status(500).send('Failed to reset password! Please check link from e-mail.');
+ .catch((errMsg) => {
+ res.status(500).send(errMsg);
});
});
/* GET reset password page. */
- router.post('/validate/token', function(req, res) {
+ router.post('/password/validate/token', function(req, res) {
const token = req.body.token;
mongo.Account.findOne({resetPasswordToken: token}).exec()
http://git-wip-us.apache.org/repos/asf/ignite/blob/4f90db19/modules/control-center-web/src/main/js/views/login.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/login.jade b/modules/control-center-web/src/main/js/views/login.jade
index 4908002..35767f4 100644
--- a/modules/control-center-web/src/main/js/views/login.jade
+++ b/modules/control-center-web/src/main/js/views/login.jade
@@ -34,28 +34,28 @@ header#header.header
.col-xs-12.col-md-6
form(name='loginForm' novalidate)
.modal-body.row(style='padding-bottom: 10px; margin: 0')
- .settings-row(ng-if='action == "register"')
+ .settings-row(ng-if='action == "signup"')
h3.login-header Sign Up
- .settings-row(ng-if='action == "login"')
+ .settings-row(ng-if='action == "signin"')
h3.login-header Sign In
.settings-row(ng-if='action == "password/forgot"')
h3.login-header Forgot password?
.settings-row
p.col-xs-12.col-md-11(ng-show='action == "password/forgot"')
| That's ok! Simply enter your email below and a reset password link will be sent to you via email. You can then follow that link and select a new password.
- .settings-row(ng-show='action == "register"')
+ .settings-row(ng-show='action == "signup"')
+lblRequired('Full Name:')
.col-xs-9.col-md-8
- input#user_name.form-control(enter-focus-next='user_email' type='text' ng-model='user_info.username' placeholder='John Smith' ng-required='action=="register"')
+ input#user_name.form-control(enter-focus-next='user_email' type='text' ng-model='user_info.username' placeholder='John Smith' ng-required='action=="signup"')
.settings-row
+lblRequired('Email:')
.col-xs-9.col-md-8
input#user_email.form-control(enter-focus-next='company' type='email' ng-model='user_info.email' placeholder='you@domain.com' required)
- .settings-row(ng-show='action == "register"')
+ .settings-row(ng-show='action == "signup"')
+lbl('Company:')
.col-xs-9.col-md-8
input#company.form-control(enter-focus-next='country' type='text' ng-model='user_info.company' placeholder='Your company name')
- .settings-row(ng-show='action == "register"')
+ .settings-row(ng-show='action == "signup"')
+lbl('Country:')
.col-xs-9.col-md-8
button#country.select-toggle.form-control(bs-select bs-options='item for item in countries' enter-focus-next='user_password' type='text' ng-model='user_info.country' placeholder='Choose your country')
@@ -63,28 +63,28 @@ header#header.header
+lblRequired('Password:')
.col-xs-9.col-md-8
input#user_password.form-control(enter-focus-next='user_confirm' type='password' ng-model='user_info.password' placeholder='Password' ng-required='action != "password/forgot"' on-enter='action == "login" && loginForm.$valid && auth(action, user_info)')
- .settings-row(ng-if='action == "register"')
+ .settings-row(ng-if='action == "signup"')
+lblRequired('Confirm:')
.col-xs-9.col-md-8
- input#user_confirm.form-control(type='password' ng-model='user_info.confirm' match='user_info.password' placeholder='Confirm password' ng-required='action == "register"' on-enter='loginForm.$valid && auth(action, user_info)')
+ input#user_confirm.form-control(type='password' ng-model='user_info.confirm' match='user_info.password' placeholder='Confirm password' ng-required='action == "signup"' on-enter='loginForm.$valid && auth(action, user_info)')
.settings-row(ignite-terms)
- .col-md-offset-3(ng-if='action == "register" && terms.termsState')
+ .col-md-offset-3(ng-if='action == "signup" && terms.termsState')
label
input(type='checkbox' ng-model='user_info.agree', ng-required='true')
| I agree to the #[a(ui-sref='{{::terms.termsState}}' target='_blank') terms and conditions]
.col-xs-12.col-md-11
- .login-footer(ng-show='action == "register"')
+ .login-footer(ng-show='action == "signup"')
a.labelField(ng-click='action = "password/forgot"' on-click-focus='user_email') Forgot password?
- a.labelLogin(ng-click='action = "login"' on-click-focus='user_email') Sign In
+ a.labelLogin(ng-click='action = "signin"' on-click-focus='user_email') Sign In
button#signup.btn.btn-primary(ng-click='auth(action, user_info)' ng-disabled='loginForm.$invalid') Sign Up
.col-xs-12.col-md-11
.login-footer(ng-show='action == "password/forgot"')
- a.labelField(ng-click='action = "login"' on-click-focus='user_email') Sign In
+ a.labelField(ng-click='action = "signin"' on-click-focus='user_email') Sign In
button#forgot.btn.btn-primary(ng-click='auth(action, user_info)' ng-disabled='loginForm.$invalid') Send it to me
.col-xs-12.col-md-11
- .login-footer(ng-show='action == "login"')
+ .login-footer(ng-show='action == "signin"')
a.labelField(ng-click='action = "password/forgot"' on-click-focus='user_email') Forgot password?
- a.labelLogin(ng-click='action = "register"' on-click-focus='user_name') Sign Up
+ a.labelLogin(ng-click='action = "signup"' on-click-focus='user_name') Sign Up
button#login.btn.btn-primary(ng-click='auth(action, user_info)' ng-disabled='loginForm.$invalid') Sign In
.col-xs-12.col-md-11.home-panel