Skip to content

Commit 5b64a05

Browse files
authored
Merge pull request #5 from Jayx239/develop
Develop
2 parents af5d895 + 0324c53 commit 5b64a05

File tree

9 files changed

+149
-100
lines changed

9 files changed

+149
-100
lines changed

node/app/Logger.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
var winston = require('winston');
2-
const tsFormat = () =
3-
>
4-
(new Date()).toLocaleTimeString();
2+
const tsFormat = () => (new Date()).toLocaleTimeString();
53

64
/* Configure winston logger */
75
var logger = new (winston.Logger)({

node/app/LogonRegister.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ app.post("/LogonRegister/Logon", function (req, res) {
1414
provider.getCredentialsByUserName(req.body.UserName, function (returnObject) {
1515
if (returnObject.status === provider.Statuses.Error) {
1616
logger.error("User not found, UserName: " + req.body.UserName);
17-
res.redirect('/');
17+
res.locals.messages.errors.push("Invalid Credentials");
18+
res.render("logon");
1819
}
1920
else {
2021
if (validation.validateUserPassword(req.body.Password, returnObject.results[0].Hash, returnObject.results[0].Salt)) {
@@ -24,11 +25,14 @@ app.post("/LogonRegister/Logon", function (req, res) {
2425
if (returnObject.Status !== provider.Statuses.Error) {
2526
req.session.admin = "granted";
2627
}
28+
res.locals.messages.success.push("Logon Succesful");
2729
res.redirect("/");
2830
});
2931
}
30-
else
31-
res.redirect("/LogonRegister/Logon");
32+
else {
33+
res.locals.message.errors.push("Invalid Credentials");
34+
res.render("logon");
35+
}
3236
}
3337
});
3438
});
@@ -42,21 +46,25 @@ app.post("/LogonRegister/Register", function (req, res) {
4246
provider.addUserToUsersTable(req.body.UserName, req.body.PrimaryEmailAddress, req.body.FirstName, req.body.MiddleName, req.body.LastName, req.body.BirthDay, req.body.BirthMonth, req.body.BirthYear, function (result) {
4347
if (result.status === provider.Statuses.Error) {
4448
console.error("Error registering user");
45-
res.json(result);
49+
logger.error("Unable to create user credentials, registration failed");
50+
res.locals.messages.errors.push(result.message);
51+
res.render("register");
4652
}
4753
else {
4854
console.info("User registered, UserName: " + req.body.UserName);
4955
var saltHash = validation.saltHashPassword(req.body.Password);
5056
provider.addCredentialsByUserName(req.body.UserName, saltHash.passwordHash, saltHash.salt, function (result) {
5157
if (result.status === provider.Statuses.Error) {
5258
logger.error("Unable to create user credentials, registration failed");
53-
res.send(result);
59+
res.locals.messages.errors.push(result.message);
60+
res.render("register.ejs");
5461
}
5562
else {
63+
res.locals.messages.success.push("Registration Successful");
5664

5765
}
5866
});
59-
res.json(result);
67+
res.render("logon");
6068
}
6169
});
6270
});

node/app/Process.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,19 @@ function listenToProcess(childProcess) {
3838
logger.log('Debug', "Started listening Pid" + pid);
3939

4040

41-
childProcess.stdout.on('data', (data) = > {
41+
childProcess.stdout.on('data', (data) => {
4242
var message = createMessage(STDOUT, data.toString());
4343
logger.log('debug', message);
4444
processes[pid]['messages'].push(message);
4545
})
4646
;
47-
childProcess.stderr.on('data', (data) = > {
47+
childProcess.stderr.on('data', (data) => {
4848
var message = createMessage(STDERR, data.toString());
4949
logger.log('debug', message);
5050
processes[pid]['messages'].push(message);
5151
})
5252
;
53-
childProcess.on('close', (code) = > {
53+
childProcess.on('close', (code) => {
5454
var message = createMessage(CLOSE, "Process closed, Pid: " + pid + " Exit code: " + code);
5555
processes[pid]['messages'].push(message);
5656
logger.log('debug', message);

node/app/Provider.js

Lines changed: 84 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ var pool;
55
var logger = winston.logger;
66
var validation = require('./Validation');
77

8-
var Statuses = {"Success": "success", "Error": "error"};
8+
var Statuses = {"Success": "success", "Error":"error"};
99

10-
fs.readFile('./config/sql.config', 'utf-8', function (err, contents) {
10+
fs.readFile('./config/sql.config','utf-8', function(err,contents) {
1111
logger.info("Reading sql config file");
12-
if (err) {
12+
if(err) {
1313
logger.error("Error opening database config file")
1414
}
15-
else {
15+
else{
1616
var poolConfig = JSON.parse(contents);
1717

1818
pool = mysql.createPool(poolConfig);
@@ -21,33 +21,30 @@ fs.readFile('./config/sql.config', 'utf-8', function (err, contents) {
2121
});
2222

2323
/* Function for running server commands */
24-
var runCommand = function (sqlQuery, callback) {
25-
pool.getConnection(function (err, connection) {
26-
if (err) {
24+
var runCommand = function(sqlQuery,callback) {
25+
pool.getConnection(function(err,connection){
26+
if(err) {
2727
logger.error("Provider Error: Error opening connection");
28-
logger.log('debug', "Provider runCommand, Query: " + sqlQuery);
28+
logger.log('debug',"Provider runCommand, Query: " + sqlQuery);
29+
var returnObject = {"status":Statuses.Error,"message": "Error opening database connection"};
30+
callback(returnObject)
2931
}
3032
else {
31-
connection.query(sqlQuery, function (err, results, fields) {
32-
if (err) {
33+
connection.query(sqlQuery,function(err,results,fields){
34+
if(err) {
3335
logger.error("Provider Error: Error running command");
34-
logger.log('debug', "Provider runCommand, Query: " + sqlQuery);
35-
var returnObject = {"status": Statuses.Error, "message": "Error running command"};
36-
return callback(returnObject);
37-
}
38-
if (!results || results.length == 0) {
39-
logger.log("Results len: " + results.length);
40-
41-
var returnObject = {
42-
"status": Statuses.Error,
43-
"results": results,
44-
"fields": fields,
45-
"message": "No results returned"
46-
};
36+
logger.log('debug',"Provider runCommand, Query: " + sqlQuery);
37+
var returnObject = {"status":Statuses.Error,"message": "Error running command"};
4738
callback(returnObject);
4839
}
40+
if( !results || results.length == 0) {
41+
logger.log("Results len: " + results.length);
42+
43+
var returnObject = {"status": Statuses.Error,"results":results,"fields":fields,"message": "No results returned"};
44+
callback(returnObject);
45+
}
4946
else {
50-
var returnObject = {"status": Statuses.Success, "results": results, "fields": fields};
47+
var returnObject = {"status": Statuses.Success,"results":results,"fields":fields};
5148
callback(returnObject);
5249
}
5350
});
@@ -56,70 +53,70 @@ var runCommand = function (sqlQuery, callback) {
5653
};
5754

5855
/* Database get provider functions */
59-
var getUserByUserName = function (userName, callback) {
56+
var getUserByUserName = function(userName, callback){
6057
var sqlQuery = "SELECT * FROM Users WHERE UserName='" + userName + "';";
61-
runCommand(sqlQuery, function (result) {
58+
runCommand(sqlQuery,function(result){
6259
callback(result);
6360
});
6461
};
6562

66-
var getUserByUserId = function (userId, callback) {
63+
var getUserByUserId = function(userId, callback){
6764
var sqlQuery = "SELECT * FROM Users WHERE UserId=" + userId + ";";
68-
runCommand(sqlQuery, function (result) {
65+
runCommand(sqlQuery,function(result){
6966
callback(result);
7067
});
7168
};
7269

73-
var getCredentialsByUserId = function (userId, callback) {
70+
var getCredentialsByUserId = function(userId, callback){
7471
var sqlQuery = "SELECT * FROM Credentials WHERE UserId='" + userId + "';";
75-
runCommand(sqlQuery, function (result) {
72+
runCommand(sqlQuery,function(result){
7673
callback(result);
7774
});
7875
};
7976

80-
var getCredentialsByUserName = function (userName, callback) {
77+
var getCredentialsByUserName = function(userName, callback){
8178
var sqlQuery = "SELECT * FROM Users AS U " +
8279
"INNER JOIN Credentials AS C " +
8380
"ON U.UserId = C.UserId " +
8481
"WHERE U.UserName='" + userName + "';";
8582

86-
runCommand(sqlQuery, function (result) {
83+
runCommand(sqlQuery,function(result){
8784
callback(result);
8885
});
8986
};
9087

91-
var getGroupByGroupId = function (groupId, callback) {
88+
var getGroupByGroupId = function(groupId, callback){
9289
var sqlQuery = "SELECT * FROM Groups WHERE GroupId='" + groupId + "';";
93-
runCommand(sqlQuery, function (result) {
90+
runCommand(sqlQuery,function(result){
9491
callback(result);
9592
});
9693
};
9794

98-
var getAdminByUserId = function (userId, callback) {
95+
var getAdminByUserId = function(userId,callback){
9996
var sqlQuery = "SELECT * FROM Admins WHERE UserId='" + userId + "';";
100-
runCommand(sqlQuery, function (result) {
97+
runCommand(sqlQuery,function(result){
10198
callback(result);
10299
});
103100
};
104101

105-
var getAdminByUserName = function (userName, callback) {
102+
var getAdminByUserName = function(userName,callback){
106103
var sqlQuery = "SELECT * FROM Users AS U " +
107104
"INNER JOIN Admins AS A " +
108105
"ON U.UserId = A.UserId " +
109106
"WHERE U.UserName='" + userName + "';";
110-
runCommand(sqlQuery, function (result) {
107+
runCommand(sqlQuery,function(result){
111108
callback(result);
112109
});
113110
};
114111

115112
/* Insert provider functions */
116-
var addUserToUsersTable = function (userName, primaryEmail, firstName, middleName, lastName, birthDay, birthMonth, birthYear, callback) {
117-
getUserByUserName(userName, function (returnObject) {
118-
if (returnObject.Status !== Statuses.Error) {
119-
logger.log('debug', "Valid UserName");
120-
var sqlQuery = "INSERT INTO Users(UserName,PrimaryEmail,FirstName,MiddleName,LastName,BirthDay,BirthMonth,BirthYear) VALUES('" + userName + "','" + primaryEmail + "','" + firstName + "','" + middleName + "','" + lastName + "'," + birthDay + "," + birthMonth + "," + birthYear + ");";
121-
runCommand(sqlQuery, function (result) {
122-
callback(result);
113+
var addUserToUsersTable = function(userName, primaryEmail, firstName, middleName, lastName, birthDay, birthMonth, birthYear, callback) {
114+
getUserByUserName(userName,function(returnObject){
115+
if(returnObject.Status !== Statuses.Error) {
116+
logger.log('debug',"Valid UserName");
117+
var sqlQuery = "INSERT INTO Users(UserName,PrimaryEmail,FirstName,MiddleName,LastName,BirthDay,BirthMonth,BirthYear) VALUES('" + userName + "','" + primaryEmail + "','" + firstName + "','" + middleName + "','" + lastName + "'," + birthDay + "," + birthMonth + "," + birthYear + ");";
118+
runCommand(sqlQuery,function(result){
119+
callback(result);
123120
});
124121
}
125122
else {
@@ -130,55 +127,60 @@ var addUserToUsersTable = function (userName, primaryEmail, firstName, middleNam
130127
});
131128
};
132129

133-
var addCredentialsForUserById = function (userId, password, salt, callback) {
134-
var checkQuery = "SELECT * FROM Users as U "
135-
"WHERE U.UserName = '" + userId + "';";
136-
runCommand(checkQuery, function (result) {
137-
if (result.Status === Statuses.Error) {
138-
logger.log('debug', "Unable to add credentials, UserId not found, UserId: " + userId);
139-
calback(result);
140-
}
141-
var sqlQuery = "INSERT INTO Credentials(UserId,Password,Salt) " +
142-
"VALUES('" + userId + "','" + password + "','" + salt + "');";
143-
runCommand(sqlQuery, function (result) {
144-
callback(result);
145-
});
146-
});
130+
var addCredentialsForUserById = function(userId, password, salt, callback) {
131+
var checkQuery = "SELECT * FROM Users as U "
132+
"WHERE U.UserName = '" + userId + "';";
133+
runCommand(checkQuery,function(result) {
134+
if(result.Status === Statuses.Error) {
135+
logger.log('debug',"Unable to add credentials, UserId not found, UserId: " + userId);
136+
callback(result);
137+
}
138+
var sqlQuery = "INSERT INTO Credentials(UserId,Password,Salt) " +
139+
"VALUES('" + userId + "','" + password + "','" + salt + "');";
140+
runCommand(sqlQuery, function (result) {
141+
callback(result);
142+
});
143+
});
147144
};
148145

149-
var addCredentialsByUserName = function (userName, password, salt, callback) {
150-
var checkQuery = "SELECT * FROM Users as U " +
151-
"INNER JOIN Credentials as C ON C.UserId = U.UserId " +
152-
"WHERE U.UserName = '" + userName + "';";
153-
runCommand(checkQuery, function (result) {
154-
if (result.Status === Statuses.Error) {
155-
logger.log('debug', "Error adding credentials ,Result: " + result);
156-
}
157-
else {
158-
getUserByUserName(userName, function (result) {
159-
console.log(result)
160-
var sqlQuery = "INSERT INTO Credentials(UserId,Salt,Hash) " +
161-
"VALUES('" + result.results[0].UserId + "','" + salt + "','" + password + "');";
162-
runCommand(sqlQuery, function (result) {
163-
callback(result);
164-
});
165-
});
166-
}
167-
});
146+
var addCredentialsByUserName = function(userName, password, salt, callback) {
147+
var checkQuery = "SELECT * FROM Users as U " +
148+
"INNER JOIN Credentials as C ON C.UserId = U.UserId " +
149+
"WHERE U.UserName = '" + userName + "';";
150+
runCommand(checkQuery,function(result){
151+
if(result.Status === Statuses.Error){
152+
logger.log('debug',"Error adding credentials ,Result: " + result);
153+
callback(result);
154+
}
155+
else if(result.results.length > 0) {
156+
var response = {"status":"error","message":"User Name already exists"};
157+
callback(response);
158+
}
159+
else {
160+
getUserByUserName(userName,function(result){
161+
console.log(result);
162+
var sqlQuery = "INSERT INTO Credentials(UserId,Salt,Hash) " +
163+
"VALUES('" + result.results[0].UserId + "','" + salt + "','" + password + "');";
164+
runCommand(sqlQuery,function(result){
165+
callback(result);
166+
});
167+
});
168+
}
169+
});
168170
};
169171

170172

171173
/* Export */
172174
module.exports = {
173-
Statuses: Statuses,
175+
Statuses : Statuses,
174176
getGroupByGroupId: getGroupByGroupId,
175177
getCredentialsByUserId: getCredentialsByUserId,
176-
getCredentialsByUserName: getCredentialsByUserName,
178+
getCredentialsByUserName : getCredentialsByUserName,
177179
getUserByUserId: getUserByUserId,
178180
getUserByUserName: getUserByUserName,
179181
getAdminByUserId: getAdminByUserId,
180182
getAdminByUserName: getAdminByUserName,
181183
addUserToUsersTable: addUserToUsersTable,
182-
addCredentialsByUserId: addCredentialsForUserById,
183-
addCredentialsByUserName: addCredentialsByUserName
184+
addCredentialsByUserId : addCredentialsForUserById,
185+
addCredentialsByUserName : addCredentialsByUserName
184186
};

node/app/Validation.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ app.use(session({
2626
}));
2727

2828
app.use(function (req, res, next) {
29+
res.locals.messages = {"errors":[],"success":[]};
30+
res.locals.messages.errors = [];
31+
res.locals.messages.success = [];
2932

3033
if (req.session && req.session.user) {
3134
req.user = req.session.user;

node/views/logon.ejs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@
99
<% include bundles/bundle %>
1010
</head>
1111
<body>
12+
13+
<div class="row">
14+
<div class="col-xs-12"><h1>Login</h1></div>
15+
</div>
16+
17+
<% include partials/success %>
18+
<% include partials/errors %>
1219
<form id="LogonForm" action="/LogonRegister/Logon" method="post">
13-
<div class="row">
14-
<div class="col-xs-12"><h1>Login</h1></div>
15-
</div>
1620
<div class="row">
1721
<div class="col-xs-0 col-sm-2 col-md-3 col-lg-5">
1822

node/views/partials/errors.ejs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
<% if(messages.errors && messages.errors.length) {
3+
%>
4+
<div class="col-xs-0 col-sm-4"></div>
5+
<div class="col-xs-12 col-sm-4 error-box">
6+
<div class="col-xs-12">
7+
<ul>
8+
<% messages.errors.forEach(function(error){%>
9+
<li><%=error %></li>
10+
<% })%>
11+
</ul>
12+
</div>
13+
</div>
14+
<div class="col-xs-0 col-sm-4"></div>
15+
<%}%>

0 commit comments

Comments
 (0)