From 17d743822746b047b94cd24e5407f1342ba01a7e Mon Sep 17 00:00:00 2001 From: HumairAK Date: Sat, 23 Jul 2016 19:37:39 -0400 Subject: Added add admin functionality for front end --- assets/js/script.js | 7 ++++++- routes/admin.js | 26 ++++++++++++++++++++++++-- views/admin.hbs | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/assets/js/script.js b/assets/js/script.js index 59fb358..f08ca7a 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -53,9 +53,11 @@ function main(){ var adminOptions = [ $("#cpnl-addExam"), $("#cpnl-addCourse"), + $("#cpnl-addAdmin"), $("#cpnl-removeExam"), $("#cpnl-removeCourse"), - $("#cpnl-removeUser")]; + $("#cpnl-removeUser") + ]; function hideCpnlPages(){ adminOptions.forEach(function(item){ @@ -81,6 +83,9 @@ function main(){ case "Add Course": $("#cpnl-addCourse").show(); break; + case "Add Admin": + $("#cpnl-addAdmin").show(); + break; case "Remove Exam": $("#cpnl-removeExam").show(); break; diff --git a/routes/admin.js b/routes/admin.js index bdd4f9b..e038fa3 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -3,6 +3,7 @@ var express = require('express'); var router = express.Router(); var csrf = require('csurf'); // Cross-Site Request Forgery prevention var passport = require('passport'); +var passport_file = require('../config/passport.js'); var csrfProtection = csrf(); router.use(csrfProtection); // router is protected @@ -64,6 +65,29 @@ router.post('/add/course', function(req,res){ res.redirect('/admin'); }); +// Add a new admin, redirect to admin panel +router.post('/add/admin', function(req,res){ + var admin_data = { + fname: req.body.fname, + lname: req.body.lname, + username: req.body.username, + password: passport_file.encryptPassword(req.body.password) + }; + + dbFile.addAdmin(admin_data, function(success, error, message){ + if(success){ + console.log("Success!"); + }else if(error){ + console.log("Error!"); + }else{ + console.log("Admin already exists."); + } + console.log(message); + }); + + res.redirect('/admin'); +}); + router.post('/remove/exam', function(req,res){ var course_code = req.body.course_code, year = req.body.year, @@ -86,8 +110,6 @@ router.post('/remove/exam', function(req,res){ res.redirect('/admin'); }); - - /* Takes an input string delimited by commas, will split by comma and trim white * spaces. Consider callback. */ diff --git a/views/admin.hbs b/views/admin.hbs index 36a3210..a260559 100644 --- a/views/admin.hbs +++ b/views/admin.hbs @@ -19,6 +19,7 @@