');'
],
'getUser': [
- 'select user_id, ',
- 'user_email, ',
- 'user_group, ',
- 'user_password ',
- 'where user_email = <% userEmail %> ',
- 'and user_password = <% userPassword %> ',
+ 'select user_email, user_group ',
+ 'from tic_user ',
+ 'where user_email = "<%= userEmail %>" and user_password = "<%= userPassword %>" ',
'limit 1;'
],
'hasUser': [
'select count(user_id) as count ',
'from tic_user ',
- 'where user_email = <%= userEmail %>;'
+ 'where user_email = "<%= userEmail %>";'
]
};
this.doQuery(queryString, onSuccess);
};
+
/**
* User
*/
/**
- * getUser
+ * @method getUser
+ * @param json object { email, password }
+ * @desc get user information
*/
-mariadb.getUser = function getUser(req, res) {
- var queryString, reqParam, userEmail, userPassword;
-
+mariadb.getUser = function getUser(query, success, error) {
function onSuccess(err, rows) {
- var resultObj
-
if (err) {
logger.error(err);
- throw err;
- }
-
- resultObj = {
- result: '',
- resultData : {}
- };
-
- if (rows.length === NO_DATA) {
- resultObj.result = 'NOT EXISTS';
- resultObj.resultData = {};
+ error(err);
} else {
- resultObj.result = 'EXISTS';
- resultObj.resultData = rows;
+ var resultObj = {
+ data: null
+ };
+ if (rows.length !== NO_DATA) {
+ resultObj.data = rows[0];
+ }
+ success(resultObj);
}
-
- res.json(resultObj);
}
- // parameters
- reqParam = req.body;
- userEmail = reqParam.user_email;
- userPassword = reqParam.user_password;
-
- queryString = _.template(_.join(this.queries['getUser'], ''))({
- userEmail: email,
- userPassword: password
+ var queryString = _.template(_.join(this.queries['getUser'], ''))({
+ userEmail: query.email,
+ userPassword: query.password
});
logger.info('getUser: query = ' + queryString);
this.doQuery(queryString, onSuccess);
};
-
/**
- * hasUser
+ * @method hasUser
+ * @param json object { email }
+ * @desc user check
*/
-mariadb.hasUser = function hasUser(req, res) {
- var queryString, reqParam, userEmail;
-
+mariadb.hasUser = function hasUser(query, success, error) {
function onSuccess(err, rows) {
if (err) {
logger.error(err);
- throw err;
+ error(error);
+ } else {
+ success(rows);
}
-
- res.json(rows);
}
- // parameters
- reqParam = req.body;
- userEmail = reqParam.user_email;
-
- queryString = _.template(_.join(this.queries['hasUser'], ''))({
- userEmail: email
+ var queryString = _.template(_.join(this.queries['hasUser'], ''))({
+ userEmail: query.email
});
logger.info('hasUser: query = ' + queryString);
*/
router.post('/session', function (req, res) {
if (req.session) {
- // FIXME: check email and password from Database
+ // check email and password
if (req.body.email) {
- if (req.body.email === 'admin@samsung.com' && req.body.password === 'admin') {
- req.session.email = req.body.email;
- res.json({
- email: req.body.email,
- result: 'success'
- });
- return;
- }
+ client.getUser({
+ email: req.body.email,
+ password: req.body.password
+ }, function success(user) {
+ if (user.data === null) {
+ // check email
+ client.hasUser({
+ email: req.body.email
+ }, function success(result) {
+ // email validation
+ if (result[0].count !== '0') {
+ res.json({
+ result: 'fail',
+ reason: 'password'
+ });
+ } else {
+ res.json({
+ result: 'fail',
+ reason: 'email'
+ });
+ }
+ }, function error(err) {
+ logger.error(err);
+ });
+ } else {
+ // save email in session
+ req.session.email = req.body.email;
+ res.json({
+ result: 'success',
+ data: user.data
+ });
+ }
+ }, function error(err) {
+ logger.error(err);
+ });
}
+ } else {
+ res.json({
+ result: 'fail',
+ reason: 'email'
+ });
}
- res.json({
- result: 'fail'
- });
});
/**
});
// login: listener of input change
+ $('#tic-page-login-form-email').on('input change', function(e) {
+ if ($(e.target).hasClass('has-danger') === false) {
+ $('#tic-page-form-help-email').html('');
+ }
+ });
$('#tic-page-login-form-password').on('input change', function(e) {
if ($(e.target).hasClass('has-danger') === false) {
$('#tic-page-form-help-password').html('');
email : $('#tic-page-login-form-email').val(),
password: $('#tic-page-login-form-password').val()
})
- .then(function (result) {
- if (result.result === 'success') {
+ .then(function (user) {
+ if (user.result === 'success') {
$('#tic-page-login-dropdown-toggle').dropdown('toggle');
// toggle for login and logout
$('#tic-navbar-login').toggleClass('hidden', true); // hidden
$('#tic-navbar-logout').toggleClass('hidden', false); // visible
- $('#tic-page-logout-dropdown-toggle').html(result.email +'<span class="caret">');
+ $('#tic-page-logout-dropdown-toggle').html(user.data.user_email +'<span class="caret">');
} else {
- // TODO: @Author leechwin.lee@samung.com
- // invalid password or email
- // consider to result value
- $('#tic-page-form-group-password').addClass('has-error has-danger');
- $('#tic-page-form-help-password').html('Invalid password.');
+ if (user.reason === 'email') {
+ $('#tic-page-form-group-email').addClass('has-error has-danger');
+ $('#tic-page-form-help-email').html('Invalid email.');
+ } else if (user.reason === 'password') {
+ $('#tic-page-form-group-password').addClass('has-error has-danger');
+ $('#tic-page-form-help-password').html('Invalid password.');
+ }
}
});
});