From edeb000c0299276168ab0c59e22c2fe01aedf92a Mon Sep 17 00:00:00 2001 From: jrtechs Date: Sat, 2 Feb 2019 16:12:19 -0500 Subject: [PATCH] Implemented basic user manipulation functionality. --- html/header.html | 6 +++ html/users.html | 110 +++++++++++++++++++++++++++++++++++++++++++++++ server.js | 61 +++++++++++++++++++++++++- user.js | 2 +- 4 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 html/users.html diff --git a/html/header.html b/html/header.html index 95935e4..38e5262 100644 --- a/html/header.html +++ b/html/header.html @@ -17,6 +17,12 @@ p{font-size:18px;} + + diff --git a/html/users.html b/html/users.html new file mode 100644 index 0000000..b0f3b04 --- /dev/null +++ b/html/users.html @@ -0,0 +1,110 @@ + + + + + +
+ +
+
+
+

Users

+
+
+ + + + + + + + + + + {for user in users} + + + + + + + {/for} + +
User NameUser IDEditTerminate
{user.username}{user.id} + + +
+ + +
+
+
+
+
+ + +
+
+
+

Add New User

+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/server.js b/server.js index 456eeba..5b29d39 100644 --- a/server.js +++ b/server.js @@ -48,6 +48,9 @@ function renderHTML(request, result, templateFile, templateDependencyFunction) if(request.session.login === true) { templateContext.loggedIn = true; + if(templateDependencyFunction !== null) + prom.push(templateDependencyFunction(templateContext)); + prom.push(fetchInTemplate(templateContext, "main","./html/" + templateFile)); } else @@ -62,7 +65,13 @@ function renderHTML(request, result, templateFile, templateDependencyFunction) }); } +function getUserInformation(templateContext) +{ + templateContext.users = config.users; +} + app.get('/', (req, res) => renderHTML(req, res, "home.html", null)); +app.get('/users', (req, res) => renderHTML(req, res, "users.html", getUserInformation)); app.use(express.static('css')); app.use(express.static('js')); @@ -109,7 +118,6 @@ app.get('/video', function(request, result) 'Content-Length': chunksize, 'Content-Type': 'video/mp4', }; - result.writeHead(206, head); file.pipe(result); } @@ -132,4 +140,55 @@ app.get('/video', function(request, result) } }); + + +app.post('/addUser', function(request, result) +{ + if(request.session.login === true) + { + userUtils.addUser(request.body.username, request.body.password, config); + fileIO.writeJSONToFile(CONFIG_FILE_NAME, config); + result.redirect('/users'); + } + else + { + result.status(401); + result.send('None shall pass'); + } +}); + + +app.post('/edituser', function(request, result) +{ + if(request.session.login === true) + { + userUtils.editUser(request.body.id, request.body.username, request.body.password, config); + fileIO.writeJSONToFile(CONFIG_FILE_NAME, config); + result.redirect('/users'); + } + else + { + result.status(401); + result.send('None shall pass'); + } +}); + + + +app.post('/removeuser', function(request, result) +{ + if(request.session.login === true) + { + userUtils.removeUser(request.body.id, config); + fileIO.writeJSONToFile(CONFIG_FILE_NAME, config); + result.redirect('/users'); + } + else + { + result.status(401); + result.send('None shall pass'); + } +}); + + app.listen(config.port, () => console.log(`App listening on port ${config.port}!`)); \ No newline at end of file diff --git a/user.js b/user.js index 72f6310..09ee1d7 100644 --- a/user.js +++ b/user.js @@ -107,7 +107,7 @@ module.exports = newUser.salt = passObject.salt; newUser.password = passObject.pass; - configuration.push(newUser); + configuration.users.push(newUser); return true; },